Telos 链上历史数据查询工具升级 成本低效率高

牧云@^-^@ 提交于 2020-01-27 05:52:35

在这里插入图片描述

在接下来的几个月中,鼓励所有 Telos 节点和应用使用全新 V2 历史解决方案,并逐步停止使用 V1 历史解决方案。许多节点在 2020 年 3 月 31 日后将不再支持 V1 历史解决方案。

背景:

V2 历史解决方案是什么?为什么如此重要?我们需要知道链上实际数据(通常称为“区块日志”)和查询链上单笔交易的接口(称为“历史解决方案”)之间的区别。虽然链上数据的确涵盖了所有的链上操作细节,但我们需要有一个系统能够快速查询精确信息,比如查询帐户执行的最后 10 个操作(这是浏览器/钱包的常见查询)。

在这样的情况下,如果只有基本的区块日志可用,那么系统需要逐个查看所有链上日志,以找到所需的少量信息。可以想象,随着链上数据的增长,这样的操作十分低效。这就需要历史解决方案来发挥作用。

历史解决方案将有关操作的所有链上信息存储在单独的数据库中,可以根据需要快速检索。就上面的示例而言,当请求查询最后十个操作时,它不必读取链上的所有操作来查找数据,能够快速响应所需信息。

问题:

Block.one 已经在 EOSIO 标准版内部署了 V1 历史解决方案。然而,自最初版本,人们就知道 V1 历史解决方案难以维护持续增长的链上数据(因为这个原因,从一开始,V1 就被打上了过时的标签)。目前要在 Telos 主网上构建和维护 V1 历史解决方案,需要数周的时间来准备/修复系统,还需要占用大量的服务器内存(RAM)和硬盘空间。

例如,为了协助一个节点顺利升级至新的 EOSIO 2.0.0,管理员需要花费 100 多个小时来重新处理,其他所有未运行 V1 历史解决方案的节点则可以在几个小时内更新。另一个例子是,运行了 V1 历史解决方案的节点无法运行其他 EOSIO 软件,因此需要单独操作更多节点来保证稳定运行。

历史解决方案是区块链所需的重要服务,许多新的解决方案正在开发中,试图以一个更可持续,无需占用过多基础设施的系统,来取代原来的 V1 历史解决方案。

解决方案:

许多团队开发了新的基于 EOSIO 的历史解决方案,EOSRio 开发了 Hyperion 历史解决方案,由于其基础设施成本低,查询功能强,该解决方案在许多节点中迅速获得采用。EOSRio 的开发人员积极参与 Telos 社区的创建,Hyperion 还提供了添加 Telos 特定链上信息的功能。关于 Hyperion 的更多信息: https://eosrio.io/hyperion/ Hyperion Github 信息库: https://github.com/eosrio/Hyperion-History-API

为了减少 Telos 对 V1 历史解决方案的依赖性,节点们积极努力通知社区,节点将不再支持 V1 历史解决方案,而会积极提供 Hyperion 历史服务或其他下一代历史解决方案。这将有助于标准化及更广泛的 Hyperion 历史解决方案应用的推进(就像其他 EOSIO 链正在经历的一样,V1 历史解决方案现在和将来都很难完成定位)。

操作指南:

节点:与往常一样,节点请提供标准 API/P2P,目前无需运行其他任何历史解决方案。如果确实提供了 V1 历史解决方案,请应用 Hyperion V2 历史解决方案来替换 V1 历史服务。我们已与所有现有的 V1 历史提供商沟通,直到2020年3月底,他们都将持续提供这些服务(如果可能的话),以支持 DAPP /服务商在这段时间内过渡到新的服务。

DAPP/服务开发者:如果对节点有查看历史记录的需求,请使用全新 V2 历史服务(在查看记录方面,使用体验与 V1 非常相似),这样就不会受到任何节点停止提供 V1 服务的影响。以下是可以使用的公共 Telos Hyperion 节点列表(每周都会有更多的节点上线):

https://mainnet.telosusa.io/v2/docs/

https://telos.eosphere.io/v2/docs/

https://telos.caleos.io/v2/docs/

以上链接涵盖了服务器可响应的所有可用端点,在页面上可直接进行创建/测试。如果需要 Hyperion 服务的更多帮助,请加入 Hyperion 电报群:https://t.me/EOSHyperion

加入 Telos 电报群

https://t.me/HelloTelos

加入 Telos DAPP 开发者电报群

https://t.me/dappstelos

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!