一、架构
1. 群组架构
根据业务场景和业务关系,企业可选择不同群组,形成多个不同账本的数据共享和共识。
2. 并行计算模型
改变了区块中按交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易,大幅提升性能
3. 分布式存储
支持企业(节点)将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。
4. 预编译合约
预编译合约能够突破EVM的性能瓶颈,实现高性能合约;
基于C++的Precompiled合约:区块链底层内置C++语言编写的Precompiled合约,执行效率更高。
5. 控制台
控制台可以让用户快速掌握区块链使用技巧等。
二、关键特性
| 整体架构 | |
|---|---|
| 架构模型 | 一体两翼多引擎 |
| 群组架构 | 支持链内动态扩展多群组 |
| 分布式存储 | 支持海量数据存储 |
| 并行计算 | 支持块内交易并行执行 |
| 节点类型 | 共识节点、观察节点 |
| 计算模型 | 排序-执行-验证 |
| 系统性能 | |
| 峰值TPS | 2万+ TPS(PBFT) |
| 交易确认时延 | 秒级 |
| 硬件推荐配置 | |
| CPU | 2.4GHz * 8核 |
| 内存 | 8GB |
| 存储 | 4TB |
| 网络带宽 | 10Mb |
| 账本模型 | |
| 数据结构 | 链式结构,区块通过哈希链相连 |
| 是否分叉 | 不分叉 |
| 记账类型 | 账户模型(非UTXO) |
| 共识算法 | |
| 共识框架 | 可插拔设计 |
| 共识算法 | PBFT、Raft、rPBFT |
| 存储引擎 | |
| 存储设计 | 支持KV和SQL |
| 引擎类型 | 支持leveldb、rocksdb、mysql |
| CRUD接口 | 提供CRUD接口访问链上数据 |
| 网络协议 | |
| 节点间通信 | P2P协议 |
| 客户端与节点通信 | JsonRPC,Channel协议 |
| 消息订阅服务 | AMOP协议 |
| 智能合约 | |
| 合约引擎 | 支持Solidity和预编译合约 |
| 引擎特点 | 图灵完备,沙盒运行 |
| 版本控制 | 基于CNS支持多版本合约 |
| 灰度升级 | 支持多版本合约共存、灰度升级 |
| 生命周期管理 | 支持合约和账户的冻结、解冻 |
| 密码算法和协议 | |
| 国密算法 | 支持 |
| 国密SSL | 支持 |
| 哈希算法 | Keccak256、SM3 |
| 对称加密算法 | AES、SM4 |
| 非对称加密算法 | ECDSA、SM2 |
| 非对称加密椭圆曲线 | secp256k1、sm2p256v1 |
| 安全控制 | |
| 存储安全 | 支持落盘数据加密存储 |
| 通信安全 | 支持全流程SSL |
| 准入安全 | 基于PKI身份认证体系 |
| 证书管理 | 支持证书颁发、撤销、更新 |
| 权限控制 | 支持细粒度权限控制 |
| 隐私保护 | |
| 物理隔离 | 群组间数据隔离 |
| 隐私保护协议 | 支持群签名、环签名、同态加密 |
| 场景化隐私保护机制 | 基于WeDPR支持隐匿支付、匿名投票、匿名竞拍、选择性披露等场景 |
| 跨链协议 | |
| SPV | 提供获取SPV证明的接口 |
| 跨链协议 | 基于WeCross支持同构、异构跨链 |
| 开发支持 | |
| 合约开发工具 | WeBASE-IDE,ChainIDE |
| 开发建链工具 | 提供一键搭链脚本工具 |
| 合约部署与测试工具 | 基于Java SDK的console, 交互式控制台基于Web3SDK的console |
| SDK语言 | Java、nodejs、go、python |
| 快速开发组件 | 提供Spring-boot-starter |
| 压测工具 | SDK内嵌压测工具,支持Caliper |
| 运维支持 | |
| 运维建链工具 | 提供企业级联盟链部署工具 |
| 可视化数据展现 | 区块链浏览器 |
| 可视化节点管理 | 基于WeBASE,提供节点管理器 |
| 动态管理节点 | 支持动态新增、剔除、变更节点 |
| 动态更改配置 | 支持动态变更系统配置 |
| 数据备份与恢复 | 提供数据导出与恢复服务组件 |
| 监控统计 | 输出统计日志,提供监控工具 |
| 监管审计 | 基于WeBASE,提供监管审计入口 |
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/intro/introduction.html
