v3.0.0

v2.x升级到v3.0.0

  • 全面升级 :参考 搭建第一个区块链网络 搭建新链,重新向新节点提交所有历史交易,升级后节点包含v3.0.0-rc3新特性

  • v3.0.0与v3.0.0-rc*不兼容,从本版本开始进行版本间兼容性支持

  • v3.0.0 Release Note

新架构

Air / Pro / Max :满足不同的部署场景

  • Air:传统的区块链架构,所有功能在一个区块链节点中(all-in-one),满足开发者和简单场景的部署需求

  • Pro:网关 + RPC + 区块链节点,满足机构内外部环境隔离部署需求

  • Max:网关 + RPC + 区块链节点(主备) + 多个交易执行器,满足追求高可用和极致的性能的需求

新机制

流程:流水线共识

以流水线的方式生成区块,提升性能

  • 将区块生成过程拆分为四个阶段:打包,共识,执行,落盘

  • 连续的区块在执行时以流水线的方式走过四个阶段(103在打包,102在共识,101在执行,100在落盘)

  • 连续出块时,性能趋近于流水线中执行时间最长阶段的性能

执行:确定性多合约并行

实现合约间交易的并行执行与调度的机制

  • 高效:不同合约的交易可并行执行,提高交易处理效率

  • 易用:对开发者透明,自动进行交易并行执行与冲突处理

  • 通用:支持EVM、WASM、Precompiled 或其它合约

存储:KeyPage

参考内存页的缓存机制实现高效的区块链存储

  • 将key-value组织成页的方式存储

  • 提升访存局部性,降低存储空间占用

继承与升级

  • DAG并行执行:不再依赖基于并行编程框架,可根据solidity代码自动生成冲突参数,实现合约内交易的并行执行

  • PBFT共识算法:立即一致的共识算法,实现交易秒级确认

  • 更多请参考在线文档

新功能

区块链文件系统

用命令行管理区块链资源,如合约,表等

  • 命令:pwd, cd, ls, tree, mkdir, ln

  • 功能:将合约地址与路径绑定,即可用路径调用合约

权限治理

开启后,对区块链的设置需进行多方投票允许

  • 角色:治理者、管理员、用户

  • 被控制的操作:部署合约、合约接口调用、系统参数设置等

WBC-Liquid:WeBankBlockchain-Liquid(简称WBC-Liquid)

不仅支持Soldity写合约,也支持用Rust写合约

  • Liquid是基于Rust语言的智能合约编程语言

  • 集成WASM运行环境,支持WBC-Liquid智能合约。

  • WBC-Liquid智能合约支持智能分析冲突字段,自动开启DAG。

继承与升级

  • Solidity:目前已支持至0.8.11版本

  • CRUD:采用表结构存储数据,对业务开发更友好,3.0中封装了更易用的接口

  • AMOP:链上信使协议,借助区块链的P2P网络实现信息传输,实现接入区块链的应用间的数据通信

  • 落盘加密:区块链节点的私钥和数据加密存储于物理硬盘中,物理硬件丢失也无法解密

  • 密码算法:内置群环签名等密码算法,可实现各种安全多方计算场景

  • 更多请参考在线文档

兼容性

3.0版本与以往各版本数据和协议不兼容,Solidity合约源码兼容。如果要从2.0版本升级到3.0版本,需要做数据迁移。

推荐版本 最低版本 说明
Java SDK 3.0.0 3.0.0
CPP SDK 3.0.0 3.0.0
Console 3.0.0 3.0.0
Solidity 0.8.11 最低 0.4.25,最高 0.8.11 需根据合约版本下载编译器(控制台)
WBC-Liquid 1.0.0-rc3 1.0.0-rc3