Fabric基础架构原理(3):通道

昕阳小编 114 0

本文选自新书《区块链核心技术与应用》,略有删节。上一期介绍了Fabric基础架构的共识和事务机制,这次介绍了Fabric的私有事务模式:通道。

通道是Fabric中一个非常重要的概念。它本质上是由排序节点划分和管理的私有原子广播信道。其目的是隔离通道内的信息,使通道外的实体无法访问通道内的信息,从而实现交易的私密性。

目前渠道分为系统渠道和应用渠道。排序节点通过系统通道管理应用通道,用户的交易信息通过应用通道传递。对于一般用户来说,渠道是指应用渠道。系统通道和应用程序通道的关系如图10-5所示:

Fabric基础架构原理(3):通道-第1张图片-昕阳网

系统通道和应用程序通道

通道由排序服务节点管理,排序服务节点还负责对通道中的事务进行排序。渠道一般有几个成员(组织)。如果两个网络实体的身份证书可以追溯到同一个根CA,则认为这两个实体属于同一个组织。此外,渠道中的每个组织都会有一个或多个“锚节点”,负责与其他组织交换共享账簿的数据。

创建通道时,会定义成员。只有通过成员MSP验证的实体才能加入信道并访问信道数据。验证的例子如下:

Org1是通道mychannel的成员之一,Org1绑定的MSP标识符是Org1MSP,它所代表的CA称为CA1;如果实体的MSP满足以下条件,则认为该实体对mychannel的数据有访问权限:

该实体的MSP ID为Org1MSP;身份证书的信任链的来源是CA1。只要实体满足通道中任何成员的MSP检查,就认为该实体有权访问通道中的数据。

1。渠道配置

渠道配置信息打包成块,存储在渠道的共享账簿中。除了配置信息之外,该块不包含其他事务信息,称为通道的配置块。通道可以使用配置块来更新配置,因此每次在帐簿中添加新的配置块时,通道都会根据最新配置块的定义来修改配置。帐簿的第一块必须是分配块,也称为起源块。

2。使用configtxgen工具生成通道的配置

configtxgen是Fabric提供的工具,用于生成通道所需的配置文件。configgen工具将一个yaml文件作为输入,通常称为configtx.yaml,它定义了要创建的通道的配置信息。这个文件通常包括以下几个部分:

1)Profiles:包含通道的配置模板,使用哪个模板由configtxgen工具的parameter -profile指定。

2)组织:定义了组织及其对应的MSP。

3)排序器:定义系统通道的相关配置,如排序节点地址、一致性算法等。

4)应用:定义应用通道相关配置,被profile引用。

以接下来的配置文件configtx.yml为例,说明如何通过configtxgen创建通道的初始块。configtx.yml列表如下:

Fabric基础架构原理(3):通道-第2张图片-昕阳网 尚力财经小编2022Fabric基础架构原理(3):通道-第3张图片-昕阳网上面的配置文件定义了两种不同类型的通道:系统通道和应用程序通道。

必须为系统通道定义订购者和联合体,必须为应用程序和联合体定义应用程序通道。(更多详情请参考Hash 1024社区文章【将地址粘贴到浏览器】:https://hash1024.org/topics/50

定义完yaml文件后,需要将configtxgen工具和msp目录复制到yaml文件所在的目录下。默认情况下,configgen读取当前目录的configtx.yaml作为输入:

1)创建排序节点的初始块:

configtxgen-Profile genesis-output block genesis . block

该命令指定配置文件的配置。通过profile参数将块写入生成的yaml文件中,并通过-outputBlock参数将块写入genesis.block文件中。

2)事务文件mychannel.tx:

configtxgen-profile channel-outputcreatechanneltx channel . tx-channelidmychannel

该命令通过-outputCreateChannelTx参数将生成的事务写入channel . tx文件,并通过-channelID将创建的通道的名称指定为my channel。

3)创建配置块的事务文件Org1MSPanchors.tx更新mychannel中PeerOrg的锚节点:

configtxgen-profile Channel-outputAnchorPeersUpdate org 1 mspanchors . 尚力财经小编2022 tx-Channel id my Channel-as org PeerOrg1MSP

With-as org,该命令指定创建标识为peer org 1 MSP的配置块,并使用-outputanchorpersupupdate参数将配置块写入文件Org1MSPanchors.tx。

同样,创建配置块的事务文件Org2MSPanchors.tx更新mychannel中PeerOrg的锚节点:

tx gen-profile channel-output anchor peer sup date org 2mp anchors . tx-channelid my channel-as org peer org 2 MSP

3 .与通道相关的命令

通道的管理可以通过命令行,与通道相关的命令如下:

对等通道创建:用于创建通道。主要参数是-c、-f和-o,分别用于指定通道ID、ConfigTx的路径和订购者的地址。对等通道获取:获取通道中的特定块,并通过-c和-f参数指定通道ID和订购者地址。对等通道加入:加入通道,并通过-b参数指定初始块。对等通道列表:列出对等方加入的通道。对等通道更新:签名并发送configtx以升级通道配置。您需要分别通过-c、-f和-o参数指定通道ID、ConfigTx的路径和排序节点的地址。

4。动态修改渠道配置

渠道创建后,与渠道相关的配置以块的形式存在于渠道的账簿中。如果需要修改通道配置,可以通过生成新的配置块来更新。修改通道配置的步骤如下:

1)通过sdk或CLI获取最新的配置块。2)编辑配置块。3)计算配置更新量。4)添加配置块的配置更新数量。5)sdk或CLI签名并发送配置块。

如果新的分配块被验证,则信道分配将基于最新的分配块。具体操作流程请参考以下修改通道配置。

(未完待续)

(来源:亨利笔记尚力财经小编2022)

标签: 2022

抱歉,评论功能暂时关闭!

微信号已复制,请打开微信添加咨询详情!