Skip to content

Commit

Permalink
sync document && refactor introduction.md (#796)
Browse files Browse the repository at this point in the history
refactor introduction.md
  • Loading branch information
cyjseagull committed Apr 29, 2020
1 parent e27f1f7 commit 8d8256f
Show file tree
Hide file tree
Showing 8 changed files with 142 additions and 62 deletions.
5 changes: 5 additions & 0 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.4.0/build
- 如果因为网络问题导致长时间无法下载build_chain.sh脚本,请尝试 `curl -LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master/tools/build_chain.sh && chmod u+x build_chain.sh`
```

```eval_rst
.. note::
- 如果因为网络问题导致长时间无法下载build_chain.sh脚本,请尝试 `curl -LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master/tools/build_chain.sh && chmod u+x build_chain.sh`
```

### 搭建单群组4节点联盟链

在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链。
Expand Down
92 changes: 66 additions & 26 deletions docs/introduction.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,89 @@
# 平台介绍

FISCO BCOS是一个区块链底层平台,由金融区块链合作联盟(深圳)(以下简称:金链盟)开源工作组以金融业务实践为参考样本,在BCOS开源平台基础上进行模块升级与功能重塑。
特点:深度定制的安全可控、适用于金融行业且完全开源。
金链盟开源工作组的首批成员包括:微众银行、深证通、腾讯、华为、神州信息、四方精创、博彦科技、越秀金科、亦笔科技等9家单位。
FISCO BCOS是首个由国内企业主导研发、对外开源、安全可控的企业级金融联盟链底层平台,由金链盟开源工作组协作打造,并于2017年正式对外开源。

## 联盟链的升华:分布式商业与公众联盟链
社区以开源链接多方,目前,汇聚了超500家企业及机构、逾万名社区成员参与共建共治,发展成为最大最活跃的国产开源联盟链生态圈。底层平台经广泛应用实践,具有高可用、易上手的特点,数百个应用项目基于FISCO BCOS底层平台研发,超60个已在生产环境中稳定运行,覆盖文化版权、司法服务、政务服务、物联网、金融、智慧社区等领域。

商业,本身是一种竞争、自由的经济活动。而自由竞争的结果,天然就容易导致优胜劣汰、垄断集中、甚至寻租。尤其是2008年全球金融危机发生后,“大而不倒Too Big to Fail”的弊病显现,也因此引发了一系列的技术变革与商业变革,启动了一轮从“集中式”走向“分布式”的时代浪潮。
```eval_rst
.. note::
FISCO BCOS以联盟链的实际需求为出发点,兼顾性能、安全、可运维性、易用性、可扩展性,支持多种SDK,并提供了可视化的中间件工具,大幅缩短建链、开发、部署应用的时间。此外,FISCO BCOS通过信通院可信区块链评测功能、性能两项评测,单链TPS可达两万。
```

在此背景下,区块链技术在2008年萌芽成型,并逐渐发展成熟。通过区块链技术解决方案中的共识机制、分布式账本、加密算法、智能合约、点对点通信、分布式计算架构、分布式存储、隐私保护算法、跨链协议等技术模块,可以让商业模式中的参与各方实现了地位对等和互信合作,从而推动了从“信息互联网”到“信任互联网”的时代进步,也令商业模式全面走向“分布式”成为可能。
## 架构

新型的“分布式商业”模式,按微众银行整理给出的定义,是一种由多个具有对等地位的商业利益共同体所建立的新型生产关系,是通过预设的透明规则进行组织管理、职能分工、价值交换、共同提供商品与服务并分享收益的新型经济活动行为。在主要表现特征上,分布式商业显现出多方参与、共享资源、智能协同、价值整合、模式透明、跨越国界等特点。一个成熟的分布式商业场景具备生产资料由多方持有、产品和服务能力由多方共同构建、商业过程中的相互关系对等,产品和利益分配规则透明等要求
FISCO BCOS 2.0采用一体两翼多引擎架构,实现系统吞吐能力的横向扩展,支持快速组建联盟和建链,让企业建链像建微信群一样便利,性能、安全性、可运维性、易用性、可扩展性均有很大优势

分布式商业与此前流行的连锁加盟型商业模式及共享商业模式的最大不同之处在于,起到中间链接桥梁作用的不是人或产品、不是信息平台、而只是客观的技术本身。诚然,如果技术不开源,确实也可能演变成新的垄断。因此,发展分布式商业必须始终保持技术开源的态度,各个参与方通过开源社区进行分工合作,就将不再存在话语权集中和垄断的可能性,弱肉强食的“丛林法则”在此就不复存在。这有助于中小微企业真正成为商业价值链的主角,从而激发经济增长动力、广泛提升就业、鼓励创业和创新,实现“反垄断”的人类商业终极理想。
![](../images/architecture/plane.jpg)

发展开源区块链技术的深远意义已不言而喻,但技术路线的选择也至关重要。虽然最原始的区块链技术起源于虚拟货币及公有链项目,但公有链的项目方往往以融资为目的,其用户则是以价格交易获利为目标,导致各方更多是关注币价的涨跌而非区块链的真正应用能力。由于公有链的代币实质上是“类货币”与“类证券”,已经被中国的监管部门严厉叫停。当潮水退去、大浪淘沙后,联盟链技术已肩负起推动区块链技术继续前行的重任。2018年,业界更是提出“公众联盟链”的发展路线,呼吁联盟链应该积极开放开源,从较为封闭的联盟内或公司内走向大众,让普罗大众真正感受到区块链带来的体验提升、效率提升、成本下降、信任增强、数据互换、责任追溯等好处,实现分布式商业的愿景。

新一代的公众联盟链,对区块链底层技术提出了新的要求,除标准的区块链特性之外,还有几个方面仍需重点加强:
首先,由于公众联盟链并非单一链条,所以需具备支持多链并行以及跨链通信的技术,同时需能够支撑来自互联网海量交易请求的能力。其次,需具备快速、低成本地组建联盟和建链的能力,以便于各需求方高效建立联盟链网络,让企业间建链合作变得像建立“聊天群”一样高效便捷。最后,需要开源和开放,实现联盟成员间的充分信任。公众联盟链有利于降低企业快速试错的成本,有效提升商业上的容错性,也促进商业社会朝着可信化、透明化的方向深化发展,全面降低由于合作带来的操作、道德、信用、信息保护等方面的风险。秉持以上的目标与愿景,我们正式发布了FISCO BCOS 2.0版本,它基于“公众联盟链”技术路线。
## 核心模块

## FISCO BCOS 2.0
FISCO BCOS 2.0版本在原有基础上进行架构升级和优化,在可扩展性、性能、易用性等方面取得了重大突破,其中包括:
FISCO BCOS采用高通量可扩展的[多群组架构](./design/architecture/group.md),可以动态管理多链、多群组,满足满足多业务场景的扩展需求和隔离需求,核心模块包括:

- 实现**群组架构**,在多个节点组成的一个全局网络中,可以存在多个节点子集组成的子网络,这些子网络维护一个独立的账本。这些账本之间的共识、存储都是相互独立的,具备良好的扩展性和安全性。在群组架构中,可以更好地实现平行扩展,满足金融级高频交易场景的需求。同时,群组架构可以快速支持组链需求,极大降低运维难度,真正能够实现企业间建链就像建“聊天群”一样简便。
- <font color=blue>**[共识机制](./design/consensus/index.md)**</font>:可插拔的共识机制,支持PBFT、Raft和RPBFT共识算法,交易确认时延低、吞吐量高,并具有最终一致性。其中PBFT和RPBFT可解决拜占庭问题,安全性更高

- 支持**分布式存储**,使存储突破单机限制,支持横向扩展。计算和存储分离,提高了系统健壮性,即使节点执行服务器故障,数据也不会受影响。分布式存储定义了标准的数据访问CRUD接口,可以适配多种存储系统,同时支持SQL和NoSQL两种数据管理方式,可以更简便地支持多种业务场景。
- <font color=blue>**[存储](./design/storage/index.md)**</font>:世界状态的存储从原来的MPT存储结构转为[分布式存储](./design/storage/storage.html#id6),避免了世界状态急剧膨胀导致性能下降的问题;引入可插拔的存储引擎,支持LevelDB、RocksDB、MySQL等多种后端存储,支持数据简便快速地扩容的同时,将计算与数据隔离,降低了节点故障对节点数据的影响

- 实现**预编译合约框架**,突破EVM性能瓶颈。支持交易并发处理,大幅提升交易处理吞吐量。预编译合约采用C++实现,内置于底层系统中,区块链自动识别调用合约的交易互斥信息,构建DAG依赖,规划出一个高效的并行交易执行路径。最佳情况下,性能提升N倍(N=CPU核数)
- <font color=blue>**[网络](./design/p2p/p2p.md)**</font>:支持网络压缩功能,并基于负载均衡的思想实现了良好的分布式网络分发机制,最大化降低带宽开销

- 另外,FISCO BCOS 2.0版本持续在网络传输模型、计算存储流程等方面进行优化,对性能提升提供巨大帮助。在架构方面,在存储、网络、计算三个角度,围绕高可用性和高易用性进行持续升级。基于模块化、分层、可插拔等设计原则,持续对核心模块进行重塑升级,保证系统健壮性。

更多2.0版本的特性将在后续章节深入展开介绍,请看[2.0新版介绍](./what_is_new.md)
## 性能

## FISCO BCOS 1.0
回顾FISCO BCOS的演进历程,我们一直致力于达到性能、安全、可用性与合规的平衡。
为提升系统性能,FISCO BCOS从提升交易执行效率和并发两个方面优化了交易执行,使得交易处理性能达到万级以上。

- 在性能方面,FISCO BCOS 在整体架构和交易处理等方面都进行了大量的优化,包括采用了高效的共识算法,把能并行的计算并行化,减少重复计算,对关键计算单元进行升级等。更进一步地,其性能的核心突破点不仅仅在于单链,更在于基于单链性能优化架构设计,并实现灵活、高效、可靠、安全的并行计算和可平行扩展的能力。这帮助开发者能够灵活地根据自己业务场景的实际需要,通过简单增加机器,达到自己需要的性能。总体上,FISCO BCOS平台优化了网络通信模型,采用拜占庭容错共识机制,结合多链架构和跨链交互方案,可解决并发访问和热点账户的性能痛点,从而满足金融级高频交易场景需求。
- <font color=blue>**[基于C++的Precompiled合约](./design/virtual_machine/precompiled.md)**</font>:区块链底层内置C++语言编写的Precompiled合约,执行效率更高。
- <font color=blue>**[交易并行执行](./design/parallel/dag.md)**</font>:基于DAG算法根据交易间互斥关系构建区块内交易执行流,最大化并行执行区块内的交易。

- 在安全性方面,FISCO BCOS 平台通过节点准入控制、可靠的密钥管理、灵活的权限控制,在应用、存储、网络、主机层实现全面的安全保障。在隐私保护的设计上,支持权限管理、物理隔离,支持国密算法(国家密码局认证的标准算法),同时也对外开源了包括同态加密、零知识证明、群签名、环签名等多种隐私保护算法的实现方案。

- 在可用性方面,FISCO BCOS设计为7×24小时运行,达到金融级高可用性。在监管支持方面,可支持监管和审计机构作为观察节点加入,获取实时数据进行监管审计。此外,还提供了各种开发接口,方便开发者编写和调用智能合约。
## 安全性

## 总结
考虑到联盟链的高安全性需求,除了节点之间、节点与客户端之间通信采用TLS安全协议外,FISCO BCOS还实现了一整套安全解决方案:

实践之中出真知,FISCO BCOS经过了外部多家机构、多个应用,长时间在生产环境运行的实际检验,已成长为一个稳定、高效、安全的区块链底层平台。
- <font color=blue>**[网络准入机制](./design/security_control/node_management.md)**</font>:限制节点加入、退出联盟链,可将指定群组的作恶节点从群组中删除,保障了系统安全性

本文档后续内容将详细介绍FISCO BCOS 2.0版本的构建、安装、智能合约部署、调用等教程,以及深入介绍FISCO BCOS 2.0版本整体架构和各模块的设计方案。
- <font color=blue>**[黑白名单机制](./design/security_control/certificate_list.md)**</font>:每个群组仅可接收相应群组的消息,保证群组间网络通信的隔离性;CA黑名单机制可及时与作恶节点断开网络连接,保障了系统安全

- <font color=blue>**[权限管理机制](./design/security_control/permission_control.md)**</font>:基于分布式存储权限控制机制,灵活、细粒度地控制外部账户部署合约和创建、插入、删除和更新用户表的权限

- <font color=blue>**[支持国密算法](./manual/guomi_crypto.md)**</font>:支持国密加密、签名算法和国密通信协议

- <font color=blue>**[落盘加密方案](./design/features/storage_security.md)**</font>:支持加密节点落盘数据,保障链上数据的机密性

- <font color=blue>**[密钥管理方案](./design/features/storage_security.md)**</font>:在落盘加密方案的基础上,采用KeyManager服务管理节点密钥,安全性更强

- <font color=blue>**[同态加密](./manual/privacy.html#id2)[群环签名](./manual/privacy.html#id7)**</font>:链上提供了同态加密、群环签名接口,用于满足更多的业务需求


## 可运维性

联盟链系统中,区块链的运维至关重要,FISCO BCOS提供了一整套运维部署工具,并引入了**合约命名服务****数据归档和迁移****合约生命周期管理**等工具来提升运维效率。


- <font color=blue>**[运维部署工具](./enterprise_tools/index.md)**</font>: 部署、管理和监控多机构多群组联盟链的便捷工具,支持扩容节点、扩容新群组等多种操作

- <font color=blue>**[合约命名服务](./design/features/cns_contract_name_service.md)**</font>: 建立合约地址到合约名和合约版本的映射关系,方便调用者通过记忆简单的合约名来实现对链上合约的调用

- **数据归档、迁移和导出功能**: 提供数据导出组件,支持链上数据归档、迁移和导出,增加了链上数据的可维护性,降低了运维复杂度

- <font color=blue>**[合约生命周期管理](./design/features/contract_management.md)**</font>: 链上提供合约生命周期管理功能,便于链管理员对链上合约进行管理


## 易用性

FISO BCOS引入开发部署工具、交互式控制台、区块链浏览器等工具来提升系统的易用性,大幅缩短建链、部署应用的时间

- <font color=blue>**[开发部署工具](./manual/build_chain.md)**</font>
- <font color=blue>**[交互式的命令行工具console](./manual/console.md)**</font>
- <font color=blue>**[区块链浏览器](./browser/browser.md)**</font>
- <font color=blue>**[可视化的区块链管理平台WeBASE](https://webase-web.readthedocs.io/en/latest/)**</font>

为了便于不同语言开发者快速开发应用,FISCO BCOS同时支持[Java SDK](./sdk/java_sdk.md)[Node.js SDK](./nodejs_sdk/index.md)[Python SDK](./sdk/python_sdk/index.md)[Go SDK](https://github.com/FISCO-BCOS/go-sdk)


## 可扩展性

为提升FISCO BCOS的可扩展性,FISCO BCOS团队提出跨链协作方案WeCross和隐私保护解决方案WeDPR。

- <font color=blue>**[跨链协作方案WeCross](https://fintech.webank.com/wecross/)**</font>:支持跨链事务交易,满足跨链交易的原子性,对跨链进行治理,可支持多方协作管理,避免单点风险。

- <font color=blue>**[场景化的隐私保护解决方案WeDPR](https://fintech.webank.com/wedpr/)**</font>:提供匿支付、匿名投票、匿名竞拍和选择性披露等方案
6 changes: 3 additions & 3 deletions docs/manual/group_use_cases.md
Original file line number Diff line number Diff line change
Expand Up @@ -624,11 +624,11 @@ info|2019-02-11 20:59:53.067702| [g:1][p:264][CONSENSUS][SEALER]++++++++Generati
$ cd ~/fisco/multi_nodes/127.0.0.1

# 拷贝group1的配置
$ cp node0/conf/group.1.genesis group.2.genesis
$ cp node0/conf/group.1.genesis node0/conf/group.2.genesis

# 修改群组ID
$ sed -i "s/id=1/id=2/g" group.2.genesis
$ cat group.2.genesis | grep "id"
$ sed -i "s/id=1/id=2/g" node0/conf/group.2.genesis
$ cat node0/conf/group.2.genesis | grep "id"
# 已修改到 id=2

# 将配置拷贝到各个节点
Expand Down
5 changes: 5 additions & 0 deletions en/docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.4.0/build
- If the build_chain.sh script cannot be downloaded for a long time due to network problems, try `curl -LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/blob/master/tools/build_chain.sh && chmod u+x build_chain.sh`
```

```eval_rst
.. note::
- If the build_chain.sh script cannot be downloaded for a long time due to network problems, try `curl -LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/blob/master/tools/build_chain.sh && chmod u+x build_chain.sh`
```

### Build a single-group 4-node consortium chain

Execute the following command in the fisco directory to generate a single group 4-node FISCO chain. It is necessary to ensure that the `30300~30303, 20200~20203, 8545~8548` ports of the machine are not occupied.
Expand Down

0 comments on commit 8d8256f

Please sign in to comment.