behzad nouri
3c1ce3cc93
permanently disables durable nonces with chain blockhash domain ( #25788 )
...
https://github.com/solana-labs/solana/pull/25744
separated durable nonce and blockhash domains, which will stop double
execution going forward. However it is possible that a durable
transaction has *already* been executed once as a normal transaction and
it is now a valid durable transaction. #25744 cannot stop such
transactions to be re-executed until the nonce accounts are advanced.
This commit adds a new nonce version indicating that the nonce is moved
out of the blockhash domain, and permanently disables durable
transactions for legacy nonces which are in the blockhash domain.
2022-06-09 15:28:37 +00:00
Jon Cinque
79a8ecd0ac
client: Remove static connection cache, plumb it instead ( #25667 )
...
* client: Remove static connection cache, plumb it instead
* Add TpuClient::new_with_connection_cache to not break downstream
* Refactor get_connection and RwLock into ConnectionCache
* Fix merge conflicts from new async TpuClient
* Remove `ConnectionCache::set_use_quic`
* Move DEFAULT_TPU_USE_QUIC to client, use ConnectionCache::default()
2022-06-08 13:57:12 +02:00
Jon Cinque
67a11ce4b1
client: Add nonblocking udp client and connection trait ( #25775 )
...
* client: Add nonblocking udp client
* Address feedback
2022-06-06 19:28:31 +02:00
behzad nouri
5ee157f43d
separates durable nonce and blockhash domains
...
AdvanceNonceAccount instruction updates nonce to blockhash. This makes it
possible that a durable transaction is executed twice both as a normal
transaction and a nonce transaction if it uses blockhash (as opposed to nonce)
for its recent_blockhash field.
The commit prevents this double execution by separating nonce and blockhash
domains; when advancing nonce account, blockhash is hashed with a fixed string.
As a result a blockhash cannot be a valid nonce value; and if transaction was
once executed as a normal transaction it cannot be re-executed as a durable
transaction again and vice-versa.
2022-06-04 12:39:31 +00:00
ryleung-solana
8ca8a61272
Remove LRU Cache as it's no longer used ( #25751 )
2022-06-03 23:41:35 -04:00
Pankaj Garg
1c2ae470c5
Fix forwarding of transactions over QUIC ( #25674 )
...
* Spawn QUIC server to receive forwarded txs
* Update validator port range
* forward votes using UDP
* no forwarding from unstaked nodes
* forwarding stats in banking stage
* fix test builds
* fix lifetime of forward sender
2022-06-02 11:14:58 -07:00
segfaultdoctor
edefaa437f
use tokio sleep inside async ( #25680 )
...
Co-authored-by: Zano <segfaultdoctor@protonmail.com>
2022-06-02 00:49:51 -06:00
Jon Cinque
10afdfee90
client: Refactor quic_client to nonblocking module ( #25501 )
2022-06-02 01:20:11 +02:00
Jon Cinque
6349a6dc97
tpu-client: Add "fake" async version with sync sending ( #25499 )
...
* tpu-client: Add "fake" async for sending
* Add Drop implementation
* Rebase
2022-06-01 23:41:35 +02:00
dependabot[bot]
7f4128947b
chore: bump lru from 0.7.5 to 0.7.6 ( #25572 )
...
* chore: bump lru from 0.7.5 to 0.7.6
Bumps [lru](https://github.com/jeromefroe/lru-rs ) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/jeromefroe/lru-rs/releases )
- [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/jeromefroe/lru-rs/compare/0.7.5...0.7.6 )
---
updated-dependencies:
- dependency-name: lru
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-26 19:05:02 +00:00
ryleung-solana
1ca5c3a7bd
Switch to using enum-dispatch to switch between UDP and Quic ( #24713 )
2022-05-26 11:21:16 -04:00
dependabot[bot]
1fda5110af
chore: bump quinn-proto from 0.8.2 to 0.8.3 ( #25543 )
...
Bumps [quinn-proto](https://github.com/quinn-rs/quinn ) from 0.8.2 to 0.8.3.
- [Release notes](https://github.com/quinn-rs/quinn/releases )
- [Commits](https://github.com/quinn-rs/quinn/compare/0.8.2...0.8.3 )
---
updated-dependencies:
- dependency-name: quinn-proto
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-25 20:55:38 -06:00
dependabot[bot]
0c3639706b
chore: bump quinn from 0.8.2 to 0.8.3 ( #25542 )
...
* chore: bump quinn from 0.8.2 to 0.8.3
Bumps [quinn](https://github.com/quinn-rs/quinn ) from 0.8.2 to 0.8.3.
- [Release notes](https://github.com/quinn-rs/quinn/releases )
- [Commits](https://github.com/quinn-rs/quinn/compare/0.8.2...0.8.3 )
---
updated-dependencies:
- dependency-name: quinn
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-25 20:44:45 -06:00
steviez
ec7ca411dd
Make PacketBatch packets vector non-public ( #25413 )
...
Upcoming changes to PacketBatch to support variable sized packets will
modify the internals of PacketBatch. So, this change removes usage of
the internal packet struct and instead uses accessors (which are
currently just wrappers of Vector functions but will change down the
road).
2022-05-23 15:30:15 -05:00
Michael Vines
b05c7d91ed
Fix derive_partial_eq_without_eq clippy lint
2022-05-22 22:22:21 -07:00
Jon Cinque
09ea899a2d
tpu-client: Refactor to prep for async client ( #25432 )
2022-05-21 20:22:30 +02:00
Lijun Wang
4e9b189154
Remove noisy metrics on open_uni ( #25430 )
2022-05-20 16:05:42 -07:00
Michael Vines
c54e06355f
voteSubscribe pubsub notification now includes the vote transaction signature ( #25291 )
2022-05-19 18:28:46 -07:00
ryleung-solana
b857528a03
Implement updating the connection cache stats in the client ( #25308 )
2022-05-19 15:29:27 -04:00
Lijun Wang
2266dfc696
Remove unnecessary async marker for create_endpoint ( #25290 )
...
* Add metrics for open_uni
* Remove unnecessary async marker for create_endpoint
* Removed noisy metrics
2022-05-19 01:17:29 -07:00
dependabot[bot]
5299038065
chore: bump rustls from 0.20.5 to 0.20.6 ( #25331 )
...
* chore: bump rustls from 0.20.5 to 0.20.6
Bumps [rustls](https://github.com/rustls/rustls ) from 0.20.5 to 0.20.6.
- [Release notes](https://github.com/rustls/rustls/releases )
- [Changelog](https://github.com/rustls/rustls/blob/main/RELEASE_NOTES.md )
- [Commits](https://github.com/rustls/rustls/compare/v/0.20.5...v/0.20.6 )
---
updated-dependencies:
- dependency-name: rustls
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-18 14:36:22 -06:00
Lijun Wang
81d9a7585d
Add make_connection metrics ( #25280 )
...
* Add metrics for open_uni
* Added metrics for make_connection
* measure make_connection success or fail
2022-05-18 13:23:29 -07:00
dependabot[bot]
542bd0ec3c
chore: bump rayon from 1.5.2 to 1.5.3 ( #25242 )
...
* chore: bump rayon from 1.5.2 to 1.5.3
Bumps [rayon](https://github.com/rayon-rs/rayon ) from 1.5.2 to 1.5.3.
- [Release notes](https://github.com/rayon-rs/rayon/releases )
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md )
- [Commits](https://github.com/rayon-rs/rayon/compare/v1.5.2...v1.5.3 )
---
updated-dependencies:
- dependency-name: rayon
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-18 09:39:57 -06:00
dependabot[bot]
3bda895ea9
chore: bump rustls from 0.20.4 to 0.20.5 ( #25243 )
...
* chore: bump rustls from 0.20.4 to 0.20.5
Bumps [rustls](https://github.com/rustls/rustls ) from 0.20.4 to 0.20.5.
- [Release notes](https://github.com/rustls/rustls/releases )
- [Changelog](https://github.com/rustls/rustls/blob/main/RELEASE_NOTES.md )
- [Commits](https://github.com/rustls/rustls/compare/v/0.20.4...v/0.20.5 )
---
updated-dependencies:
- dependency-name: rustls
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-18 09:27:16 -06:00
Brooks Prumo
dff089e0dd
Fix RpcResponseContext in rpc_client test ( #25296 )
2022-05-17 12:44:43 -05:00
Brooks Prumo
e608580040
Add get_stake_minimum_delegation() to rpc_client ( #25200 )
2022-05-17 11:46:34 -05:00
Justin Starry
4690956849
RPC: Add minContextSlot param to ensure consistent responses ( #25161 )
...
* RPC: Add minContextSlot param to ensure consistent responses
* revert changes to deprecated endpoints
* update docs
2022-05-17 14:46:02 +08:00
Jack May
21e066ef26
Merge pull request from GHSA-wxrh-ff9f-fc6w
2022-05-16 12:30:37 -07:00
Lijun Wang
196de1c043
Refactor make_connection ( #25225 )
...
1. Move logics related to creating endpoint, creating new connection and retry 0rtt connections into a wrapper construct QuicNewConnection to put the logic together.
2. get_or_add_connection: logic is much simplified to allow manage the connection cache -- the QUIC connection is lazy constructed. get_or_add_connection should no longer be a global hotspot.
3. Per connection stats update is moved out of get_or_add_connection to avoid bad connection impacting good connections.
2022-05-16 11:13:18 -07:00
Lijun Wang
abd4ef889e
Fixed a race condition where in multiple thread environment that wasteful ( #25176 )
...
Duplicate and useless connections are being created which overloads the server and cause unreliable
connections on the client side.
2022-05-14 15:02:13 -07:00
Justin Starry
a118af069e
RPC: Add API version to context response ( #25134 )
...
* RPC: Add API version to context response
* restore backwards compatibility
2022-05-12 12:17:21 +08:00
Brennan Watt
301a655f06
Enable 0rtt ( #25055 )
...
* Enable 0rtt connections
2022-05-10 09:44:07 -07:00
Tyera Eulberg
c4aa082efc
Rollback tokio to LTS release v1.14 ( #25028 )
2022-05-06 06:34:49 +00:00
dependabot[bot]
bece7f32c8
chore: bump log from 0.4.16 to 0.4.17 ( #24987 )
...
* chore: bump log from 0.4.16 to 0.4.17
Bumps [log](https://github.com/rust-lang/log ) from 0.4.16 to 0.4.17.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/commits/0.4.17 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-05 01:49:18 +00:00
dependabot[bot]
cae4a7816c
chore: bump semver from 1.0.7 to 1.0.9 ( #24959 )
...
* chore: bump semver from 1.0.7 to 1.0.9
Bumps [semver](https://github.com/dtolnay/semver ) from 1.0.7 to 1.0.9.
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.7...1.0.9 )
---
updated-dependencies:
- dependency-name: semver
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <you@example.com>
2022-05-04 15:56:34 -06:00
dependabot[bot]
61a9faae17
chore: bump serde_json from 1.0.80 to 1.0.81 ( #24960 )
...
* chore: bump serde_json from 1.0.80 to 1.0.81
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.80...v1.0.81 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <you@example.com>
2022-05-04 14:57:38 -06:00
Pankaj Garg
b4c3b66f1a
Replace HashMap and Vec with IndexMap in connection cache ( #24967 )
2022-05-04 12:38:03 -07:00
dependabot[bot]
9258d81ba3
chore: bump serde from 1.0.136 to 1.0.137 ( #24957 )
...
* chore: bump serde from 1.0.136 to 1.0.137
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.136 to 1.0.137.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.136...v1.0.137 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-03 22:14:59 -06:00
Brian Anderson
4d7e231891
Make nonblocking RpcClient examples use nonblocking RpcClient ( #24916 )
...
* Make nonblocking RpcClient examples use nonblocking RpcClient
* fmt
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2022-05-03 16:06:57 -06:00
dependabot[bot]
2c9d2a2140
chore: bump serde_json from 1.0.79 to 1.0.80 ( #24943 )
...
* chore: bump serde_json from 1.0.79 to 1.0.80
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.79 to 1.0.80.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.79...v1.0.80 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-05-03 13:46:45 -06:00
Pankaj Garg
3dad27d84d
Optimize connection cache eviction logic ( #24911 )
...
* Optimize connection cache eviction logic
* add eviction count and timing to metrics
* use swap_remove
2022-05-03 02:27:40 +00:00
Pankaj Garg
de027a895b
Use RwLock instead of Mutex in QUIC connection cache ( #24857 )
...
* Use RwLock instead of Mutex in QUIC connection cache
* replace LruCache with HashMap
* fix tests
* fix tests
* refactor
* add cache eviction for a random connection on reaching upperbound
* cleanup
2022-05-02 13:02:49 -07:00
Pankaj Garg
21ee012c18
Add some timing measure for get_connection() ( #24814 )
...
* Add some timing measure for get_connection()
* fix build issue
2022-04-29 09:58:01 -07:00
Tyera Eulberg
a1b066a438
Support token-2022 in RPC instruction parsing ( #24537 )
...
* Use token-2022 dependency in parse_token and add tests for new variants
* Remove test hack
* Bump spl-token-2022 and use new AuthorityType::CloseMint
* Add zk-token-sdk to patch-crates.sh
2022-04-27 19:42:00 +00:00
dependabot[bot]
46da7714bb
chore: bump quinn-proto from 0.8.0 to 0.8.2 ( #24609 )
...
* chore: bump quinn-proto from 0.8.0 to 0.8.2
Bumps [quinn-proto](https://github.com/quinn-rs/quinn ) from 0.8.0 to 0.8.2.
- [Release notes](https://github.com/quinn-rs/quinn/releases )
- [Commits](https://github.com/quinn-rs/quinn/commits )
---
updated-dependencies:
- dependency-name: quinn-proto
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-04-25 09:57:04 -06:00
dependabot[bot]
3fda7aaa4d
chore: bump anyhow from 1.0.56 to 1.0.57 ( #24618 )
...
* chore: bump anyhow from 1.0.56 to 1.0.57
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.56 to 1.0.57.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.56...1.0.57 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-04-22 23:34:34 -06:00
ryleung-solana
adf68c2720
Implement test for quic client ( #24516 )
...
Implement test for quic client
2022-04-22 18:36:25 -04:00
Tyera Eulberg
b42f34a7b8
Update Rpc filters to support token-2022 ( #24541 )
...
* Add TokenAccountState rpc_filter
* Use a method on RpcFliterType instead of helper
2022-04-20 19:18:12 -06:00
sakridge
b64791ef79
Add packets and batches sent to quic client stats ( #24442 )
2022-04-20 13:59:54 +02:00
dependabot[bot]
dd15193c69
chore: bump rayon from 1.5.1 to 1.5.2 ( #24470 )
...
* chore: bump rayon from 1.5.1 to 1.5.2
Bumps [rayon](https://github.com/rayon-rs/rayon ) from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/rayon-rs/rayon/releases )
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md )
- [Commits](https://github.com/rayon-rs/rayon/commits )
---
updated-dependencies:
- dependency-name: rayon
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-04-19 23:17:52 -06:00