6 个版本 (1 个稳定版)

1.0.0 2024年8月9日
0.2.0 2024年7月12日
0.1.0 2024年6月15日
0.1.0-alpha.32024年5月9日

458魔法豆

Download history 237/week @ 2024-04-29 159/week @ 2024-05-06 1/week @ 2024-05-13 7/week @ 2024-05-20 191/week @ 2024-06-10 50/week @ 2024-06-17 5/week @ 2024-06-24 13/week @ 2024-07-01 94/week @ 2024-07-08 18/week @ 2024-07-15 49/week @ 2024-07-29 112/week @ 2024-08-05 14/week @ 2024-08-12

每月175 次下载

MIT/Apache

90KB
2K SLoC

crates-io Workflow Status

索引器

InIndexer是一个NEAR索引器框架。

特性

  • 不同的near数据来源:neardata(已实现),AWS Lake(仅支持连续递增范围),用于回填的本地文件存储(计划中),你可以通过实现MessageStreamermessage_provider::MessageProvider特质来添加自己的来源。
  • 简单的索引器接口:你只需实现Indexer特质,并处理收据、区块、交易或包含所有收据的交易,这会带来一些预处理开销(在Slime的PC上,以80-100 TPS的速度运行时,在发布模式下大约为1-2ms,这可以在IndexerOptions::preprocess_transactions中禁用)。
  • 重试、性能警告、跳过的区块处理和其他功能都是内置的,因此你可以专注于你的索引器逻辑。
  • 自动继续:索引器会将最后处理的区块高度保存到文件中,并在下一次运行时从它继续。包括一个Ctrl+C处理程序以实现优雅的关闭。
  • 一些用于与日志、余额和其他常用功能在near_utils中工作的辅助函数和类型。

这个crate只与tokio运行时一起工作。

如果您想查看一些示例,请查看examples/中的最小示例或Intear基础设施中使用的真实索引器(nft-indexerpotlock-indexertrade-indexercontract-indexerintear-oracle indexer)。顺便说一下,其中一些仓库是库,所以如果您想使用具有不同事件处理器的相同功能,您可以通过将它们指定为git依赖项在您的代码中使用它们。

要同时运行多个索引器而不为每个索引器发出新请求,请使用MultiIndexer,如果您的索引器有不同的错误类型,请使用MapErrorIndexer

如果您使用neardata,您可以通过在数据提供程序上调用.optimistic()来启用乐观块检索,如果您不关心最终性并且需要最小化延迟。

依赖项

~23–39MB
~551K SLoC