From 2b56d98642701f9c96b6c5c9271a22d2d678602d Mon Sep 17 00:00:00 2001 From: monan <651932351@qq.com> Date: Tue, 14 May 2024 17:35:14 +0800 Subject: [PATCH] Add pipeline desc --- 3.x/zh_CN/docs/design/parallel/index.md | 4 +- 3.x/zh_CN/docs/design/parallel/pipeline.md | 57 +++++++++++ 3.x/zh_CN/docs/design/parallel/rwset.md | 2 - .../docs/introduction/change_log/3_8_0.md | 94 +++++++++++++++++++ .../change_log/feature_bugfix_list.md | 6 +- .../docs/introduction/change_log/index.rst | 22 +++++ 6 files changed, 180 insertions(+), 5 deletions(-) create mode 100644 3.x/zh_CN/docs/design/parallel/pipeline.md delete mode 100644 3.x/zh_CN/docs/design/parallel/rwset.md create mode 100644 3.x/zh_CN/docs/introduction/change_log/3_8_0.md diff --git a/3.x/zh_CN/docs/design/parallel/index.md b/3.x/zh_CN/docs/design/parallel/index.md index 9e68ea4a9..20d6f3040 100644 --- a/3.x/zh_CN/docs/design/parallel/index.md +++ b/3.x/zh_CN/docs/design/parallel/index.md @@ -6,7 +6,7 @@ FISCO BCOS为提升交易处理性能,进行了全方位的并行处理设计。按照**并行粒度**从细到粗的划分,其并行机制可分为: -* **交易**的并行:DAG交易并行、读写集并行 +* **交易**的并行:DAG交易并行、流水线并行 * **合约**的并行:DMC、块内分片 @@ -25,7 +25,7 @@ FISCO BCOS为提升交易处理性能,进行了全方位的并行处理设计 :maxdepth: 1 dag.md - rwset.md + pipeline.md DMC.md sharding.md group.md diff --git a/3.x/zh_CN/docs/design/parallel/pipeline.md b/3.x/zh_CN/docs/design/parallel/pipeline.md new file mode 100644 index 000000000..0ca8cdd79 --- /dev/null +++ b/3.x/zh_CN/docs/design/parallel/pipeline.md @@ -0,0 +1,57 @@ +# 读写集并行 + +## 介绍 + +FISCO BCOS的最新并行架构为流水线执行架构。 + +流水线架构的优势: +- 流水线架构的执行结果与串行执行结果一致,便于发现问题。 +- 流水线架构提升性能的同时无需特殊前置条件,其他并行方案有前置条件:DAG需要冲突字段信息、DMC执行结果与串行不一致。 +- 流水线架构的理论在计算机系统理论研究已经深入透彻,有诸多久经考验的优化措施,可直接应用到区块链。 + +FISCO BCOS支持两种流水线执行架构:标量流水线和超标量流水线,适合不同场景。 +- 标量流水线将交易拆分为三个步骤并行执行,无论何种场景,相比普通串行至少能提升20%的性能。 +- 超标量流水线会试图并行执行更多交易,性能提升幅度视交易读写数据的冲突量而定,冲突数量少时,相比普通串行能提升300%以上的性能,冲突数量多时,相比普通串行的性能更低。 + +## 使用条件 + +流水线执行器需要手工打开,加入流水线架构后,目前有5种执行模式: +- 标量流水线(config.ini,baseline_scheduler=true) +- 超标量流水线(config.ini,baseline_scheduler_parallel=true) +- 普通串行(config.genesis,is_serial=true) +- sharding模式(启用feature_sharding) +- 纯DMC模式(config.genesis,is_serial=false) + +其中模式1、2、3互相兼容,可以混跑,4、5与其它模式均不兼容。 + +流水线执行器的启用条件 +- 启用所有bugfix +- 节点架构为air +- 使用串行(config.genesis,is_serial=true)模式,不打开feature_sharding +- 使用evm虚拟机,非wasm + +满足这些条件,可启用流水线执行器,且可以与普通串行混合运行,如果不满足条件,节点将无法启动,并在stdout输出错误原因。 + +## 开启方法 + +### 启用标量流水线 + +节点配置文件config.ini,增加选项executor.baseline_scheduler + +``` +[executor] + baseline_scheduler=true +``` + +### 启用超标量流水线 + +节点配置文件config.ini,增加选项executor.baseline_scheduler_parallel + +开启此选项之前,请先确认设置了baseline_scheduler=true,否则选项无效 + +``` +[executor] + baseline_scheduler=true + baseline_scheduler_parallel=true +``` + diff --git a/3.x/zh_CN/docs/design/parallel/rwset.md b/3.x/zh_CN/docs/design/parallel/rwset.md deleted file mode 100644 index 95f0970d0..000000000 --- a/3.x/zh_CN/docs/design/parallel/rwset.md +++ /dev/null @@ -1,2 +0,0 @@ -# 读写集并行 -(该方案在开发中,将于3.4.0版本发布,敬请期待) diff --git a/3.x/zh_CN/docs/introduction/change_log/3_8_0.md b/3.x/zh_CN/docs/introduction/change_log/3_8_0.md new file mode 100644 index 000000000..89f1615ed --- /dev/null +++ b/3.x/zh_CN/docs/introduction/change_log/3_8_0.md @@ -0,0 +1,94 @@ +# v3.8.0 + +#### 新增 + +* 新增流水线执行模式 + +#### 修改 + +* 增加4个bugfix,详见feature list + +* 历史版本升级 + + 需要升级的链的“数据兼容版本号([compatibility_version](#id5))”为如下版本时: + + * 3.4.x、3.5.x,3.6.x、3.7.x:数据完全兼容当前版本,直接替换二进制即可完成升级 + * 3.3.x、3.2.x、3.1.x、3.0.x:支持通过替换二进制进行灰度升级,若需使用当前版本的新特性,需升级数据兼容版本号,操作见[文档](#id5) + * 3.0-rc x:数据不兼容,无法升级,可考虑逐步将业务迁移至3.x正式版 + * 2.x:数据不兼容,2.x版本仍持续维护,可考虑升级为2.x的最新版本 + + +* 开启实验功能 + + 效果:通过feature开关控制实验功能的开启 + + 操作:升级节点可执行程序后,通过控制台命令`setSystemConfigByKey 1` 开启对应实验功能,具体操作见文档升级方法部分 + + 注意事项: + * feature操作不可逆,打开后不可关闭 + * 需确认所有可执行程序版本相同后,再进行feature开启操作 + +| | Feature 名 | 默认状态 | 说明 | +|-----------|----------------------------|------|--------------------------------------------| +| 资产管理 | feature_balance | 关:0 | 默认关闭 | +| 资产操作预编译合约 | feature_balance_precompile | 关:0 | 默认关闭 | +| 计费模式 | feature_policy1 | 关:0 | 默认关闭 | +| 块内分片 | feature_sharding | 关:0 | 默认关闭,仅在从3.3、3.4升级至当前版本时,feature_sharding打开 | +| 同态加密 | feature_paillier | 关:0 | 默认关闭 | +| rpbft共识 | feature_rpbft | 关:0 | 默认关闭 | +| bug修复 | bugfix_\ | 开:1 | 从低版本升级默认关闭 | + +**组件兼容性** + +| | 推荐版本 | 最低版本 | 说明 | +|------------|-------------|---------------------|-------------------| +| WeBASE | 3.0.2 | 3.0.2 | | +| WeIdentity | v3.0.0-rc.1 | v3.0.0-rc.1 | | +| Console | 3.7.0 | 3.0.0 | | +| Java SDK | 3.7.0 | 3.0.0 | | +| CPP SDK | 3.7.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.x版本升级为本版本,不支持3.0-rc或2.x的升级。 + +##### 查询数据兼容版本号(compatibility_version) + +用[控制台](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/operation_and_maintenance/console/console_commands.html#getsystemconfigbykey) +进行查询,如当前返回的版本为3.6.0 + +``` +[group0]: /apps> getSystemConfigByKey compatibility_version +3.6.0 +``` + +##### 替换节点二进制 + +需将**所有节点** +的二进制逐步替换为当前版本。为了不影响业务,替换过程能够以灰度方式进行,逐个替换并重启节点。替换过程中,当前的链仍然会以旧的数据兼容版本号的逻辑继续执行。当所有节点二进制替换完成并重启后,需用控制台修改数据兼容版本号为当前版本。 + +##### 设置数据兼容版本号(compatibility_version) + +用[控制台](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/operation_and_maintenance/console/console_commands.html#setsystemconfigbykey) +设置数据兼容版本号,如当前版本为3.7.0。 + +``` +[group0]: /apps> setSystemConfigByKey compatibility_version 3.7.0 +{ + "code":0, + "msg":"success" +} + +注:若开启权限治理功能,需要使用 setSysConfigProposal 命令 +``` + +设置成功,再次查询,得到当前版本已升级为3.7.0 + +``` +[group0]: /apps> getSystemConfigByKey compatibility_version +3.7.0 +``` + +当前链已经完成升级,至此,**链开始以新的逻辑继续运行**,并支持了新的特性。 diff --git a/3.x/zh_CN/docs/introduction/change_log/feature_bugfix_list.md b/3.x/zh_CN/docs/introduction/change_log/feature_bugfix_list.md index a6487b604..7d96e2034 100644 --- a/3.x/zh_CN/docs/introduction/change_log/feature_bugfix_list.md +++ b/3.x/zh_CN/docs/introduction/change_log/feature_bugfix_list.md @@ -30,4 +30,8 @@ | 修复开启合约部署权限后资产转移受限问题 | bugfix_internal_create_permission_denied | 开启:1 | 3.7.0 默认开启 | | 修复块内分片合约调用合约的问题 | bugfix_sharding_call_in_child_executive | 开启:1 | 3.7.0 默认开启 | | 修复已部署空abi,部署相同的合约无abi的问题 | bugfix_empty_abi_reset | 开启:1 | 3.7.0 默认开启 | -| 修复无法通过eip55类型的合约地址调用合约的问题 | bugfix_eip55_addr | 开启:1 | 3.7.0 默认开启 | \ No newline at end of file +| 修复无法通过eip55类型的合约地址调用合约的问题 | bugfix_eip55_addr | 开启:1 | 3.7.0 默认开启 | +| | bugfix_eoa_as_contract | 开启:1 | 3.8.0默认开启 | +| | bugfix_dmc_deploy_gas_used | 开启:1 | 3.8.0默认开启 | +| 解决EVM执行status_code非0和revert时未扣除gas的问题 | bugfix_evm_exception_gas_used | 开启:1 | 3.8.0默认开启 | +| 解决StateStorage和KeyPageStorage的setRow接口写入未修改Entry时不计算DBHash的问题 | bugfix_set_row_with_dirty_flag | 开启:1 | 3.8.0默认开启 | \ No newline at end of file diff --git a/3.x/zh_CN/docs/introduction/change_log/index.rst b/3.x/zh_CN/docs/introduction/change_log/index.rst index 481f39ca1..123ed98ce 100644 --- a/3.x/zh_CN/docs/introduction/change_log/index.rst +++ b/3.x/zh_CN/docs/introduction/change_log/index.rst @@ -21,6 +21,28 @@ FISCO BCOS 设计 Feature控制特性功能开启关闭,用户可以根据自 :maxdepth: 0 upgrade.md + +v3.8.x +------------------ + +.. admonition:: FISCO BCOS 3.x Releases + + - `FISCO BCOS v3.8.0 <./3_8_0.html>`_ [`release `_] + +.. admonition:: 查看节点和数据版本 + + - 查看Air版本FISCO BCOS节点二进制版本:``./fisco-bcos --version`` + - 查看Pro版本FISCO BCOS节点二进制版本:``./BcosNodeService --version``, ``./BcosRpcService --version``, ``./BcosGatewayService --version`` + - 查看Max版本FISCO BCOS节点二进制版本:``./BcosMaxNodeService --version``, ``./BcosRpcService --version``, ``./BcosGatewayService --version``, ``./BcosExecutorService --version`` + - 查看轻节点二进制版本:``../fisco-bcos-lightnode --version`` + - 查看轻节点相关文档,请参考 [`轻节点搭建工具 `_] + +.. toctree:: + :hidden: + :maxdepth: 0 + + 3_8_0.md + v3.7.x ------------------