Hyperledger Fabric 二三事 - 介绍
介绍
首先,我们需要知道,对于企业应用,开发者们需要了解以下几个要求,这也是我们所要学习的Hyperledger Fabric的特点:
- 参与者必须是已认证的或者可识别的
- 网络需要获得许可
- 高交易吞吐量性能
- 交易确认低延迟
- 与商业交易有关的交易和数据的隐私和机密性
该平台最重要的区别之一是它支持可插拔的共识协议,使得平台能够更有效地进行定制,以适应特定的业务场景和信任模型。例如,当部署在单个企业内或由可信任的权威机构管理时,完全拜占庭容错的共识可能是不必要的,并且大大降低了性能和吞吐量。在这种的情况下,崩溃容错(Crash Fault-Tolerant,CFT)共识协议可能就够了,而在去中心化的场景中,可能需要更传统的拜占庭容错(Byzantine Fault Tolerant,BFT)共识协议。
A. 模块化
总体来看,Fabric由以下模块化的组件组成:
- 可插拔的排序服务
用于对交易顺序建立共识,然后向节点广播区块 - 可插拔的成员服务提供者
负责将网络中的实体与加密身份相关联 - 可选的P2P gossip服务提供者
通过排序服务将区块发送到其他节点 - 智能合约(链码)
隔离运行在容器环境(例如 Docker)中。它们可以用标准编程语言编写,但不能直接访问账本状态 - 账本
- 可插拔的背书和验证策略
B. 智能合约与执行
智能合约在应用于平台的时候,一般满足以下三个特点:
- 多个智能合约在网络中同时运行,
- 它们可以动态部署(很多情况下任何人都可以部署),
- 应用代码应视为不被信任的,甚至可能是恶意的。
为了保证众多智能合约在执行的时候不出错,有些区块链平台(比如以太坊),设置了顺序执行架构,以达到共识的目的:
- 验证并将交易排序,然后将它们传播到所有的节点,
- 每个节点按顺序执行交易。
在Fabric中,引入了一种新的架构:执行-排序-验证,它将流程分为了三个步骤:
- 执行一个交易并检查其正确性,从而给它背书
- 通过共识协议将交易排序
- 提交交易到账本前,先根据特定应用程序的背书策略验证交易
可以看到,Fabric是先执行再排序。比如在第一阶段,有背书策略指定的几个节点并行执行智能合约,这样就能检查交易会不会出错,消除了非确定性,从而实现背书。
C. 隐私和保密性
非许可链中的数据和交易对于网络中的每一个节点可见的,所以不保密。Fabric通过通道机制,让数据和交易在通道外不可见,通道内可见。个人认为这是一种局部的隐私保密。
D. 可插拔共识
即排序服务。Fabric目前提供了一种基于etcd 库 中 Raft 协议 的 CFT 排序服务的实现

浙公网安备 33010602011771号