Hands-On Hyperledger Fabric——Fabric系统架构解析

系统逻辑架构

在这里插入图片描述
从应用程序的角度来看:


  • 身份管理

用户登记并注册成功后,获取到用户注册证书ECert),其他所有的操作都需要与用户关联的私钥进行签名。消息接受方首先会进行签名验证,才进行后续的消息处理。网络节点同样会用到颁发的证书,比如系统启动和网络节点管理都会对用户身份进行认证和授权。


  • 账本管理

授权的用户是可以查询账本数据(Ledger)的,可以通过多种方式查询:区块号查询区块、根据区块哈希查询区块、根据交易号查询区块、根据交易号查询交易,还可以通过通道名称来获取查询到的区块链的信息。


  • 交易管理

账本数据只能通过交易执行后才能更新,应用程序通过交易管理提交交易提案(Proposal)并获取到交易背书(Endorsement)之后,再给排序服务节点提交交易,然后打包生成区块。


  • 智能合约

实现“可编程的账本”(Programmable Ledger),通过链码执行提交的交易,实现基于区块链的智能合约业务逻辑。只有智能合约才能更新账本数据,其他模块是不能直接修改状态数据的。


从底层逻辑的角度看:


  • 成员管理

MSP(Membership Service Provider)对成员管理进行了抽象,每个MSP都会建立一套根信任证书(Root of Trust Certificate)体系,利用PKI(Public Key Infrastructure)对成员身份进行认证,验证成员用户提交请求的签名,结合Fabric-CA或者第三方CA提供成员注册功能,并对成员身份证书进行管理,比如证书的新增和撤销。
注册的证书分为:注册证书(ECert,用于用户身份)、交易证书(TCert,用于交易签名)、TLS证书(TLS Cert,用于TSL传输)。


  • 共识服务

共识机制由3个阶段完成:

  1. 客户端向背书节点提交提案进行签名背书。
  2. 客户端将背书后的交易提交给排序服务节点进行交易排序。
  3. 生成区块后广播给记账节点验证交易后写入本地账本。

  • 链码服务

智能合约的实现依赖于安全的执行环境,所以采用Docker容器来管理普通的链码,提供沙箱环境来保证安全。


  • 安全和密码服务

Fabric专门定义了一个BCCSP(BlockChain Cryptographic Service Provider),使其实现密钥生成、哈希运算、签名验签、加密解密等。

网络节点架构

通过上面的功能描述,可以知道节点的身份是多种多样的:客户端节点、Peer节点、排序服务节点和CA节点。
在这里插入图片描述


  • 客户端节点

客户端是由用户操作的实体,它必须连接到某一个Peer节点或者排序服务节点上,然后与区块链网络进行通信。客户端向背书节点提交交易提案,当收集到足够的背书后,向排序服务广播交易,进行排序,生成区块。


  • Peer节点

所有Peer节点都是记账节点(Committer),负责验证从排序服务节点区块里的交易,维护状态数据和账本的副本部分节点会执行交易并对结果进行签名背书,充当背书节点的角色。背书节点是动态的角色,是与具体链码绑定的。每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。也只有在应用程序向它发起交易背书请求的时候才是背书节点,其他时候就是普通的记账节点,只负责验证交易并记账。

Peer节点还有一种角色是主节点(Leader Peer),代表的是和排序服务节点通信的节点,负责从排序服务节点处获取最新的区块并在组织内部同步,可以强制设置主节点也可以动态选举产生。


  • 排序服务节点

排序服务节点接收包含背书签名的交易,对未打包的交易进行排序生成区块,广播给Peer节点(由主节点接受)。排序服务提供的是原子广播保证同一个链上的节点接收到相同的消息,并且由相同的逻辑顺序。ZAB协议是Zookeeper使用的原子广播的协议,可以查看之前写的文章:DDBS ZAB


  • CA节点

CA节点是证书颁发机构:接受客户端的注册申请,返回注册密码用于用户登陆,以便获取身份证书。在区块链上的所有操作都会验证用户的身份。CA节点是可选的,也可以使用第三方的CA颁发证书。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值