Illia Bobyr
4353ac6797
Pass Arc<AtomicBool> by value, not by reference. ( #31916 )
...
`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.
2023-06-01 17:25:48 -07:00
Ashwin Sekar
3e8f5bad81
refactor: highest_cluster_confirmed_root -> highest_super_majority_root ( #31619 )
2023-05-14 00:42:03 -07:00
Lijun Wang
7cf50e60fc
Fixed missing Root notifications via geyser plugin framework ( #31180 )
...
* Fixed missing Root notifications via geyser plugin framework
* Renamed a variable
* fmt issue
* Do not try the loop if no subscribers.
* Addressing some feedback -- passing parent roots from replay_stage to avoid race conditions
* clippy issue
* Address some reviewing findings
* Addressed some feedback from Carl
* fix a clippy issue
* Added comments on optimistically_confirmed_bank_tracker module to explain the workflow
* Addressed Trent's review
2023-05-03 18:50:00 +08:00
Tyera
b389d509a8
Track max_complete_rewards_slot for use in rpc, bigtable ( #30698 )
...
* 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
2023-03-14 12:08:48 -06:00
Brennan Watt
226e1921bd
Fix RPC tests race condition ( #29589 )
2023-01-09 18:51:58 -08:00
Jeff Washington (jwash)
2f0d849c84
set rent epoch to max on new account creation ( #29528 )
...
* set rent epoch to max on new account creation
* add comment
2023-01-06 14:21:10 -08:00
Jeff Washington (jwash)
98dc3db4d1
make rpc test tolerant of rent_epoch being set to max ( #29508 )
2023-01-04 12:15:46 -08:00
behzad nouri
109dbf76df
removes Box<dyn Iterator<...>> from rpc/src/rpc_subscriptions.rs ( #29203 )
...
Box<dyn ...> requires dynamic dispatch, is heap allocated, slow and
verbose.
2022-12-15 22:33:52 +00:00
behzad nouri
9524c9dbff
patches errors from clippy::uninlined_format_args
...
https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
2022-12-06 19:32:15 +00:00
Brennan Watt
9cb0151544
RPC unit test timeout fix ( #28998 )
2022-12-02 08:47:09 -08:00
Justin Starry
7371608722
Support versioned transactions in program test framework ( #28739 )
...
* Support versioned transactions in program test framework
* use working bank
* Update to process_transaction_with_metadata
* Migrate client apis from Transaction to Into<VersionedTransaction>
* feedback
2022-11-18 23:43:52 +08:00
Brooks Prumo
d1ba42180d
clippy for rust 1.65.0 ( #28765 )
2022-11-09 19:39:38 +00:00
Justin Starry
438d96e499
RPC: Return the data length for get account requests ( #28421 )
2022-10-18 01:56:04 +08:00
behzad nouri
9a57c64f21
patches clippy errors from new rust nightly release ( #27996 )
2022-09-22 22:23:03 +00:00
Brennan Watt
242c9cb442
RPC Notifier Signal when Setup Complete ( #27481 )
...
* RPC notifier signal when ready
2022-09-01 16:39:55 -07:00
Tyera Eulberg
b8b3d723da
Use new client crates ( #27360 )
...
* Update ancillary cli crates
* Update cli
* Update command-line tools
* Update rpc, etc
* Update client-test
* Update core, validator
* Update local-cluster
2022-08-24 10:47:02 -06:00
Brennan Watt
e4a7d01e10
Rust v1.63 ( #27303 )
...
* Upgrade to Rust v1.63.0
* Add nightly_clippy_allows
* Resolve some new clippy nightly lints
* Increase QUIC packets completion timeout
* Update quinn-udp crate
Co-authored-by: Michael Vines <mvines@gmail.com>
2022-08-22 18:01:03 -07:00
Michael Vines
3f4731b37f
Standardize thread names
...
Tenets:
1. Limit thread names to 15 characters
2. Prefix all Solana-controlled threads with "sol"
3. Use Camel case. It's more character dense than Snake or Kebab case
2022-08-20 07:49:39 -07:00
Brennan Watt
7573000d87
Revert "Rust v1.63.0 ( #27148 )" ( #27245 )
...
This reverts commit a2e7bdf50a
.
2022-08-19 09:19:44 +01:00
Brennan Watt
a2e7bdf50a
Rust v1.63.0 ( #27148 )
...
* Upgrade to Rust v1.63.0
* Add nightly_clippy_allows
* Resolve some new clippy nightly lints
* Increase QUIC packets completion timeout
Co-authored-by: Michael Vines <mvines@gmail.com>
2022-08-17 15:48:33 -07:00
Michael Vines
b05c7d91ed
Fix derive_partial_eq_without_eq clippy lint
2022-05-22 22:22:21 -07:00
Michael Vines
c54e06355f
voteSubscribe pubsub notification now includes the vote transaction signature ( #25291 )
2022-05-19 18:28:46 -07:00
Michael Vines
edd090f4a7
Avoid "Dropped RPC Notification" log spam ( #25341 )
2022-05-18 12:45:45 -07:00
Michael Vines
795f6eda44
`--rpc-pubsub-notification-threads 0` now turns off the internal PubSub notification machinery ( #25307 )
2022-05-17 20:23:51 -07: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
Michael Vines
e718c80a21
Avoid multiple base58 encodes for all votes when no `voteSubscribe` is disabled
2022-05-16 19:56:48 -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
Justin Starry
a61652104b
Avoid holding lock guards in match expressions ( #24805 )
...
* Avoid holding bank forks read lock for RPC requests
* Avoid using lock guards in temporaries
* revert fetch stage change
2022-04-29 16:32:46 +08:00
Justin Starry
4e58b3870c
Update all BankForks methods to return owned values ( #24801 )
2022-04-28 18:51:00 +00:00
Steven Luscher
3007f233f4
Log subscription for `All` no longer clobbers `Some` subscription for pubkey ( #24215 )
...
* fix: subscribing for all logs no longer clobbers pubkey-specific subscriptions
* test: write tests to cover logsSubscribe
2022-04-26 10:31:11 -07: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
Trent Nelson
50fba01842
rpc-pubsub: reduce metrics/log spam
2022-04-15 01:16:58 -06:00
Justin Starry
3114c199bd
Add RPC support for versioned transactions ( #22530 )
...
* Add RPC support for versioned transactions
* fix doc tests
* Add rpc test for versioned txs
* Switch to preflight bank
2022-03-08 15:20:34 +08:00
buffalu
70ebab2c82
Add rustfmt.toml and `cargo fmt` ( #23238 )
...
* fmt
* formatted
Co-authored-by: Lucas B <buffalu@jito.network>
2022-02-19 13:32:29 +08:00
Justin Starry
d5dec989b9
Enforce tx metadata upload with static types ( #23028 )
2022-02-10 13:28:18 +08:00
Michael Vines
86d465c531
Prepare RPC subsystem for multiple SPL Token program ids
2022-02-09 08:16:00 -08:00
Michael Vines
331b953551
Add vote account address to vote subscription
2022-01-27 08:22:29 -08:00
Michael Vines
6d5bbca630
Pacify clippy
2022-01-21 19:12:57 -08:00
Justin Starry
7f20c6149e
Refactor: move simple vote parsing to runtime ( #22537 )
2022-01-20 10:39:21 +08:00
Justin Starry
f804ccdece
Store address table lookups in blockstore and bigtable ( #22402 )
2022-01-14 15:24:41 +08:00
behzad nouri
4d62f03297
uses enum instead of trait for VoteTransaction ( #22019 )
...
Box<dyn Trait> involves runtime dispatch, has significant overhead and
is slow. It also requires hacky boilerplate code for implementing Clone
or other basic traits:
https://github.com/solana-labs/solana/blob/e92a81b74/programs/vote/src/vote_state/mod.rs#L70-L102
Only limited known types can be VoteTransaction and they are all defined
in the same crate. So using a trait here only adds overhead.
https://github.com/solana-labs/solana/blob/e92a81b74/programs/vote/src/vote_state/mod.rs#L125-L165
https://github.com/solana-labs/solana/blob/e92a81b74/programs/vote/src/vote_state/mod.rs#L221-L264
2021-12-22 14:25:46 +00:00
segfaultdoctor
76098dd42a
RPC Block Subscription ( #21787 )
...
* add stuff
* compiling
* add notify block
* wip
* feat: add blockSubscribe pubsub method
* address PR comments
Co-authored-by: Lucas B <buffalu@jito.network>
Co-authored-by: Zano <segfaultdoctor@protonmail.com>
2021-12-17 16:03:09 -07:00
Ashwin Sekar
f0acf7681e
Add vote instructions that directly update on chain vote state ( #21531 )
...
* Add vote state instructions
UpdateVoteState and UpdateVoteStateSwitch
* cargo tree
* extract vote state version conversion to common fn
2021-12-07 16:47:26 -08:00
Michael Vines
b8837c04ec
Reformat imports to a consistent style for imports
...
rustfmt.toml configuration:
imports_granularity = "One"
group_imports = "One"
2021-12-03 09:19:13 -08:00
Jon Cinque
02bc4e3fc1
spl-token: New program feature flag ( #21354 )
...
* spl-token: Add feature flag for new release
* Remove all spl token version declarations
2021-11-21 14:27:03 +01:00
Jeff Biseda
7659a2edc2
report pubsub stats every 2s ( #21192 )
2021-11-05 19:59:54 -07:00
Pavel Strakhov
9fabff5129
Parallel notifications in RPC PubSub ( #20543 )
...
* generate rpc notifications in parallel
* Use multithreaded runtime for pubsub
* add metric for time since creation of rpc notification to queue
* measure notification entry processing
* fix: add n_threads config argument
* configure rayon thread pool for rpc notifications
* add config option for pubsub notification threads
* rename metric to created_to_queue_time_us
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* rename metric to notification_entry_processing_time_us
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* use value_of for rpc_pubsub_notification_threads parsing
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* rename threads to sol-sub-notif-N
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* fix rpc tests for TimestampedNotificationEntry
* rustfmt
* use rayon thread limit for rpc
Co-authored-by: Pavel Strakhov <p.strakhov@iconic.vc>
Co-authored-by: Alexander Polakov <a.polakov@zubr.io>
Co-authored-by: Nikita Podoliako <bananaelecitrus@gmail.com>
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2021-11-01 00:17:24 -06:00
Manuel Gil
a0f9e0e8ee
Add missing websocket methods to rust RPC PubSub client ( #21065 )
...
- Added accountSubscribe, programSubscribe, slotSubscribe and rootSubscribe to rust RpcClient
- Removed duplication on cleanup threads
- Moved RPCVote from rpc/ to client/rpc_response
2021-10-29 17:11:20 +00:00
Tyera Eulberg
9dd87bcdb5
Use config limit instead of default ( #20900 )
2021-10-23 07:04:15 +00:00
Tyera Eulberg
e13ed8a627
Add RecentItems metrics ( #20484 )
2021-10-06 16:16:56 -06:00