Skip to content

Latest commit

 

History

History
257 lines (178 loc) · 11.3 KB

ChangeLog.md

File metadata and controls

257 lines (178 loc) · 11.3 KB

3.0.0

(2022-08-24)

新架构

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版本,需要做数据迁移。

推荐版本 最低版本 说明
控制台 3.0.0 3.0.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

3.0.0-rc4

(2022-06-30)

新增

  • 实现Max版本FISCO-BCOS, 存储采用分布式存储TiKV,执行模块独立成服务,存储和执行均可横向扩展,且支持自动化主备恢复,可支撑海量交易上链场景
  • 从数据到协议层全面设计并实现兼容性框架,可保证协议和数据的安全升级
  • 支持CRUD合约接口,简化区块链应用开发门槛
  • 支持群环签名合约接口,丰富链上隐私计算能力
  • 支持合约生命周期管理功能,包括合约冻结、解冻
  • 支持数据落盘加密
  • 基于mtail + prometheus + grafana + ansiable实现区块链系统监控

更改

  • 引入KeyPage,优化读存储性能
  • 基于Rip协议原理,实现网络转发功能,提升网络鲁棒性
  • 支持linux aarch64平台
  • 更新权限治理合约,将节点角色管理、系统配置修改、合约生命周期管理等功能纳入到治理框架
  • 重构权限治理合约,计算逻辑可升级
  • 优化DMC执行框架的性能
  • 优化RPC和P2P的网络性能
  • 优化Pro版FISCO-BCOS建链脚本,支持以机构维度配置RPC、Gateway、BcosNodeService等服务

修复

兼容性

3.0.0-rc4版本与3.0.0-rc3版本数据和协议不兼容,Solidity/WBC-Liquid合约源码兼容。如果要从3.0.0-rc3版本升级到3.0.0-rc4版本,需要做数据迁移。

推荐版本 最低版本 说明
控制台 3.0.0-rc4 3.0.0-rc4
Java SDK 3.0.0-rc4 3.0.0-rc4
CPP SDK 3.0.0-rc4 3.0.0-rc4
WeBASE 暂时不支持(预计lab-rc4版本支持) 暂时不支持(预计lab-rc4版本支持)
Solidity 最高支持 solidity 0.8.11.0 0.6.10
Liquid 1.0.0-rc3 1.0.0-rc2

3.0.0-rc3

(2022-03-31)

新增

  • 支持Solidity合约并行冲突字段分析
  • 将密码学、交易编解码等相关逻辑整合到bcos-cpp-sdk中,并封装成通用的C接口
  • WASM虚拟机支持合约调用合约
  • 新增bcos-wasm替代Hera
  • BFS支持软链接功能
  • 支持通过setSystemConfig系统合约的tx_gas_limit关键字动态修改交易执行的gas限制
  • 部署合约存储合约ABI

更改

  • 升级EVM虚拟机到最新,支持Solidity 0.8
  • 机构层面优化网络广播,减少机构间外网带宽占用
  • 支持国密加速库,国密签名和验签性能提升5-10倍
  • EVM节点支持BFS,使用BFS替代CNS
  • DAG框架统一支持Solidity和WBC-Liquid

修复

兼容性

3.0.0-rc3版本与3.0.0-rc2版本数据和协议不兼容,Solidity/WBC-Liquid合约源码兼容。如果要从3.0.0-rc2版本升级到3.0.0-rc3版本,需要做数据迁移。

推荐版本 最低版本 说明
控制台 3.0.0-rc3 3.0.0-rc3
Java SDK 3.0.0-rc3 3.0.0-rc3
CPP SDK 3.0.0-rc3 3.0.0-rc3
WeBASE 暂时不支持(预计lab-rc3版本支持) 暂时不支持(预计lab-rc2版本支持)
Solidity 最高支持 solidity 0.8.11.0 0.6.10
Liquid 1.0.0-rc3 1.0.0-rc2

3.0.0-rc2

(2022-02-23)

更改

  • 优化代码仓库管理复杂度,将多个子仓库集中到FISCO BCOS统一管理
  • 交易由Base64编码修改为十六进制编码
  • 升级bcos-boostsslbcos-utilities依赖到最新版本
  • 修改bytesN类型数据的Scale编解码
  • 优化交易处理流程,避免交易多次重复验签导致的性能损耗
  • 优化事件推送模块的块高获取方法

修复

  • 修复scheduler调度交易过程中导致的内存泄露
  • 修复DMC+DAG调度过程中执行不一致的问题
  • 修复Issue 2132
  • 修复Issue 2124
  • 修复部分场景新节点入网没有触发快速视图切换,导致节点数满足(2*f+1)却共识异常的问题
  • 修复部分变量访问线程不安全导致节点崩溃的问题
  • 修复AMOP订阅多个topics失败的问题

兼容性

3.0.0-rc2版本与3.0.0-rc1版本数据和协议不兼容,Solidity/WBC-Liquid合约源码兼容。如果要从3.0.0-rc1版本升级到3.0.0-rc2版本,需要做数据迁移。

推荐版本 最低版本 说明
控制台 3.0.0-rc2 3.0.0-rc2
Java SDK 3.0.0-rc2 3.0.0-rc2
CPP SDK 3.0.0-rc2 3.0.0-rc2
WeBASE 暂时不支持(预计lab-rc2版本支持) 暂时不支持(预计lab-rc2版本支持)
Solidity 最高支持 solidity 0.6.10 0.6.10
Liquid 1.0.0-rc2 1.0.0-rc2

3.0.0-rc1

(2021-12-09)

新增

微服务架构

  • 提供通用的区块链接入规范。
  • 提供管理平台,用户可以一键部署、扩容、获得接口粒度的监控信息。

确定性多合约并行

  • 易用:区块链底层自动并行,无需使用者预先提供冲突字段。
  • 高效:区块内的交易不重复执行,没有预执行或预分析的流程。
  • 通用:无论 EVM、WASM、Precompiled 或其它合约,都能使用此方案。

区块链文件系统

  • 引入文件系统概念来组织链上资源,用户可以像浏览文件一样浏览链上资源。
  • 基于区块链文件系统实现管理功能,如分区、权限等,更直观。

流水线PBFT共识

  • 交易排序与交易执行相互独立,实现流水线架构,提升资源利用率。
  • 支持批量共识,对区间内区块并行共识处理,提升性能。
  • 支持单个共识Leader连续出块,提升性能。

WBC-Liquid

  • 集成WASM运行环境,支持Liquid智能合约。
  • Liquid智能合约支持智能分析冲突字段,自动开启DAG。

修复

兼容性

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

推荐版本 最低版本 说明
控制台 3.0.0-rc1 3.0.0-rc1
Java SDK 3.0.0-rc1 3.0.0-rc1
CPP SDK 3.0.0-rc1 3.0.0-rc1
WeBASE lab-rc1 lab-rc1
Solidity 最高支持 solidity 0.6.10 0.6.10
Liquid 1.0.0-rc2 1.0.0-rc2