随着 EOSIO™ 平台的不断进化,Block.one 与 EOSIO 上的开源社区协作已经成为软件是否能成为主流的关键环节。在最近公布的 EOSIO 战略远景中,我们提出了四个核心原则为框架基础:可扩展性、开发者、用户、企业,在这四方面的差异化使 EOSIO 与其他链不同。第一篇文章,我们来专题谈 “可扩展性” ,以及如何使 EOSIO 区块链实现效率的最大化。

当大众消费者开始用区块链应用程序时,可扩展性是最核心的关注点之一。通过持续研究和创新,我们团队致力于开发一个强大、高效、高性能的软件环境,快速扩展以满足动态的市场需求。Block.onoe 区块链开发主管 Bart Wyatt 最近在 Cointelegraph 上发表了一篇署名文章,重点讨论了区块链可扩展性,详述了关于可扩展性的不同定义以及为什么体量是区块链大众化的关键。

出块:垂直扩展

WASM

从实际业务逻辑来看,并行运行智能合约的几率其实并不大。所以需要在智能合约中,最高效执行单线程 WASM 代码。EOSIO 在设计时对此已有所考虑,通过善加利用各种 WASM 引擎,包括 WABT、WAVM 以提升智能合约效率。日前发布的 EOS VM 是针对区块链的 WASM 解释器,配合 JIT 编译器,能再加速 WASM 性能。我们持续探索 WASM 引擎的优化方案,以应对区块链技术不断发展而带来的新挑战。

多线程

就业务逻辑而言,智能合约通常是单线程的,一般情况下是一次处理一个命令。我们团队在数据流中寻找无风险的并发处理机会,探索多核加速,这样开发人员就不需要再次适配。

Nodeos 改进

我们团队发现了多个可提高平台运行效能的机会,包括最近宣布的 EOS VM、数据库接入、函数处理,以及其他的 EOSIO 平台和组件。为了最大化 nodeos 的可扩展性,团队将不断地分析每个系统,以实现最大优化。

先进的数据库技术

支持当前 nodeos 版本的数据库已更新,提升了吞吐量,同时提供按需回滚增量的能力。未来工作将集中于优化和集成性能优化的数据库解决方案,这些方案可同时管理多个非冲突指令,使开发人员在数据索引上更加灵活。

减少资源依赖

区块链开发人员面临的一个普遍障碍是大规模应用时,如何管理有限的资源。扩展区块链网络达到传统系统的性能需要更有效地使用资源,如 CPU、RAM 和带宽。我们团队一直在探索各种可能性,比如资源交换和软件层的解决方案,来减少资源负载和共享资源。

出块:横向扩展

链间通讯机制

链间通讯仍然是 EOSIO 区块链的一个核心组成。通过链间通信(IBC)协议实现多链互通,达到更高的交易速度。我们团队正在研发链间通讯机制的配置,为应用方提供更强的可扩展性。我们正在探索的一种方法是通过将多链的不同组件通过程序化的 IBC 协议实现通讯。另一种扩展策略是复制应用程序到不同链上,以管理用户请求的溢出。还有一种可能的方案是让两个或多个跨链应用程序相互通信,以便处理进程负载。我们将继续研究和发现其他方案,以实现跨链的兼容性,提高处理速度。

智能合约并行执行

单线程智能合约需要一个持续维护的全局状态,这可能导致执行受限和集中的资源使用。为了规避这种方式带来的问题,我们正在探索先进的内存管理技术,这种技术将扩展多线程,以支持交易过程的完成,而不需要过多的跨链通信。我们相信,这种技术可扩展到跨链多线程运营的节点程序中。

抽象层

为了提供无缝的前端跨链体验,我们也在研究如何让开发者更轻松的创建多链交互应用,不需要开发人员处理一系列集成,而是通过抽象层简化来进行后端集成。

可拓展的数据接入

验证交易的增加导致区块链不断增长,查询和读取历史及状态数据被证明是一个越来越大的挑战。为应对这个挑战,我们正在研究一系列的历史工具。WASM-QL 采用主从式网络架构来设计和执行 WASM 中的查询。这种实现模式允许智能合约的开发者使用与他们创建合约的相同工具来设计和编写查询代码,而且主从式架构可以最小化客户端与服务器之间的命令路径。这种系统一旦启用就可以在任何给定块高度时监测历史状态。此外,系统中的复制从 nodeos 降级为低密度内存的查询,这将更有利于可拓扩展性。

EOSIO 规格存储库

和社区共同努力,一起构建稳定、高效、可扩展的 EOSIO 区块链软件,我们将继续提供支持和资源。我们正在完善 EOSIO 战略愿景的各个方面。在这个关键阶段,研究人员、应用程序开发人员和社区其他成员提供给我们的反馈将被重视且可影响 EOSIO 的开发方向。这方面由 EOSIO Labs™ 发起的规格存储库(Specification Repository)牵头,旨在促进我们生态中利益相关者间的协同作用。如果有兴趣参与其中,请查看草拟的规格,并在 GitHub 上直接提供反馈,我们将在 EOSIO 中实现这些功能。


免责声明:EOSwriter 不为本页面内容或产品背书,我们尽全力为读者提供所能获得的重要信息。在做与本文内容相关的决策前,建议读者进行完整的独立研究分析,并为自己的决策负完全的责任。在此声明,本文非投资建议。