BTCU lesson 3

Fabric的逻辑架构

在这里插入图片描述

  1. Membership Services:成员管理保证了Fabric平台的安全性。提供了成员的注册、管理及审核功能。这里成员是指参与挖矿出块的节点。
  2. Blockchain Services:是区块链的核心部分,为区块链的主体功能提供了底层支撑;包括共识管理、分布式账本实现、账本的存储、网络中各节点之间的通信P2P协议实现。
  3. Chaincode Services: 可以理解为智能合约
  4. Event :为上面各组件之间提供异步通信提供了技术实现。

Fabric的运行时架构

  • 流程

客户端发送交易请求—》CA认证—》MSPs为节点提供证书 —》Channel将整个联盟链分割成不同的org并提供一种通讯机制,将peers和orders连接在一起。—》order对来自客户端的交易请求进行排序并生成区块广播给通道内的所有peer节点。

在这里插入图片描述

  • 概念
    • Peer:表示组织中的节点;Peer节点以区块的形式从Orderer排序服务节点接收有序状态更新,维护状态和账本。在Fabtic网络环境中 Peer 节点可以划分为如下角色:

    Endorsing peer:根据指定的策略调用智能合约,对结果进行背书, 返回提案响应到客户端。
    Committing peer:验证数据并保存至账本中。
    Anchor peer:跨组织通信。
    Leading peer:作为组织内所有节点的的代表连接到Orderer排序服务节点, 将从排序服务节点接收到的批量区块广播给组织内的其它节点。

  • Chaincode:链式代码,简称链码;运行在容器中,提供相应的API与账本数据进行交互。
  • Ledger:是由排序服务构建的一个全部有序的交易哈希链块,保存在所有的peer节点中。账本提供了在系统运行过程中发生的可验证历史,它包含所有成功的状态更改(有效交易)和不成功的状态更改(无效交易)。

Fabric节点的配置信息

  • docker pull下载fabric相关镜像,docker-compose 来根据这些配置信息来生成你想要的网络。
  • Core.yaml
    Peer 节点
    Vm
    Chaincode
    Ledger
    Metrics
  • Orderer.yaml
    General
    FileLedger
    RAMLedger
    Kafka
    Debug

Fabric详细交易流程

在这里插入图片描述

  • 第1步通过 SDK 构造交易提案,并且把提案提交给相应的背书节点

在这里插入图片描述

其中:channelID:通道信息
chaincodeID:要调用的链码信息
timestamp:时间戳
sign:客户端的签名
txPayload:提交的事务本身包含的内容,包含两项:
operation:要调用的链码的函数及相应的参数
metadata:调用的相关属性​

  • 第1步传给背书节点之后,背书需要check以下几点:

交易提案格式是否正确
交易在之前并未提交过(重复性攻击保护)
提交交易提案的客户端签名是否有效(使用MSP)
提交交易提案的请求者是否在该通道中有相应的执行权限
验证通过后调用链码进行模拟执行, 产生包括响应值、读集和写集的事务结果。对结果进行背书并响应给客户端。
返回的ProposalResponse如下,:, 产生包括响应值、读集和写集的事务结果
在这里插入图片描述

  • Orderer 节点接收到事务请求之后,并不需要检查交易中的具体数据,它只是从网络中的所有通道接收交易,按时间顺序对它们进行排序,并创建交易区块。之后广播给同一通道内所有组织的 Leader 节点。

  • Leader 节点对接收到的区块进行验证(交易消息结构是否正确、是否重复、是否有足够的背书、读写集版本),通过验证后将结果写入到本地的分类账本中。

  • Leader 节点同步广播给组织内的其它节点(保证在同一通道内的)。 提示:在 Fabric 中,广播给其它节点默认为临近的3个节点。此广播数量可以通过配置进行修改。

  • 分类账本更新: 每个Peer节点将区块附加到区块链中,写集被提交到当前的状态数据库中。并且对于每个有效的事务,发出一个事件,通知客户端应用程序事务(调用)已被不可变地附加到链中,以及通知该事务是否已经过验证或为无效事务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值