美文网首页
Demux 介绍:由 EOSIO 区块链进行链下验证的确定性数据

Demux 介绍:由 EOSIO 区块链进行链下验证的确定性数据

作者: 平兄_3cd7 | 来源:发表于2018-08-01 14:23 被阅读0次

    Demux 介绍:由 EOSIO 区块链进行链下验证的确定性数据库

    导读:EOSIO 于 昨日(20180731)在 Medium 上对 Block.one 新开发出的 Demux 发文介绍(原文) ,本文为EOS sw/eden 瑞典社区对原文的翻译。

    译者:平兄


    概念明晰:

    Deterministic Database:本文翻译为确定性数据库。对于需要处理的事务,确定性数据库会在全局确定好事务的顺序,并按照这个顺序执行。

    在数据库存储过程中,deterministic 也表示每次执行存储过程时,相同的输入会得到相同的输出。


    EOSIO 区块链平台最主要的优势之一是易于开发高可用性、可扩展性、灵活性的 DApps。为了实现这个目标,在 Block.one 官网上,我们很兴奋地宣布推出 Demux,为 EOSIO 社区开发的一个新的开源开发工具,可用于简化复杂的DAPP开发。

    Demux 的设计灵感来自于 Facebook 的 Flux 架构模式Redux ,构建一个后台基础架构模式用于获取区块链事件,以便对基于 EOSIO 区块链的应用程序的可查询数据库进行确定性地更新。

    这暗示,该架构能够让开发者使用传统的数据库,如 MongoDB 或者 Postgres SQL,也意味着存储在这些传统数据库的数据仍然可通过区块链进行验证。这无疑是两全其美的架构:即拥有传统数据库的灵活性和速度,也保留着区块链的信任和不可篡改的属性。

    存储和检索索引数据是开发者几十年来常用的事。搜索,排序、筛选等功能在传统数据库环境中都很容易实现,但在区块链这种分布式总账数据库中,这些功能都是缺失的,区块链节点的查询接口本来就很有限。

    在构建更复杂的 DAPPs 时,当你想直接从区块链中检索数据时,你可能会陷入一系列问题。

    1. 用于检索索引数据的查询接口是有限的。复杂的数据需求可能意味着你要么必须进行大量的查询然后在 DAPP 中进行数据处理,要么你必须在区块链上存储额外的分类数据。

    2. 另外,扩大你的查询负载也意味着需要访问更多的区块链终端节点,这样成本可能也会更贵。

    Demux 通过将存储和查询减荷引流到你的首选数据库(MongoDB,Postgres 等)来解决这些问题。当有区块链事件发生时,你所选的数据库会由 Updater 函数进行更新,Updater 会确定性地处理一系列 Action 对象。接下来你的前端 DAPP 就可以通过合适的 API (例如 REST 或者 GraphQL)从首选数据库中进行检索,从而减少与区块链的直接交互的频数。这样也有助于开发者限制需要存储在内存(RAM)中的数据量,降低应用程序的运营成本,同时提高它们的架构效率。

    流程.png

    发布版本的完整细节可以在 官方 GitHub 仓库 中查阅。示例库 demux-js 作为 Demux 架构的 NodeJS 实现的一个参考。

    开发技术推广部将继续为您带来最新的功能。我们在 Block.one 的开发团队致力于提升在 EOSIO 上的开发者体验。若想获得更多的更新消息,请继续关注我们的社交频道,并确保订阅我们在 EOSIO 开发者门户网站上的邮件列表

    谢谢!

    Block.one 开发技术推广部


    相关文章

      网友评论

          本文标题:Demux 介绍:由 EOSIO 区块链进行链下验证的确定性数据

          本文链接:https://www.haomeiwen.com/subject/nexrvftx.html