dfuse Search 简易化构建高性能应用程序的过程,在一秒钟内实现对全链历史的筛选查询,准确匹配到符合你筛选条件的交易.
dfuse 团队推出了在以太坊上的 dfuse Search 查询引擎。
一直以来,在以太坊上查询交易(转账和变异函数调用)和状态(变量的历史值)都是个缓慢又痛苦的过程,即使是一个简单的搜索也需要几分钟才能完成。想要有快速、可靠的区块链数据查询引擎是一个棘手的技术问题,更不用说想让它的功能强大且性能高,完成这个任务需要克服技术挑战有很多:
dfuse Search 简易化构建高性能应用程序的过程,在一秒钟内实现对全链历史的筛选查询,准确匹配到符合你筛选条件的交易,并通过单个串流读取输出你需要的数据,还能自动处理断连和重连、也消除了误报的情况——让你不错过任何一个节拍! dfuse 还可以观测和处理链的分叉,省去你的工作。
dfuse Search 提供的数据细化程度在区块链上是无先例的,能帮助你构建世界级的应用程序,可实现的实例有:
要访问在以太坊上的内测版 dfuse Search:
dfuse Search 查询语言类似于 Kibana 或 GitHub 公开的 issue 筛选的语言。用一个简单的 flat 字符串 key1:value1 key2:value2
表示,也允许使用否定句、用 OR
分隔的组合句。
dfuse Search 索引区块链上的每个EVM调用、每个日志,为你的查询提供前所未有的颗粒度。
要查询由某个地址签名的所有交易,请使用:
[signer:0x59a5208B32e627891C389EbafC644145224006E8](https://ethq.app/search?q=signer%3A0x59a5208B32e627891C389EbafC644145224006E8)
要获得对某个合约的所有 call
(非委托调用或 callcode),请使用:
callType:call to:0x5df9b87991262f6ba471f09758cde1c0fc1de734
要查询对某合约提供某指定输入的交易,请使用:
[input.0:00000000000000000000000084ae8708798c74ef8d00f540c4012963955106ff to:0x06012c8cf97bead5deae237070f9587f8e7a266d](https://ethq.app/search?q=input.0%3A00000000000000000000000084ae8708798c74ef8d00f540c4012963955106ff%20to%3A0x06012c8cf97bead5deae237070f9587f8e7a266d)
查询所有触发了在合约上的指定 method
的交易,请使用:
[method:a9059cbb to:0x8fdcc30eda7e94f1c12ce0280df6cd531e8365c5](https://ethq.app/search?q=method%3Aa9059cbb%20to%3A0x8fdcc30eda7e94f1c12ce0280df6cd531e8365c5)
或使用:
[method:'transfer(address,uint256)'](https://ethq.app/search?q=method%3A%27transfer(address%2Cuint256)%27)
查询任何对合约中指定 key 更改了存储的 EVM 调用:
to:0xa327075af2a223a1c83a36ada1126afe7430f955 storageChange:0x3
你还可以用 value
来查到从一个 call 转到另一个 call 的值,用 nonce
和 from
查询来自某个指定用户的交易,然后再和其他的 dfuse Search 配合使用。
想对日志进行查询的请试试 :
[address:dac17f958d2ee523a2206206994597c13d831ec7](https://ethq.app/search?q=address%3Adac17f958d2ee523a2206206994597c13d831ec7)
按索引主题或数据直接进行查询可使用:
[data.0:1eda1ceca1274d6ab9101c30abd6b8b205861286](https://ethq.app/search?q=data.0%3A1eda1ceca1274d6ab9101c30abd6b8b205861286)
或使用:
topic.0:ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
或组合你的查询来找到你想找的转账:
可与 signer
和其它的查询字段配合使用
dfuse Search 可帮助你观测分叉并解决链重组的问题,让你无需再去自行处理这个复杂的问题。获取一个可以在全链上探测分叉的 cursor,在下一个查询中将其传回,让你永远不会错过任何一个节拍。
你可以定义查询的区块范围,按升序或降序查询。进行升序查询时,你可以使用内置的 cursor 在得到所有结果后继续搜索,监听新的匹配项。请参阅此文章中对此功能的展示。
以太坊上 dfuse Search 目前处于内测状态。这是我们的第一次将其公开发布,因此我们将根据内测用户的反馈来改进 API。请随时告诉我们你希望看到的内容以及能帮助你改善开发体验的建议。加入 dfuse Ethereum Telegram 群,让我们共同构建明日的次世代 dapp。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!