10 个稳定版本
1.0.10 | 2024年1月13日 |
---|---|
1.0.9 | 2024年1月8日 |
1.0.7 | 2024年1月5日 |
1.0.4 | 2024年1月4日 |
#554 in 魔法豆
每月下载量:59
78KB
1.5K SLoC
Solana Block Cacher
概述
Solana Block Cacher 是一个基于 Rust 的高性能、命令行界面(CLI)工具。它旨在高效地从 Solana 区块链中拉取区块,同时遵守指定的速率限制。此工具智能地测量用户的连接速度和速率限制,以计算抓取区块的最优线程数量。区块以50个批次处理,并以高效的方式写入 JSON 文件。
特性
- 快速区块抓取:利用 Rust 的速度,在速率限制允许的范围内尽可能快地抓取区块。
- 连接速度优化:根据用户的连接速度和速率限制自动调整线程数量。
- 可定制区块范围:用户可以指定要缓存的起始和结束 Solana 插槽号。
- 高效批量处理:以50个批次处理区块,以实现高效的处理。
- 详细日志:启用详细调试日志的选项。
安装
在安装 Solana Block Cacher 之前,请确保您的系统上已安装 Cargo。如果没有,您可以按照官方 Cargo 网站上的说明进行安装。
要安装 Solana Block Cacher,请使用以下命令
cargo install solana-block-cacher
用法
要使用 Solana 块缓存器,请使用所需的参数运行命令。以下是可用选项:
solana-block-cacher [OPTIONS]
获取 RPC URL
您可以通过 QuickNode 获取 Solana RPC URL。我个人使用 QuickNode Pro 解决方案,它允许我每月检索数百万个块进行回测。
选项
-v, --verbose
:启用详细日志记录(默认:false)。-l, --log_output_file <LOG_OUTPUT_FILE>
:日志输出文件的路径(默认:"output.log")。-f, --from_slot <FROM_SLOT>
:开始缓存块的 Solana 插槽号。-t, --to_slot <TO_SLOT>
:缓存块的 Solana 插槽号。-r, --rpc_url <RPC_URL>
:连接到 Solana 主网的 HTTP RPC URL。-o, --output_file <OUTPUT_FILE>
:写入块的文件(默认:"blocks.json")。--rate_limit <RATE_LIMIT>
:缓存器的速率限制(默认:50(QuickNode Pro 默认))。-w, --window <WINDOW>
:速率限制的时间窗口(默认:1(QuickNode Pro 默认))。
示例
solana-block-cacher --from_slot 12345 --to_slot 54321 --rpc_url https://crimson-chaotic-bird.solana-mainnet.quiknode.pro/*** --output_file my_blocks.json
线程数最优计算
给定以下输入
- $R_l$(速率限制):每个时间窗口允许的最大请求数。
- $W$(时间窗口):时间窗口的持续时间(毫秒)。
- $T$(每个请求的平均时间):从网络拉取块的平均时间(毫秒)。
最优线程数($O_n$)可以使用以下公式计算
$$ O_n = \frac{R_l}{\min\left(\frac{W}{T}, R_l\right)} $$
其中
- $\frac{R_l}{\frac{W}{T}}$ 计算了在时间窗口 $W$ 内单个线程可以处理的有效请求数。
- $\min\left(\frac{W}{T}, R_l\right)$ 确保每个线程的有效请求数不超过速率限制。
- $O_n$ 四舍五入到最接近的整数,因为线程数必须是整数。
贡献
欢迎贡献!请随时提交拉取请求或打开问题以进行改进和建议。
在贡献之前,请确保您已阅读 CONTRIBUTING.md。
许可
本项目为开源项目,可在 MIT 许可下获得。
快乐编码!🚀🦀
依赖关系
~59–97MB
~1.5M SLoC