6 个版本 (1 个稳定版)
1.0.0 | 2024年8月9日 |
---|---|
0.2.0 | 2024年7月12日 |
0.1.0 | 2024年6月15日 |
0.1.0-alpha.3 | 2024年5月9日 |
458 在 魔法豆
每月175 次下载
90KB
2K SLoC
索引器
InIndexer是一个NEAR索引器框架。
特性
- 不同的near数据来源:neardata(已实现),AWS Lake(仅支持连续递增范围),用于回填的本地文件存储(计划中),你可以通过实现
MessageStreamer
或message_provider::MessageProvider
特质来添加自己的来源。 - 简单的索引器接口:你只需实现
Indexer
特质,并处理收据、区块、交易或包含所有收据的交易,这会带来一些预处理开销(在Slime的PC上,以80-100 TPS的速度运行时,在发布模式下大约为1-2ms,这可以在IndexerOptions::preprocess_transactions
中禁用)。 - 重试、性能警告、跳过的区块处理和其他功能都是内置的,因此你可以专注于你的索引器逻辑。
- 自动继续:索引器会将最后处理的区块高度保存到文件中,并在下一次运行时从它继续。包括一个Ctrl+C处理程序以实现优雅的关闭。
- 一些用于与日志、余额和其他常用功能在
near_utils
中工作的辅助函数和类型。
这个crate只与tokio运行时一起工作。
如果您想查看一些示例,请查看examples/中的最小示例或Intear基础设施中使用的真实索引器(nft-indexer,potlock-indexer,trade-indexer,contract-indexer,intear-oracle indexer)。顺便说一下,其中一些仓库是库,所以如果您想使用具有不同事件处理器的相同功能,您可以通过将它们指定为git依赖项在您的代码中使用它们。
要同时运行多个索引器而不为每个索引器发出新请求,请使用MultiIndexer
,如果您的索引器有不同的错误类型,请使用MapErrorIndexer
。
如果您使用neardata,您可以通过在数据提供程序上调用.optimistic()
来启用乐观块检索,如果您不关心最终性并且需要最小化延迟。
依赖项
~23–39MB
~551K SLoC