solana/sdk
Pavel Strakhov 65227f44dc
Optimize RPC pubsub for multiple clients with the same subscription (#18943)
* reimplement rpc pubsub with a broadcast queue

* update tests for new pubsub implementation

* fix: fix review suggestions

* chore(rpc): add additional pubsub metrics

* integrate max subscriptions check into SubscriptionTracker to reduce locking

* separate subscription control from tracker

* limit memory usage of items in pubsub broadcast queue, improve error handling

* add more pubsub metrics

* add final count metrics to pubsub

* add metric for total number of subscriptions

* fix small review suggestions

* remove by_params from SubscriptionTracker and add node_progress_watchers map instead

* add subscription tracker tests

* add metrics for number of pubsub notifications as a counter

* ignore clippy lint in TokenCounter

* fix underflow in token counter

* reduce queue capacity in pubsub tests

* fix(rpc): fix test timeouts

* fix race in account subscription test

* Add RpcSubscriptions::new_for_tests

Co-authored-by: Pavel Strakhov <p.strakhov@iconic.vc>
Co-authored-by: Nikita Podoliako <n.podoliako@zubr.io>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2021-09-17 13:40:14 -06:00
..
benches Demote write locks on transaction program ids (#19593) 2021-09-04 03:05:30 +00:00
bpf Add return data implementation 2021-09-10 14:25:54 +01:00
cargo-build-bpf Recover from interrupted bpf sdk installs (#19651) 2021-09-06 01:59:58 -07:00
cargo-test-bpf Reword help of generate-child-script-on-failure cargo bpf tools option (#18685) 2021-07-15 03:31:33 +00:00
docker-solana move `./run.sh` into `./scripts` 2021-09-11 14:49:17 -06:00
macro Add macros for deprecacted ids (#18907) 2021-07-26 20:54:46 -07:00
program stake: Add BorshDeserialize trait to structs (#19958) 2021-09-17 10:14:23 +02:00
src Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
.gitignore
Cargo.toml chore: bump memmap2 from 0.3.1 to 0.4.0 (#19974) 2021-09-17 10:00:12 -06:00
README.md Add sdk and program READMEs (#18154) 2021-06-23 21:22:35 +00:00
Xargo.toml
build.rs

README.md

Solana

Solana SDK

Use the Solana SDK Crate to write client side applications in Rust. If writing on-chain programs, use the Solana Program Crate instead.

More information about Solana is available in the Solana documentation.

The Solana Program Library provides examples of how to use this crate.

Still have questions? Ask us on Discord