本文选自新书shu《区块链核心技术与应用》,略有删节jie。上一期介绍了Fabric基础架构的共识和he事务机制,这次介绍了Fabric的私有事务模式shi:通道。
通道是Fabric中一个非常重要yao的概念。它本质上shang是由排序节点划分和管理li的私有原子广播信道。其qi目的是隔离通道内的信息,使通道外wai的实体无法访问通道内nei的信息,从而实现交易的私密mi性。
目前渠道分fen为系统渠道和应用渠道dao。排序节点通过guo系统通道管理应用通道,用yong户的交易信息通过应用yong通道传递。对于一般用户hu来说,渠道是指应用渠道dao。系统通道和应用程序通道的关系如ru图10-5所示:
尚力财经小编2022
上面的配置文件jian定义了两种不同类型的通道dao:系统通道和应用程cheng序通道。
必须为系xi统通道定义订购者和联合体,必bi须为应用程序和联合体定义应用程序通tong道。(更多详情请参can考Hash 1024社区文章【将地di址粘贴到浏览器qi】:https://hash1024.org/topics/50
定义完yaml文件后,需要将configtxgen工具和msp目录复fu制到yaml文件所在的目录下。默认ren情况下,configgen读取当dang前目录的configtx.yaml作为输入:
1)创建排序节点的初始块kuai:
configtxgen-Profile genesis-output block genesis . block
该命令指定配置文wen件的配置。通过profile参数将jiang块写入生成的yaml文件中,并bing通过-outputBlock参数将块写入genesis.block文件中。
2)事务wu文件mychannel.tx:
configtxgen-profile channel-outputcreatechanneltx channel . tx-channelidmychannel
该命令通过-outputCreateChannelTx参数将生成的de事务写入channel . tx文件,并通过-channelID将创chuang建的通道的名称指定为my channel。
3)创建配置块的事务文wen件Org1MSPanchors.tx更新mychannel中PeerOrg的锚节点:
configtxgen-profile Channel-outputAnchorPeersUpdate org 1 mspanchors . 尚力财经小编2022 tx-Channel id my Channel-as org PeerOrg1MSP
With-as org,该命令指定创建jian标识为peer org 1 MSP的配置块,并使用-outputanchorpersupupdate参数将配置zhi块写入文件Org1MSPanchors.tx。
同样,创建配置块的事务文件Org2MSPanchors.tx更新mychannel中PeerOrg的锚mao节点:
tx gen-profile channel-output anchor peer sup date org 2mp anchors . tx-channelid my channel-as org peer org 2 MSP
3 .与通道相关的de命令
通道的管guan理可以通过命令行,与yu通道相关的命令如下:
对等通道创建:用yong于创建通道。主要参数是shi-c、-f和-o,分别bie用于指定通道ID、ConfigTx的路径和订购者zhe的地址。对等通道获取:获取通道中zhong的特定块,并通tong过-c和-f参数指定通道ID和订购者地址。对等deng通道加入:加入通道,并通tong过-b参数指定ding初始块。对等通道列表:列lie出对等方加入的de通道。对等通道更新:签名并发fa送configtx以升级通道dao配置。您需要分别通过-c、-f和-o参数指定通道ID、ConfigTx的路径和排序xu节点的地址。
4。动态修改渠道配置
渠qu道创建后,与渠道相关的配pei置以块的形式存cun在于渠道的账簿bu中。如果需要修改通道配置,可以通tong过生成新的配置块来更新。修改通道dao配置的步骤如下:
1)通过sdk或CLI获取最新的配置块kuai。2)编辑配置块。3)计算配置更geng新量。4)添加配置块的配pei置更新数量。5)sdk或CLI签名并发送配pei置块。
如果新的分配块kuai被验证,则信道分配将基于yu最新的分配块。具ju体操作流程请参考以下修改通道配pei置。
(未完待dai续)
(来源:亨利笔bi记尚力财经小编bian2022)