* docs: make the comments on using the new connection.confirmTransaction clearer
* docs: add TransactionConfirmataionStrategy type
* refactor: change param type in sendAndConfirmRawTransaction
* docs: fix typo
* Delete `AgentManager`
* Replace custom `http.Agent` implementation with `agentkeepalive` package
* Set the default free socket timeout to 1s less than the Solana RPC's default timeout
* Add link to particular issue comment
* Create the correct flavor of default agent for http/https
* Fixes non-binding let on a future (ip-echo-server)
```
warning: non-binding `let` on a future
--> net-utils/src/ip_echo_server.rs:133:13
|
133 | let _ = tcp_stream.shutdown();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: consider awaiting the future or dropping explicitly with `std::mem::drop`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future
= note: `-D clippy::let-underscore-future` implied by `-D warnings`
```
* pr: remove let
* pr: ?
Allow longer chunk receive timeout without impacting testing the stream exit condition for unit tests. The exit is periodically checked, we will break only when the total allowed chunk receive timed out. The start time is reset when a new chunk is received.
If data is empty, make_shreds_from_data will now return one data shred
with empty data. This preserves invariants verified in tests regardless
of data size.
As described here:
https://github.com/solana-labs/solana/issues/28642#issuecomment-1337449607
current gossip pruning code fails to maintain spanning trees across
cluster.
This commit instead implements a pruning code based on timeliness of
delivered messages. If a messages is delivered timely enough (in terms
of number of duplicates already observed for that value), it counts
towards the respective node's score. Once there are enough many CRDS
upserts from a specific origin, redundant nodes are pruned based on the
tracked score.
Since the pruning leaves some configurable redundancy and the scores are
reset frequently, it should better tolerate active-set rotations.
The commit tracks number of times duplicates of a CRDS value is received
from gossip push. Following commits will utilize this metric to score
gossip nodes in terms of timeliness of their push messages, in order to
better pick which nodes to prune.
* 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