* use rate limit on connectings
use rate limit on connectings; missing file
* Change connection rate limit to 8/min instead of 4/s
* Addressed some feedback from Trent
* removed some comments
* fix test failures which are opening connections more frequently
* moved the flag up
* turn off rate limiting to debug CI
* Fix CI test failures
* differentiate of the two throttling cases in stats: across connections or per ip addr
* fmt issues
* Addressed some feedback from Trent
* Added unit tests
Cleanup connection cache rate limiter if exceeding certain threshold
missing files
CONNECITON_RATE_LIMITER_CLEANUP_THRESHOLD to 100_000
clippy issue
clippy issue
sort crates
* revert Cargo.lock changes
* Addressed some feedback from Pankaj
* save progress
* rename threads handler
* added writer for txs
* after extracting structure to handle tx confirmations
* extract LogWriter
* Replace pair TimestampedTransaction with struct
* add compute_unit_price to TimestampedTransaction
* add cu_price to LogWriter
* add block time to the logs
* Fix warnings
* add comments and restructure code
* some small improvements
* Renamed conformation_processing.rs to log_transaction_service.rs
* address numerous PR comments
* split LogWriter into two structs
* simplify code of LogWriters
* extract process_blocks
* specify commitment in LogTransactionService
* break thread loop if receiver happens to be dropped
* update start_slot when processing blocks
* address pr comments
* fix clippy error
* minor changes
* fix ms problem
* fix bug with time in clear transaction map
* deprecate ThinClient
* switch localcluster bench test to use tpuclient
add back in command line args for thinclient. add thin-client deprecation README
refactor TpuClient connection
* remove thin-client from net/
* change 2.0.0 to 1.19.0
* use --commitment-config <commitment-level> for setting blockhash commitment level for sending transactions with rpc-client
* clarify default
* leave get_balance_with_commitment at processed()
* rm unused variable
* refactor commitment_config flag read in
* update cli and change send_batch's get_latest_blockhash() to get_latest_blockhash_with_client_commitment() and use client's internal commitment level
* change fix some nits based on PR comments
* rm unused import
* Throttle unstaked quic streams for a given connection
* Fix interval duration check
* move wait to handle_chunk
* set max unistreams to 0
* drop new streams
* cleanup
* some more cleanup
* fix tests
* update test and stop code
* fix bench-tps
* allow pedantic invalid cast lint
* allow lint with false-positive triggered by `test-case` crate
* nightly `fmt` correction
* adapt to rust layout changes
* remove dubious test
* Use transmute instead of pointer cast and de/ref when check_aligned is false.
* Renames clippy::integer_arithmetic to clippy::arithmetic_side_effects.
* bump rust nightly to 2023-08-25
* Upgrades Rust to 1.72.0
---------
Co-authored-by: Trent Nelson <trent@solana.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.
See comment in Cargo.toml for an explanation of the issue.
This change removes duplicate dependencies for older version of solana-*
crates, and any of the dependencies that are no longer needed.
* Improve cli args parsing in bench-tps
* Rename parse funciton
* Get rid of panics, exit and println
* Add basic unit tests
* add allow dead_code and unused_imports for cli tests
* simplify code by using map_err instead of macro
* simplify data_size parsing
* use tempfile crate to create temp keypair files
* fix bug with reading client_id from config by default, re-added client_id tests
* minor fix of an error message
* add Eq to bench_tps::cli::Congig
* some minor error messages corrections
* introduce workspace.package
* introduce workspace.dependencies
* read version from root cargo.toml
* pass check when version = { workspace = true }
* don't bump version when version = { workspace = true }
* including workspace Cargo.toml when bump version
* programs/sbf use workspace inheritance
* fix increasing cargo version ignore program/sbf/Cargo.toml
* add beind_address and client_node_id to bench cli
* use provided node_id and bind_address in connection cache
* add two cli args client_node_stake and client_node_total_stake
* update connection cache construction after upstream update
* use ConnectionCache without Arc to use BackendConnectionCache
* remove comments
* Extend client_node_od cli arg help message
* address PR comments
* simplified staked_nodes creation
* remove delinquent nodes when computing total stake at bench-tps