fabric架构再次重申
发布于 3 个月前 作者 stvenyin 340 次浏览 来自 fabric

20170717160645149.jpg

这个图就是hyperLedger fabric1.0的架构图,主要分三大模块:

1.区块链服务

区块链服务提供一个分布式账本平台。一般地,多个交易被打包进区块中,多个区块构成一条区块链。区块链代表的是账本状态机发生变更的历史过程。

2.链码服务(智能合约)

链码包含所有的处理逻辑,并对外提供接口,外部通过调用链码接口来改变世界观。

.成员权限管理

通过基于 PKI 的成员权限管理,平台可以对接入的节点和客户端的能力进行限制。 证书有三种,Enrollment,Transaction,以及确保安全通信的 TLS 证书。 注册证书 ECert:颁发给提供了注册凭证的用户或节点,一般长期有效; 交易证书 TCert:颁发给用户,控制每个交易的权限,一般针对某个交易,短期有效。 通信证书 TLSCert:控制对网络的访问,并且防止窃听。

fabric1.0架构特点有三点需要说明的

1.链码信任的灵活度大大提升(Chaincode Trust Flexibility):该架构分离了链码(区块链应用)的信任假设和排序的信任假设。换句话说,排序服务可以由一组node节点(排序orderer节点)提供,这些节点可以容忍它们中间出现一些失败节点或恶意节点,另一方面,每个链码的背书者可以不同。

2.可扩展性。作为特定链码的背书node节点和排序orderer节点是垂直交叉关系,和将这些功能都放在同一批node节点相比,如此实现可以使系统在扩展性上更好。特别是,当不同的链码指定不同的背书节点时更是如此,为此在背书节点之间引入了链码分区技术,允许链码并行执行(和背书)。此外,链码的执行,可能比较耗费计算资源,所以把它从排序服务的关键路径移除。

举个例子:一共有50个背书node,10个排序node,完成10个交易。假设每个交易需要找5个背书节点为交易背书,如果policy允许的话最佳情况是10个交易正好用掉了50个背书node,然后10个交易都去orderer节点完成共识。而曾经的架构中,这种情况就是10个交易都由所有的Validating peer来统一的验证,共识,效率和拓展性一目了然。

3.共识模块化。该架构是模块化的,允许可插拔的模块化共识(即排序服务)实现。由于orderer节点的剥离,现在可以根据联盟链所处的环境不同,选择不同的共识算法,目前有三种可供选择:solo, kafka和PBFT。

回到顶部