55 Star 302 Fork 0

FISCO-BCOS / FISCO-BCOS

2022-11-24 19:37
7639463 jimmyshi22 1691113978 JimmyShi22

3.1.0

获取更多信息,请阅读FISCO BCOS 3.x文档

新增

  • 账户冻结、解冻、废止功能
  • 网关分布式限流功能
  • 网络压缩功能
  • 共识对时功能
  • 合约二进制与ABI存储优化
  • 适配EVM的delegatecall,extcodeHash,blockHash等接口
  • BFS新增查询分页功能

更改

  • DBHash 计算逻辑更新,提升校验稳定性
  • chain配置项从config.ini中挪出,修改为在config.genesis创世块中配置
  • BFS 目录表结构性能优化

修复

兼容性

  • 历史版本升级

    需要升级的链的“数据兼容版本号(compatibility_version)”为如下版本时:

    • 3.0.x:支持通过替换二进制进行灰度升级,若需使用当前版本的新特性,需在所有节点二进制替换完成后用控制台将链版本升级为当前版本
    • 3.0-rc x:数据不兼容,无法升级,可考虑逐步将业务迁移至3.x正式版
    • 2.x:数据不兼容,2.x版本仍持续维护,可考虑升级为2.x的最新版本
  • 组件兼容性

推荐版本 最低版本 说明
Console 3.1.0 3.0.0
Java SDK 3.1.0 3.0.0
CPP SDK 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

**Please read our [FISCO BCOS 3.x documentation](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/).**

Added

  • The Management (freeze, unfreeze and abolish) of Account
  • Rate limiting of distributed gateway
  • Netwrok package compressing
  • Consensus of sealing time
  • Code binary and ABI only has one copy in storage
  • Support delegatecall, extcodeHash, blockHash in EVM
  • Paging in BFS query

Changed

  • Update DBHash caculating logic for more stable
  • Move [chain] config from config.ini to config.genesis
  • Update BFS table struct for better performance

Fixed

Compatibility

  • Update from history version

    You can check your chain's compatibility_version by console, If the version is:

    • 3.0.x:Support update by replacing binary one by one. If you need to use new feature, please update the chain's compatibility_version by console
    • 3.0-rc x:Could not update to this version. You can gradually migrate your application to another chain of latest version.
    • 2.x:Is not compatible with 3.x. You can update to 2.x latest version. FISCO BCOS 2.x is always in maintenance.
  • Other application

Recommended version Minimum version Description
Console 3.1.0 3.0.0
Java SDK 3.1.0 3.0.0
CPP SDK 3.0.0 3.0.0
Solidity 0.8.11 0.4.25 to 0.8.11 Please download console according with solidity version if you need to compile your smart contract.
WBC-Liquid 1.0.0-rc3 1.0.0-rc3
Last committed message: cpp sdk-on (#3159)
2022-09-01 16:39
7639463 jimmyshi22 1691113978 JimmyShi22

获取更多信息,请阅读FISCO BCOS 3.x文档

新架构

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

更多,请参考版本与兼容性描述


Please read our FISCO BCOS 3.x documentation.

New Architecture

Air / Pro / Max :Support diffrent deployment scenarios.

  • Air:Traditional blockchain architecture, all functions are in one blockchain node (all-in-one) to meet the deployment needs of developers and simple scenarios.
  • Pro:Gateway + RPC + blockchain node. To meet the isolation deployment requirements of internal and external environments of the organization.
  • Max:Gateway + RPC + blockchain nodes (active/standby) + multiple transaction executors. To meet the needs of high availability and extreme performance

New Mechanism

Pipeline Consensus

Generate blocks in a pipelined manner to improve performance.

  • Split the block generation process into four stages: seal, consensus, execute, and commit.
  • During block generation, all blocks pass through four stages in a pipelined manner. (103 for sealing, 102 for consensus, 101 for execution, and 100 for commitement)
  • When blocks are continuously generated, the performance approaches the performance of the longest execution stage in the pipeline.

DMC: Deterministic Multi-Contract Parallelism

A mechanism for parallel execution and scheduling of transactions between contracts.

  • Efficient: Transactions of different contracts can be executed in parallel.
  • Ease of use: Transparent to developers, automatic parallel execution of transactions and handling conflict.
  • Generic: Support EVM, WASM, Precompiled and other contracts.

KeyPage

Like the cache mechanism of memory pages to achieve more efficiency of blockchain storage.

  • Organize key-value into pages to commit.
  • Improve storage access locality and reduce storage space usage.

Inheritance and Upgrade

  • DAG parallel execution
    • No longer rely on the parallel programming framework, can automatically generate conflict parameters according to the solidity code.
  • PBFT Consensus Algorithm: An instantly consensus algorithm which can reach consensus in a second.
  • For more information, please refer to our online documentation.

New Feature

BFS: Blockchain File System

Manage blockchain resources such as contracts, tables, etc. from the command line

  • Commands: pwd, cd, ls, tree, mkdir, ln
  • Usage: Bind the contract address to the path, so can use the path to call the contract.

Authority Governance

If turn on, multi-party voting is required during the settings of the blockchain

  • Roles: Manager, Administrator, User.
  • Controlled operations: deploying contracts, calling smart contract, setting system parameters, etc.

WBC-Liquid:WeBankBlockchain-Liquid

Not only supports writing contracts in Soldity, but also writing contracts in Rust

  • Liquid is a smart contract programming language based on Rust language
  • FISCO BCOS integrates the WASM runtime environment and support WBC-Liquid smart contracts.
  • The WBC-Liquid smart contract supports intelligent analysis of conflict fields and automatically execute as DAG manner.

Inheritance and Upgrade

  • Solidity: Currently supported up to version 0.8.11.
  • CRUD: Use table structure to store data, which is more friendly to application development. We optimize the interface for easier-to-use in FISCO BCOS 3.0.
  • AMOP: A off-chain message passing protocol, which can transfer off-chain message using P2P network of the blockchain nodes.
  • Commit Encryption: The private key and data of the blockchain node are encrypted before storing in the physical hard disk, and cannot be decrypted even if the physical hardware gets lost.
  • Cryptographic Algorithm: built-in group ring signature precompiled contract and other cryptographic algorithms, which can meet many security computing scenarios.
  • For more information, please refer to the online documentation

Compatibility

The 3.0.0 version is incompatible with all older version's data and protocol, but compatible with the Solidity/WBC-Liquid contract source code. If you want to upgrade from version older version to 3.0.0, you need to do data migration.

Recommended version Minimum version Description
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 to 0.8.11 Please download console according with solidity version if you need to compile your smart contract.
WBC-Liquid 1.0.0-rc3 1.0.0-rc3
Last committed message: fix no callback problems (#2812)
Preview version
2022-07-11 15:19
cyjseagull

Please read the FISCO BCOS 3.x documentation.

Added

  • Implement the Max version of FISCO-BCOS, the storage adopts distributed storage TiKV, the execution module is independent into a service, the storage and execution can be scaled horizontally, and it supports automatic master and backup recovery, which can support massive transaction on-chain scenarios
  • Comprehensive design and implementation of compatibility framework from data to protocol layer to ensure safe upgrade of protocols and data
  • Support CRUD contract interface, simplify the threshold of blockchain application development
  • Support group/ring signature contract interface, enrich on-chain privacy computing capabilities
  • Support contract life cycle management, including contract freezing and thawing
  • Support storage encryption
  • Blockchain system monitoring based on mtail + prometheus + grafana + ansiable

Changed

  • Introduce KeyPage to optimize read storage performance
  • Based on the principle of Rip protocol, realize network forwarding function and improve network robustness
  • Support linux aarch64 platform
  • Update the chain governance contract, and incorporate functions such as node management, system configuration modification, and contract life cycle management into the governance framework
  • Reconstructing the chain governance contract, the calculation logic can be upgraded
  • Optimize the performance of the DMC execution framework
  • Optimize network performance for RPC and P2P
  • Optimized the Pro version of the FISCO-BCOS chain building script to support the configuration of RPC, Gateway, BcosNodeService and other services in an institutional dimension

Fixed

Compatibility

The 3.0.0-rc4 version is incompatible with the 3.0.0-rc3 version data and protocol, and the Solidity/WBC-Liquid contract source code is compatible. If you want to upgrade from version 3.0.0-rc3 to version 3.0.0-rc4, you need to do data migration.

Recommended version Minimum version Description
Console 3.0.0-rc4 3.0.0-r4
Java SDK 3.0.0-rc4 3.0.0-rc4
CPP SDK 3.0.0-rc4 3.0.0-rc4
WeBASE temporarily not supported (expected to be supported by lab-rc4 version) temporarily not supported (expected to be supported by lab-rc4 version)
Solidity Highest support solidity 0.8.11 0.6.10
Liquid 1.0.0-rc3 1.0.0-rc2

请阅读FISCO BCOS 3.x文档

新增

  • 实现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

更多,请参考版本与兼容性描述





Last committed message: fix release.yml (#2615)
2021-08-26 11:53
MaggieNgWu

Please read the FISCO BCOS documentation.

Add

  • Add functions to use hardware secure module(HSM).
    • Support HSMs like crypto PCI card or crypto machine, which satisfy 《GMT0018-2012密码设备应用接口规范》 standard, to make SM2, SM3, SM4 calculation.
    • Support use HSM internal key to sign transaction, to verify signature and to do disk encryption.
  • Add Precompiled contract with functions of sm3, keccak256Hash, sm2Verify, curve25519VRFVerify.

Fix

  • Fix issue 1951, solve the problem of node core dump after receive invalid P2P package.
  • Fix consensus module dead lock problem in some extreme cases.
  • Fix problem of decode wrong agency name from certificates.(issue 1894).
  • Fix LevelDB build failed problem on ARM machine.

Compatibility

The old version can directly replace the program upgrade

Recommended version Minimum version Description
console 2.8.0 1.0.4
Java SDK 2.8.0 or 2.8.0-GMT0018 2.6.1
WebSDK 2.6.3 2.0.4
generator 1.7.2 1.1.0 To use latest generator, please clone from master branch of generator repo.
FISCO BCOS browser 2.2.2 2.0.0-rc2
Solidity up to 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

请阅读FISCO BCOS文档

新增

  • 新增使用硬件安全模块进行密码运算的功能。
    • 支持使用符合国密《GMT0018-2012密码设备应用接口规范》标准的密码机/密码卡进行SM2、SM3、SM4等算法运算;支持使用密码机内部密钥,用硬件保障私钥安全。
    • 支持使用密码卡/密码机进行共识签名、交易验签、落盘加密。
  • 新增哈希计算、签名验证、VRF proof验证相关的Precompiled合约,包括sm3, keccak256Hash, sm2Verify, curve25519VRFVerify

修复

  • 修复issue 1951,解决节点接收非法P2P消息包异常崩溃的问题。
  • 修复在极端异常情况下,共识模块死锁的问题。
  • 修复节点通过证书解析机构名错误的问题(issue 1894)。
  • 修复在ARM机器上LevelDB编译失败的问题。

兼容性

FISCO BCOS 2.8.0可编译出两个版本,普通版(2.8.0),硬件加密版(2.8.0-hsm),这两个版本均与2.7.0等以前的版本兼容。

2.8.0和2.8.0-hsm向前兼容,旧版本可以直接替换程序升级

推荐版本 最低版本 说明
控制台 2.8.0 1.0.4
Java SDK 2.8.0 或 2.8.0-GMT0018 2.6.1
Web3SDK 2.6.0 2.0.4
generator 1.7.0 1.1.0 搭建新链需要使用该版本
浏览器 2.0.2 2.0.0-rc2
Solidity 最高支持 solidity 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

更多,请参考版本与兼容性描述




Last committed message: update boost versiont to 1.6.8 (#1983)
2021-02-01 19:30
cyjseagull

Please read the FISCO BCOS documentation.

Changed

  • Improved the fisco-sync tool to pull snapshot data from Data-Stash when a new node joins a group

Fixed

  • Fixed a problem with system table missing hash_2_blockheader table information in MySQL mode
  • Fixed data conversion issue when node pulls data from Data-Stash in scalable mode

Compatibility

The old version can directly replace the program upgrade

Recommended version Minimum version Description
console 2.7.0 1.0.4
Java SDK 2.7.0 2.6.1
WebSDK 2.6.0 2.0.4
generator 1.7.0 1.1.0 To use latest generator, please clone from master branch of generator repo.
FISCO BCOS browser 2.0.2 2.0.0-rc2
Solidity up to 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

请阅读FISCO BCOS文档

更改

  • 完善fisco-sync工具,实现新节点加入群组时从数据仓库拉取指定块高快照数据的功能

修复

  • 修复mysql存储模式下,系统表缺少hash_2_blockHeader表信息的问题
  • 修复scalable存储模式下,从数据仓库拉取数据后的格式转换问题

兼容性

向前兼容,旧版本可以直接替换程序升级

推荐版本 最低版本 说明
控制台 2.7.0 1.0.4
Java SDK 2.7.0 2.6.1
WebSDK 2.6.0 2.0.4
generator 1.7.0 1.1.0 搭建新链需要使用该版本
浏览器 2.0.2 2.0.0-rc2
Solidity 最高支持 solidity 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

更多,请参考版本与兼容性描述




2021-02-01 19:28
cyjseagull

Please read the FISCO BCOS documentation.

Added

  • Contract life cycle management provides revokeManager function
  • Added an interface for querying the voting status of committee permissions
  • Support cancel event subscription
  • Add batch return receipt methods getBatchReceiptsByBlockNumberAndRange and getBatchReceiptsByBlockHashAndRange
  • Add the getNodeInfo interface to return the topic information subscribed by the node
  • Table contract adds EQ condition query of address type

Changed

  • MySQL storage mode supports MySQL 8.0
  • Refactor the RPC interface related to transactions and blocks, and return all the field contents of transactions and blocks
  • The transaction push receipt contains the error message of the transaction execution result
  • P2P module adds logic to read and write idle check

Fixed

  • Solve the problem of compiling errors in gcc9 and clang12
  • Precompiled contract error information is written into the receipt, giving a clearer error message
  • Optimized disk encryption to solve the problem of large storage space occupation in disk encryption mode
  • Fix the problem of node downtime caused by CachedStorage cleaning cache under MacOS system
  • Fix the problem that the CNS contract name is too long in MySQL storage mode, which causes abnormal block submission

Compatibility

The old version can directly replace the program upgrade

Recommended version Minimum version Description
console 2.7.0 1.0.4
Java SDK 2.7.0 2.6.1
WebSDK 2.6.0 2.0.4
generator 1.7.0 1.1.0 To use latest generator, please clone from master branch of generator repo.
FISCO BCOS browser 2.0.2 2.0.0-rc2
Solidity up to 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

请阅读FISCO BCOS文档

新增

  • 合约生命周期管理提供revokeManager功能
  • 新增委员权限投票的查询接口
  • 支持取消事件订阅
  • 添加批量返回回执的方法getBatchReceiptsByBlockNumberAndRange和getBatchReceiptsByBlockHashAndRange
  • 添加getNodeInfo接口,返回节点订阅的topics信息
  • Table合约增加address类型的EQ condition查询

更改

  • MySQL存储模式支持MySQL 8.0
  • 重构交易和区块相关的RPC接口,返回交易和区块的所有字段内容
  • 交易推送的回执中带有交易执行结果的报错信息
  • P2P模块添加读写idle检查的逻辑

修复

  • 解决gcc9和clang12编译报错的问题
  • Precompiled合约报错信息写入到回执中,给出更明确的报错提示
  • 优化落盘加密,解决落盘加密模式下,存储空间占用大的问题
  • 修复MacOS系统下CachedStorage清理缓存导致节点宕机的问题
  • 修复MySQL存储模式下,CNS合约名过长导致区块提交异常的问题

兼容性

向前兼容,旧版本可以直接替换程序升级

推荐版本 最低版本 说明
控制台 2.7.0 1.0.4
Java SDK 2.7.0 2.6.1
WebSDK 2.6.0 2.0.4
generator 1.7.0 1.1.0 搭建新链需要使用该版本
浏览器 2.0.2 2.0.0-rc2
Solidity 最高支持 solidity 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

更多,请参考版本与兼容性描述




Last committed message: return hexed block number
2021-02-01 19:16
cyjseagull

Please read the FISCO BCOS documentation.

Fixed

  • Fix the memory leak of the OSSCA-approved environment

Compatibility

The old version can directly replace the program upgrade

Recommended version Minimum version Description
console 2.7.0 1.0.4
Java SDK 2.7.1 2.6.1
WebSDK 2.6.3 2.0.4
generator 1.7.2 1.1.0 To use latest generator, please clone from master branch of generator repo.
FISCO BCOS browser 2.2.2 2.0.0-rc2
Solidity up to 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

请阅读FISCO BCOS文档

修复

  • 修复国密环境内存泄露问题

兼容性

向前兼容,旧版本可以直接替换程序升级

推荐版本 最低版本 说明
控制台 2.7.0 1.0.4
Java SDK 2.7.1 2.6.1
WebSDK 2.6.3 2.0.4
generator 1.7.2 1.1.0 搭建新链需要使用该版本
浏览器 2.2.2 2.0.0-rc2
Solidity 最高支持 solidity 0.6.10 0.4.11
amdb-proxy 2.3.0 2.0.2

更多,请参考版本与兼容性描述




Last committed message: update build_chain tips (#1888)
2020-08-24 09:12
bxq2011hust

Please read the FISCO BCOS documentation.

Added

  • Added support for Kylin operating system V10 (Kunpeng-920/ARM aarch64)
  • Added support for Solidity 0.6
  • Added time alignment mechanism between nodes
  • Added support for IPv6
  • Added group SDK whitelist mechanism, which is disabled by default
  • Added getBlockHeaderByNumber/getBlockHeaderByHash to get block header
  • Added support for configuring block execution timeout time

Changed

  • The rPBFT consensus algorithm introduces the VRF random number algorithm to further ensure the security of the consensus algorithm
  • The evm engine aleth-interpreter is replaced by evmone
  • Upgrade the EVMC interface version to 7.3.0
  • Source code compilation requires GCC version not less than 5.4.0
  • Support AMOP message routing to the node itself
  • In MySQL storage mode, block and other data use binary format and enable compression

Fixed

  • Fixed a minor memory leak caused by the transaction broadcast tag cache not being cleaned up
  • Fixed the issue that transactions in the transaction pool of non-leader nodes cannot be packaged under the raft consensus
  • In MySQL storage mode, when the select interface of TablePrecompiled is called in the Solidity contract writing interface, the occasional gas calculation inconsistency problem occurs
  • The wrong certificate generated by the user causes coredump problems
  • Using assembly in Solidity to call the Ethereum precompiled contract 0x1-0x9, return success(value:0) for wrong input

Compatibility

The old version can directly replace the program upgrade

Recommended version Minimum version Description
console 1.1.0 1.0.4
SDK 2.6.0 2.0.4
generator 1.6.0 1.2.0 To use latest generator, please clone from master branch of generator repo.
FISCO BCOS browser 2.0.2 2.0.0-rc2
Solidity up to 0.6.10 0.4.11

请阅读FISCO BCOS文档

新增

  • 新增对Solidity 0.6的支持
  • 新增对国产麒麟操作系统V10(Kunpeng-920/ARM aarch64)的支持
  • 新增节点间时间对齐机制
  • 新增对IPv6的支持
  • 新增群组SDK白名单机制,默认关闭
  • 新增获取区块头的接口getBlockHeaderByNumber/getBlockHeaderByHash
  • 新增支持配置区块执行超时时间

更改

  • rPBFT共识算法引入VRF随机数算法,进一步保证共识算法的安全性
  • evm引擎由aleth-interpreter替换为evmone
  • 升级EVMC接口版本为7.3.0
  • 源码编译要求GCC版本不小于5.4.0
  • 支持AMOP消息路由到节点自身
  • MySQL存储模式下区块等数据使用二进制存储并使用压缩

修复

  • 标记交易是否被广播过以及被广播到哪些节点的缓存没有清理干净,导致的轻微内存泄露的问题
  • 修复raft共识下,非leader节点交易池中的交易不能被打包的问题
  • 在MySQL存储模式下,Solidity合约写接口中调用Table的select接口时,偶现的Gas计算不一致问题
  • 用户自己生成的错误证书导致coredump问题
  • 在Solidity中使用汇编调用以太坊预编译合约0x1-0x9,对错误输入没有返回0的问题

兼容性

向前兼容,旧版本可以直接替换程序升级

推荐版本 最低版本 说明
控制台 1.1.0 1.0.4
SDK 2.6.0 2.0.4
generator 1.6.0 1.1.0 搭建新链需要使用该版本
浏览器 2.0.2 2.0.0-rc2
Solidity 最高支持 solidity 0.6.10 0.4.11

更多,请参考版本与兼容性描述




Last committed message: update build_chain.sh (#1743)
Preview version
2020-06-22 17:02
bxq2011hust

Please read the FISCO BCOS documentation.

Added

  • Add precompiled contract, address 0x5, implement modular exponential calculation.
  • Add precompiled contract, address 0x6, implement point addition (ADD) of elliptic curve alt_bn128.
  • Add precompiled contract, address 0x7, implement the scalar multiplication (MUL) of elliptic curve alt_bn128.
  • Add precompiled contract, address 0x8, implement a pairing function on a specific pairing-friendly elliptic curve for zkSNARK verification.
  • Add precompiled contract, address 0x9, implement blake2 hash function.
  • Add flow control to achieve configurable node output bandwidth and maximum QPS.
  • Add ChainGovernance precompiled contract, address 0x1008, to implement role-based authority management.
  • Add SDK connection node supports OSCCA-approved SSL, can be configured whether to enable.
  • Add account management to freeze and unfreeze accounts.

Changed

  • In MySQL storage mode, the field type of the contract table is changed to mediumblob.
  • The OSCCA-approved cryptography is modified from the compile option to the configuration item.
  • Change the node to only accept the SDK connection of the same institution, can be configured whether to enable.
  • Paillier homomorphic encryption and group signature are enabled by default.
  • The build_chain script uses the private key as the root certificate and institution certificate of secp256k1.
  • The storage of PBFTBackup was changed from LevelDB to RocksDB.
  • Refactor the libdevcrypto module, optimize the code structure, and use TASSL to implement OSCCA-approved SSL and non-national TLS connections.
  • Optimize lock implementation of storage module openTable.
  • Optimize block data encoding to parallel.
  • Optimize the large object destructor to asynchronous.
  • Optimize the log output mechanism to reduce the impact of log output on performance.
  • Optimize the number of threads of MHD and transaction pool modules to reduce memory usage.
  • Optimize MySQL storage adapter implementation, optimized ZdbStorage code implementation.

Fixed

  • Fix an issue where the Entry was modified in the same block, and subsequent transactions query the Entry result error.
  • Fix the issue that transactions in the non-leader node transaction pool cannot be packaged under Raft consensus.
  • Fix a deadlock issue with CachedStorage.
  • Fix the problem of recovering from Binlog when Binlog is turned on in some extreme cases.
  • Fix an issue that Viewchange was rejected after a node restart under certain circumstances the view could not be restored quickly.

Compatibility

The old version can directly replace the program upgrade

Recommended version Minimum version Description
console 1.0.10 1.0.4
SDK 2.5.0 2.0.4
generator 1.5.0 1.2.0 To use latest generator, please clone from master branch of generator repo.
FISCO BCOS browser 2.0.2 2.0.0-rc2
Solidity up to 0.5.2 0.4.11

请阅读FISCO BCOS文档

新增

  • 新增预编译合约,地址0x5,实现模指数运算
  • 新增预编译合约,地址0x6,实现椭圆曲线alt_bn128的加法
  • 新增预编译合约,地址0x7,实现椭圆曲线alt_bn128的乘法
  • 新增预编译合约,地址0x8,实现椭圆曲线配对操作用于zkSNARK验证
  • 新增预编译合约,地址0x9,实现blake2哈希函数
  • 新增流控功能,实现可配置节点出带宽、最大QPS
  • 新增ChainGovernance预编译合约,地址0x1008,实现基于角色的权限管理
  • 新增SDK连接节点支持国密SSL,可配置是否启用
  • 新增账号管理可冻结解冻私钥对应的账号

更改

  • MySQL存储模式下,合约表的字段类型修改为mediumblob
  • 国密模式由编译选项修改为配置项
  • 更改节点只接受同一机构的SDK连接,可配置是否启用
  • 默认开启Paillier同态加密和群签名功能
  • build_chain脚本使用私钥为secp256k1的根证书和机构证书
  • PBFTBackup的存储由LevelDB修改为RocksDB
  • 重构libdevcrypto模块,优化代码结构,使用TASSL实现国密和非国密TLS连接
  • 优化存储模块openTable的锁实现
  • 优化区块数据编码为并行
  • 优化大对象析构耗时为异步
  • 优化日志输出机制,降低日志输出对性能的影响
  • 优化MHD和交易池模块的线程数,减少内存占用
  • 优化MySQL存储适配器实现,优化ZdbStorage的代码实现

修复

  • 修复同一个区块内修改Entry,后续交易查询该Entry结果出错的问题
  • 修复raft共识下,非leader节点交易池中的交易不能被打包的问题
  • 修复CachedStorage的一个死锁问题
  • 修复开启Binlog情况下,极端情况下,从Binlog恢复出错的问题
  • 修复特定情况下节点重启后Viewchange被拒,无法快速恢复视图的问题

兼容性

向前兼容,旧版本可以直接替换程序升级

推荐版本 最低版本 说明
控制台 1.0.10 1.0.4
SDK 2.5.0 2.0.4
generator 1.5.0 1.1.0 搭建新链需要使用该版本
浏览器 2.0.2 2.0.0-rc2
Solidity 最高支持 solidity 0.5.2 0.4.11

更多,请参考版本与兼容性描述

C++
1
https://gitee.com/FISCO-BCOS/FISCO-BCOS.git
git@gitee.com:FISCO-BCOS/FISCO-BCOS.git
FISCO-BCOS
FISCO-BCOS
FISCO-BCOS

Search

344bd9b3 5694891 D2dac590 5694891