6 分钟
新链整合
链可以通过启动新的graph-node
集成为其生态系统带来子图支持。子图是一个强大的索引工具,为开发人员打开了一个充满可能性的世界。Graph节点已经对此处列出的链中的数据进行了索引。如果您对新的集成感兴趣,有两种集成策略:
- EVM JSON-RPC
- Firehose: 所有Firehose集成解决方案都包括Substreams,这是一个基于Firehose的大规模流媒体引擎,支持原生
graph-node
,允许并行转换。
请注意,虽然推荐的方法是为所有新链开发新的Firehose,但只有非EVM链才需要。
整合策略
1. EVM JSON-RPC
如果区块链与EVM等效,并且客户端/节点公开标准的EVM JSON-RPC API,Graph节点应该能够索引新的链。有关更多信息,请参阅EVM JSON-RPC测试()。
测试EVM JSON-RPC
为了使Graph节点能够从EVM链中获取数据,RPC节点必须公开以下EVM JSON RPC方法:
eth_getLogs
eth_call
\(对于历史块,使用EIP-1898 - 需要归档节点):eth_getBlockByNumber
eth_getBlockByHash
net_version
eth_getTransactionReceipt
, 在JSON-RPC批量请求中trace_filter
(有限跟踪,图节点可选)
2. Firehose整合
Firehose是下一代提取层。它以平面文件的形式收集历史记录,并实时流式传输。Firehose技术利用推送模型将数据更快地发送到索引节点,用数据流取代了那些轮询API调用。这有助于提高同步和索引的速度。
注意:StreamingFast团队完成的所有集成都包括将Firehose复制协议维护到链的代码库中。StreamingFast会跟踪任何更改,并在您更改代码和StreamingFast更改代码时发布二进制文件。这包括为协议发布Firehose/Substreams二进制文件,为链的块模型维护Substreams模块,并在必要时为区块链节点发布带有插装的二进制文件。
非EVM链的集成
将Firehose集成到链中的主要方法是使用RPC轮询策略。我们的轮询算法将预测新块何时到达,并提高在该时间附近检查新块的速率,使其成为一种非常低延迟和高效的解决方案。有关Firehose集成和维护的帮助,请联系StreamingFast团队。新链及其集成商将欣赏Firehose和Substreams为其生态系统带来的分叉意识 和大规模并行索引功能。
EVM(geth
)链特定仪器
对于EVM链,通过Go Ethereum和StreamingFast之间的合作 geth
live-tracer可以实现更深层次的数据,从而构建一个高吞吐量和丰富的交易跟踪系统。Live Tracer是最全面的解决方案,可提供 扩展 的块细节。这启用了新的索引范式,例如基于状态更改、调用、父调用树的事件模式匹配,或基于智能合约中实际变量的更改触发事件。

注意:对Firehose的改进要求链条使用EVM 1.13.0及更高版本的引擎。
EVM注意事项-JSON-RPC和Firehose之间的区别
虽然JSON-RPC和Firehose都适用于子图,但想要使用Substreams构建的开发人员总是需要Firehose。支持子流允许开发人员为新链构建子流驱动的子图,并有可能提高子图的性能。此外,Firehose作为graph节点
JSON-RPC提取层的直接替代品,将常规索引所需的RPC调用数量减少了90%。
- 所有这些
getLogs
调用和往返都被到达graph节点
中心的单个流所取代;它处理的所有子图的单个块模型。
注意:基于Firehose的EVM链集成仍然需要索引人运行链的归档RPC节点来正确索引子图。这是由于Firehose无法提供通常可通过 eth_call
RPC方法访问的智能合约状态。(值得提醒的是,eth_call
对开发人员来说不 是一种好的做法)
Graph节点配置
配置Graph节点就像准备本地环境一样简单。设置好本地环境后,您可以通过在本地部署子图来测试集成。
-
修改 此行, 包括新网络名称和符合EVM JSON RPC或Firehose的URL
不要更改环境变量名称本身。它必须保持为
ethereum
,即使网络名称不同也是如此。 -
运行IPFS节点,或使用Graph使用的IPFS节点: https://api.thegraph.com/ipfs/
Substreams驱动的子图
对于StreamingFast led Firehose/Substreams集成,包括对基础Substreams模块(如解码交易、日志和智能合约事件)和Substreams代码生成工具的基本支持。这些工具允许启用Substreams驱动的子图。按照 操作指南 运行子流codegen子图
,亲身体验codegen工具。