1 个不稳定版本
0.1.0 | 2022 年 11 月 16 日 |
---|
#8 在 #balanced
48KB
1.5K SLoC
Solana Balanced Client
这是 solana-client crate 中的 RpcClient
的包装器。它能够平衡多个 RPC 端点之间的请求,并考虑到它们的限制。
用法
fn main() {
let default_rpc = Arc::new(RpcClient::new(
"https://api.mainnet-beta.solana.com".to_string(),
));
let your_rpc = Arc::new(RpcClient::new("<your-rpc-url>".to_string()));
let client = SolanaClient::new_with_default(your_rpc).add_rpc(
SolanaClientRpc::new(quicknode_rpc)
// Credits / month limits.
.add_limit(
SolanaClientRateLimit::new(
30 * 24 * 60 * 60 * 1000, /* 30 days */
1_000, /* credits per month */
1, /* default cost in credits for endpoints */
)
// Ignore those endpoints that should be handled in this limit.
.ignore_endpoint(RpcRequest::GetHealth)
// List of all endpoints whose credits are different than the default value.
.add_endpoint_amount(RpcRequest::GetAccountInfo, 2)
.add_endpoint_amount(RpcRequest::GetMultipleAccounts, 10)
)
// Requests / second limit.
.add_limit(SolanaClientRateLimit::new(
1000, /* 1 second */
10, /* 10 requests per second */
1, /* all requests count the same */
)),
);
// ...
}
您可以在 examples
目录中看到更多示例。
许可证
本项目采用 MIT 许可证 — 请参阅 LICENSE 文件以获取详细信息。
依赖项
~75MB
~1.5M SLoC