EOSIO区块链平台的主要优势之一是能够开发可用、可扩展且灵活的分级应用程序。为此,Block.one很高兴地发布Demux,这是EOSIO社区的一个新的开源开发工具,它可以简化复杂的DAPP开发。
Demux从Facebook的Flux架构模式和Redux中汲取灵感,创建了一个后端基础架构模式,用于采集区块链事件,以确定性地更新基于EOSIO区块链的应用程序的可查询数据库。
这个建议的体系结构允许应用程序开发人员使用传统的Mongo或Postgres SQL数据库,在某种程度上意味着存储在其中的数据仍然可以通过区块链进行验证。这样可以实现两全其美:传统数据库的灵活性和速度,以及区块链的信任和不可变属性。
存储和检索索引数据是开发人员几十年来常用的东西。搜索,排序,过滤等功能都可以在传统的数据库环境中轻松完成,但直接使用区块链节点固有限制的查询接口时会丢失。
在构建更复杂的DAPP时,直接从区块链检索数据时会遇到一些问题:
1.用于检索索引数据的查询接口是有限的。复杂的数据要求可能意味着您必须在DAPP中进行过多的查询并处理数据,或者必须在区块链本身上存储其他已排序的数据。
2.此外,扩展查询负载意味着需要更多的区块链端点节点,这可能很昂贵。
Demux通过将存储和查询卸载到您的首选数据库(MongoDB,Postgres等)来解决这些问题。当区块链事件发生时,您选择的数据库由Updater函数更新,这些函数确定性地处理一组Action对象。
然后,您的前端DAPP可以通过合适的API(例如,REST或GraphQL)查询数据库,从而减少与区块链直接交互的数量,以便为您的应用程序检索数据。这也可以帮助开发人员限制需要存储在RAM中的数据量,从而降低应用程序的运营成本,同时提高架构效率。
可以在官方GitHub存储库(https://github.com/EOSIO/demux-js)中查看该发行版的完整详细信息。示例库demux-js作为Demux体系结构的参考NodeJS实现。
本文翻译自:
https://medium.com/eosio/introducing-demux-deterministic-databases-off-chain-verified-by-the-eosio-blockchain-bd860c49b017