一、架构
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支持同构、异构跨链 |
开发支持 |
|
合约开发工具 |
|
开发建链工具 |
提供一键搭链脚本工具 |
合约部署与测试工具 |
基于Java SDK的console, 交互式控制台基于Web3SDK的console |
SDK语言 |
|
快速开发组件 |
|
压测工具 |
SDK内嵌压测工具,支持Caliper |
运维支持 |
|
运维建链工具 |
提供企业级联盟链部署工具 |
可视化数据展现 |
区块链浏览器 |
可视化节点管理 |
基于WeBASE,提供节点管理器 |
动态管理节点 |
支持动态新增、剔除、变更节点 |
动态更改配置 |
支持动态变更系统配置 |
数据备份与恢复 |
提供数据导出与恢复服务组件 |
监控统计 |
输出统计日志,提供监控工具 |
监管审计 |
基于WeBASE,提供监管审计入口 |
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/intro/introduction.html