dfuse Search 是所有 EOSIO 开发者的必备工具

[外链图片转存失败(img-RYaKtdG7-1565986848023)(https://www.dfuse.io/hubfs/dfuse%20Search%20is%20a%20must%20for%20every%20EOSIO%20developer-1.png)]

Source

了解我们为什么选择自己构建自定义解决方案去替代 nodeos 的 History API。 我们强大的搜索查询语言和深度的数据索引能从区块链中检索出您想要的数据。 结合 GraphQL 订阅查询和全链 cursor,你可以轻松地为你的 UI 提供历史数据并实时监听新的查询结果。

了解微分叉


点击查看视频


文字转录:

找东西!在区块链上有很多东西。很多的交易、数据库的大量变化, 而我们总有我们想寻找的信息。那我们该你怎么找到它们呢?有很多可用的方法, 其中一个是由nodeos 提供的原生历史API。叫 “History API”。历史 API 为您提供 (现在它已经被弃用,但是有其它的替代品),它给你提供了交易的历史记录。它为提供所有你签了名的交易,还有所有智能合约给你的帐户通知的交易。你可能注意到了,这里有很多垃圾信息,可以未经你同意就发给你,对吧?然后让历史 API 里充满了垃圾信息, 很难去浏览。真的很多你不需要东西。
当你构建一个人 UI 时, 比如你想要列出最新的 DEX 交易清单,或者最新的其它东西,唯一的你可以用 History API 查询是你的所有交易。然后你得下载所有这些交易,整个有效载荷,
然后去让客户端过滤,这计算量太大了。你可能看到一百或一千多个垃圾交易,你还完全用不到它们。所以我们 dfuse 在早期注意到了这个问题, 我们决定做点什么。而我们认为查询历史记录的最佳方式 是用一个搜索引擎。所以我们开发出了 dfuse Search。

dfuse Search 是怎么运作的呢?

dfuse Search 实际上是去索引归纳了 区块链上所有的历史记录、所有数据、所有的区块, 从创世块到现在一直在实时的记录。我们做了一个特殊的区块链专用数据库, 现在它是索引 EOS,他还进到你的操作中比如你有个转账, 这里就包含fromtoquantitymemo。正好,我们现在索引这样交易中的 30 多项信息。如果你想看到我用某种代币都给你转过什么账你只需要写个小查询, 然后我们会去搜索整个区块链。它可比在你的客户端上一页页的翻找容易多了。

我们还推出了 GraphQL 订阅读取功能你可以用它的搜索语法读取即将到来的区块。它会实时过滤, 在匹配你的查询的信息出现时通知你而且,GraphQL 界面有个新功能, 就是我们能帮你观测到微分叉。还记得微分叉(microforks)什么意思吗?我们给你解释它视频的链接。如果微分叉出现了,然后你的搜索匹配到的交易不再符合 你的搜索条件了的话,你需要被通知到,它可能会被逆回了。那我们会在 GraphQL 中通知你, 所以注意在那里选上接收 undo 信息。把它设为 true。如果你收到了 undo, 你就得从数据库中删掉接收到的交易。也不能在 UI 中再显示了,因为它已经不存在了。最有可能的是它会被 下一个节点重新注入到链中。那么你就会在几毫秒内,链重组之后。再收到它。所以基本上有了这个数据流,就不用再担心了。你会有区块链的真实状态和信息, 你就能给你的用户提供安全和保障。

我们非常努力的去满足最基本和最常用的需求,比如给 UI 提供历史记录但也同时监听着未来的信息。而用 GraphQL 接口和新的 cursor,你就能实现这个目标了。你可以用搜索语言查到你想查的东西,拿到经过分页的历史信息。然后还能实时读取,通过 GraphQL 订阅查询。你可以一次 流式读取整个区块链,如果你需要的话。用我们现在给你每个反馈都发的 cursor, 可以做正向搜索(随着区块链前进的方向)观测未来的信息。所以你可以用这个 cursor 做正向或反向的搜索,就能始终知道到区块链上真实信息,历史的和实时的
实现这个功能,我们需要建造一些 之前没有的东西,所以我们还自豪的。

如果你想尝试一下, 最好的方法就是通过我们的 GraphQL 接口,文档的链接我们会给大家。我希望你会找到查询区块链的乐趣。我向你致敬。

发布了76 篇原创文章 · 获赞 2 · 访问量 9856

猜你喜欢

转载自blog.csdn.net/weixin_43891115/article/details/90248073