Demux – 由EOSIO区块链链下验证的确定性数据库

原文地址:https://medium.com/eosio/introducing-demux-deterministic-databases-off-chain-verified-by-the-eosio-blockchain-bd860c49b017

EOSIO区块链平台的主要优势之一是能够开发可用的,可扩展的且灵活的去中心化应用程序。为此,Block.one很高兴地向大家宣布Demux—EOSIO社区的一个新的开源开发工具,可把复杂DAPP的开发简化。

Demux从Facebook的Flux架构模式和Redux中获得灵感,创建了一个后端基础架构模式,用于追踪区块链事件,这样可以明确更新基于EOSIO区块链创建的应用程序的可查询数据库。

这种体系结构允许应用程序开发人员使用传统的Mongo或Postgres SQL数据库,这意味着存储在这些数据库中的数据仍然可以通过区块链进行验证。这样可以一箭双雕:同时保留传统数据库的灵活与高度,以及区块链的可信任和不可变属性。

存储和检索索引数据是开发人员几十年来常用的东西。搜索,排序,筛选等功能都可以在传统的数据库环境中轻松完成,但直接使用区块链节点自身有限的查询接口则没有这些功能。

在构建更复杂的DAPP时,直接从区块链检索数据时会遇到一些问题:

用于检索索引数据的查询接口是有局限的。复杂的数据需求可能意味着您必须在DAPP中进行大量的查询并处理数据,或者你必须在区块链本身上存储其他额外的已排序的数据。

此外,扩展查询量意味着需要更多的区块链端点节点,这个成本可能很昂贵。

Demux通过将存储和查询分担到您的默认数据库(MongoDB,Postgres等)来解决这些问题。当区块链事件发生时,您选择的数据库由Updater函数更新,这些函数确定去执行一组Action对象。然后,在为您的应用程序检索数据时,您的前端DAPP可以通过合适的API(例如,REST或GraphQL)查询数据库,这样可以减少与区块链直接交互的次数。这也可以帮助开发人员限制需要存储在RAM中的数据量,从而降低应用程序的运营成本,同时提高架构效率。

您可以在官方GitHub资料库中查看该发行版的完整详细信息。示例库demux-js可以作为Demux体系结构实现Node.JS的参考案例。

为了证明我们Block.one的开发团队一直在努力改进EOSIO开发者体验,开发技术推广部(Developer Relations)将继续为您带来更新。请继续关注我们的社交频道上的EOSIO更多的更新,并确保订阅EOSIO开发者门户上网站的邮件列表。​​​​