摘要:
Fabric是一种基于区块链技术的分布式账本平台,其可靠性、灵活性和可扩展性让它在企业级区块链解决方案中得以广泛应用。本文将从以下四个方面对Fabric基础架构原理进行详细阐述,包括Fabric主要组件及其作用简介、交易流程、共识算法和链码。
一、Fabric主要组件及其作用简介
Fabric的基础架构包括Peer、Ordering Service、Membership Service Provider(MSP)和Channel,其中每个组件都有不同的作用。
Peer是分布式账本上的节点,每个节点都负责保存账本的副本并支持开发者的服务请求。每个Peer都具有与账本之间通信的能力,因此可以实时同步最新的账本状态。同时,Peer也可以挖掘区块并添加到账本中。
Ordering Service是负责排序和分发交易的核心服务。由于在Fabric中不同的Peer可能会拥有不同的账本副本,因此Ordering Service必须确保账本的一致性。其主要作用是将收到的交易排序并打包进新的区块,并将新的区块发送给Peer节点。
MSP是负责管理和授权用户及Peer的服务提供商。MSP可以为每个组织颁发证书,用于证明其组织身份,同时也可以确认某个用户是否有权访问某个特定的账户。
Channel是Fabric中的一种逻辑子网络,可以将一组Peer与其它Peer隔离开来,同时具有私密性。Channel可以作为单独的逻辑网络,用于处理特定的交易类型。
二、交易流程
Fabric交易流程可以分为两个阶段:提交交易和执行交易。提交交易的阶段中,客户端向Peer提交交易请求;在执行交易的阶段中,Peer节点根据智能合约执行交易并将交易的结果写入账本中。具体的交易流程如下:
1. 客户端向Peer提交交易请求
2. Peer节点验证用户的身份以及该交易是否合法
3. Peer节点查询状态数据库中的状态信息,获取当前状态
4. Peer节点执行智能合约并计算修改后的状态
5. Peer节点将新状态提交到Ordering Service中排序
6. Ordering Service将所有交易排序后打包成一个新区块并发送到所有Peer节点
7. 所有节点验证新区块,检查其中是否有无效交易
8. 如果新区块在验证时完成,则有效,否则将被拒绝。
9. 对于有效的区块,所有节点同步它的状态,并更新本地副本。
三、共识算法
Fabric实现了一种共识顺序算法,叫做Kafka共识,其主要特点是保证了交易的顺序并且支持网络拓扑和容错。具体实现方式如下:
1. 对于每个交易,所有的Peer都会将其先存放在未排序交易的池中。
2. 所有Peer会不断地从交易池中拉取新的交易,并按照Kafka的方式排序。Kafka的方式就是针对同样一个topic的所有消息,有序地进行分区和排序。
3. 一旦有足够的交易从同一Peer汇聚,Ordering Service就可以将这些交易组合在一起,并形成一个新的区块。
4. 只有通过共识算法验证的交易才会被写入区块链中。
四、链码
在Fabric中,链码指的是智能合约,它是基于Fabric的合约编程模型。链码可以由Java、Node.js和Go等语言编写,Fabric支持使用不同语言的链码。
链码的作用是定义一组规则和条件,用于检查和验证物品的交换(具体地说,链码描述了可以在Fabric中发起的所有操作)。链码高度灵活性,而且可以用于处理各种不同的交易类型,例如货币转移、资产交换或采购订单。
五、总结
Fabric是一种基于区块链技术的分布式账本平台,其主要组件包括Peer、Ordering Service、Membership Service Provider(MSP)和Channel。在本文中,我们详细介绍了Fabric交易流程、共识算法和链码。通过Fabric的实现,我们可以看到其具有高度的可靠性、灵活性和可扩展性,因而它在企业级区块链解决方案中得到了广泛的应用。
本文由掘金网(https://www.20on.com)原创,如有转载请保留出处。
原创文章,作者:掘金K,如若转载,请注明出处:https://www.20on.com/301469.html