* Initialize fork graph in program cache during bank_forks creation
* rename BankForks::new to BankForks::new_rw_arc
* fix compilation
* no need to set fork_graph on insert()
* fix partition tests
This macro is used a lot for tests to create a ledger path in order to
open a Blockstore. Files will be left on disk unless the test remembers
to call Blockstore::destroy() on the directory. So, instead of requiring
this, use the get_tmp_ledger_path_auto_delete!() macro that creates a
TempDir (which automatically deletes itself when it goes out of scope).
In most cases, either a &Bank or an Arc<Bank> is more proper.
- &Bank is used if the function only needs a momentary reference
- Arc<Bank> is used if the function needs its' own copy
This PR leaves several instances of &Arc<Bank> around; these instances
are situations where a clone may only happen conditionally.
* Adding a method which sends and confirm a large number of transactions in parallel and using it to deploy programs
* Using the new method to deploy programs
* Minor changes, break when transaction map is empty
* Updating cargo for all lock files
* Sorting dependencies
* Changes after tnelson's comment
* confirm recently expired transactions and improve tracking of transaction sending
* Minor changes
* more changes after tnelson's comments
* Adding serialized transaction in TransactionData
* Update client/src/send_and_confirm_transactions_in_parallel.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update client/src/send_and_confirm_transactions_in_parallel.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* nit changes from trent
* Fixing kirills comments, adding some unit tests
* fixing ci, and minor change
* addressing Kirills nit comments
---------
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
`Arc` is already a reference internally, so it does not seem to be
beneficial to pass a reference to it. Just adds an extra layer of
indirection.
Functions that need to be able to increment `Arc` reference count need
to take `Arc<AtomicBool>`, but those that just want to read the
`AtomicBool` value can accept `&AtomicBool`, making them a bit more
generic.
This change focuses specifically on `Arc<AtomicBool>`. There are other
uses of `&Arc<T>` in the code base that could be converted in a similar
manner. But it would make the change even larger.
* Add RewardsMessage enum
* Cache and update max_complete_rewards_slot
* Plumb max_complete_rewards_slot into JsonRpcRequestProcesseor
* Use max_complete_rewards_slot to check get_block requests
* Use max_complete_rewards_slot to limit Bigtable uploads
* Plumb max_complete_rewards_slot into RpcSubscriptions
* Use max_complete_rewards_slot to limit block subscriptions
* Nit: fix test
* separate test port
* make server check more deterministic
* remove serial_test
* use atomic auto incremental port
* make NEXT_RPC_PUBSUB_PORT as an global static variable
* make check_server_is_ready become check_server_is_ready_or_panic
* use processed commitment in test_rpc_client
* lint
- Added accountSubscribe, programSubscribe, slotSubscribe and rootSubscribe to rust RpcClient
- Removed duplication on cleanup threads
- Moved RPCVote from rpc/ to client/rpc_response
* Move test-validator to own module to reduce core dependencies
* Fix a few TestValidator paths
* Use solana_test_validator crate for solana_test_validator bin
* Move client int tests to separate crate
Co-authored-by: Tyera Eulberg <tyera@solana.com>