1. BTC-比特币:¥66463.48(-3.28%)
  2. ETH-以太坊:¥1804.35(-5.17%)
  3. EOS-柚子:¥28.5801(-3.14%)
  4. GBI:11213.94
即将开始的项目:21 进行中的项目:52

VM 2.0:更快的 BOSCore

来源:BOSCore

作者: ZHIBI.COM

发稿时间: 2020-02-12 20:2:38

随着 EOSIO 技术的不断发展,在即将到来的 EOSIO 2.0中,VM 2.0是一个十分重要的技术升级。 根据项目描述,EOSIO VM 2.0是一个低延迟(启用缓存)、高性能(运行时优化、并行计算设计)以及可扩展(组件化)的 WebAssembly 执行引擎,从测试数据来看可将当前链上执行速度提升10倍左右。

BOSCore 作为全球首个实现3秒极速共识的DPoS公链,VM 2.0 的集成将会让 BOSCore 的性能和 TPS 进一步提升。

这篇文章将会针对 VM 2.0 进行功能介绍,并针对 BOSCore 的升级方案进行阐述,一起来看下 BOSCore 为此做了哪些准备,怎样做到像极速共识一样完成无缝升级。

最近几个月,EOSIO 已经发布了 1.8 和 2.0 两个重要版本,其中每次大版本的升级,对于社区节点尤其是提供历史数据服务的团队来说都是十分痛苦,全量数据的重放往往意味着半个月的恢复时间,而且恢复时间将会越来越长,这些让人挠头的升级方法在 BOSCore 是不存在的。

BOSCore 社区开发团队将会以高可用、平滑过渡的原则来制定升级方案,避免由于功能迭代带来的服务时间损失。此外,BOSCore 将会根据自身需要来选择性的合并 EOSIO 未来的功能,不再进行大版本的直接合并,这既是对 BOSCore 社区技术团队的挑战也是自信。

VM 可以看成是区块链运行智能合约的容器,2.0版本在实现一些区块链智能合约执行场景的调优之外,主要是利用 LLVM 的一些特性进一步优化,从结构和设计上讲它与 EOSIO 主体码是分离的,但是相应基础库的依赖需要同时升级。

VM 2.0 主要技术特点:

  • 极快的执行力
  • 极快的解析/加载
  • 高效的时间限制执行
  • 确定性执行
  • C++/ Header Only集成
  • 高度可扩展的设计

LLVM 作为一款优秀的编译器后端实现,由一系列模块化、可重用的编译工具链组成。它提供了一种代码良好的中间表示(IR, Intermediate Representation),LLVM 实现上可以作为多种语言的后端,还可以提供与语言无关的优化和针对多种 CPU 的代码生成功能。

LLVM 项目结构图

LLVM 流程图

通晓了新版 VM 的主要变动,BOSCore 社区技术团队将会规划四个左右的版本来完成此次版本升级,步骤如下:

  • 升级 Boost 库版本,从1.6升级到1.7
  • 做基础数据的迁移准备
  • 针对Snapshot机制进行兼容处理
  • 部署 eos-vm、eos-vm-jit、eos-vm-oc 合并版本

整个升级过程都会进行测试网的验证,确保升级功能正常,让我们期待更快的 BOSCore。