为什么区块链需要一个查询引擎——dfuse API

CITA 开发者们,受溪塔科技团队的邀请,我们来向大家介绍下 dfuse API。凭借其低延迟架构,dfuse 强大的 API 可以实现串流实时状态更新、进行快速搜索,并提供首个使用简单 API 命令而提供交易的不可逆保证的功能。 它的旗舰功能包括 dfuse Stream、dfuse Lifecycle、dfuse Search 和 dfuse 定制网络。我们希望通过给CITA 的开发者展示一些 dfuse 用户非常喜爱的,帮助他们轻松地定制开发,为产品打造一流的用户体验的功能,从而看看 CITA 开发者对这些功能的需求,欢迎大家参与讨论和提问。

今天我们要向大家介绍的是 dfuse 的查询引擎——dfuse Search。

点击查看视频

以太坊开发者都面临的一个主要挑战是保证收到的数据是真正与区块链同步的,同时能监测到分叉。dfuse 的联合创始人兼 CTO Alexandre Bourget 在这个视频中介绍强大的搜索 API,帮助大家解决这个难题。

dfuse Search 让你能用 AND、OR 和 NOT 运算符编写查询语句,搜索以太坊的两种数据:

  • EVM调用,查询关键字有: signer(签署者)、input(输入)、value(值)、to(接收者)、from(发送者)、method(方法),等等。
  • 智能合约中的定义的事件的日志,查询关键字有:topic.0、topic.2、data.1 等等。

当智能合约将某个日志事件标记为已索引时,它们会进节点的 Bloom 过滤器。但 dfuse 会索引一切,不光是在 Bloom 过滤器中找到的信息。dfuse 的搜索范围可以扩展到默认范围之外,因为它是真实数据的直接搜索而不是 Bloom 过滤器的概率查询,而且不会提供误报。

你不在会为了质量而牺牲速度。 dfuse Search 提供闪电般的搜索,通常会在一秒内返回结果,让你能够创造出超凡的用户体验。以太坊上历史数据庞大,因此 dfuse 利用缓存来调用 在链上找不到的结果 的位置。这意味着,在首次对全链进行搜索后,无论交易发生的时间有多远,dfuse 都会给你全生态中最快的响应时间。

dfuse 搜索还可以作为实时侦听器。利用可监测分叉的 cursor 游标,可以确保你不错过任何的相关信息。你可以对历史进行搜索,直到追上头块,然后继续一直监听下去。这样的功能使许多开发人员只需使用 dfuse 的端点即可跳过很多障碍、开发时间和数百行额外的代码。

可监测分叉的 cursor 游标,即使连接断了,即使您看到的最后一个交易不在链中,重连后也可以取回所需的所有数据。这样就不再需要写代码来处理每天发生的大量分叉,dfuse 会为你做这些繁重的工作。我们的许多用户都说,这个功能就可以帮他们删除多达90%的代码。

在以太坊上,你经常会发现每天出现一到两个区块的深度重组,每几个月还会有一次三区块的深度重组。Etheruem Classic (以太坊经典版)曾经甚至有过51个区块的重组。对于处理敏感信息的 dapp (例,金融交易),能这样处理分叉是非常重要的。在监听过程中如果遇到分叉, dfuse API 可以向你发送 UNDO 提示,让你可以及时知道并快速响应交易的回滚。

关注我们的 Twitter微博微信公众号,加入dfuse Telegram微信群,和众多开发者讨论在做的项目,我们知道如何能帮到你。我们还为以太坊开发人员提供了免费版的账号,让你可以立即上手!

5赞