之前我們已經講過通過更新應用通道區塊配置文件的方式設置錨節點信息,這中方式有個前提就是,在開始時我們沒有設置組織信息和生成相應的msp信息,如果我們在規划網絡的時候已經有確定的組織信息,我們可以通過在configtx文件中設置錨節點的信息來生成組織錨節點的交易文件,下面我們來看看如何通過這種方式來設置錨節點
編寫configtx.yaml文件
以下是我的文件:
Profiles: #以下部分定義了整個系統配置信息 # TestTwoOrgsOrdererGenesis是組織定義表示符,可以自定義,這個也是命令中的-profile參數對應參數 TestTwoOrgsOrdererGenesis: #orderer配置屬性,這個標識不能自定義,屬於系統關鍵詞 Orderer: #這個表示引用下面OrdererDefaults的屬性 <<: *OrdererDefaults Organizations: - *OrdererOrg #定義了系統中包含的組織 Consortiums: SampleConsortium: #系統中包含的組織 Organizations: - *Org1 #引用下文定義的配置 - *Org2 #通道配置信息 #通道定義標識符,可以自定義 TestTwoOrgsChannel: Consortium: SampleConsortium Application: <<: *ApplicationDefaults #引用下文的Application定義 Organizations: - *Org1 - *Org2 #order節點相關的配置 Organizations: - &OrdererOrg #order節點配置信息 Name: OrdererOrg #order節點名稱 ID: OrdererMSP #orderer節點編號,orderer.yaml的 LocalMSPID必須要和這個ID相同 #MSP文件夾路徑 MSPDir: /home/zym/fabric-ws/simple-demo/crypto-config/ordererOrganizations/simple-network.com/msp - &Org1 Name: Org1MSP #組織名稱 ID: Org1MSP #組織編號 MSPDir: /home/zym/fabric-ws/simple-demo/crypto-config/peerOrganizations/org1.simple-network.com/msp #組織MSP文件名 AnchorPeers: #組織的錨點信息 - Host: peer0.org1.simple-network.com - Port: 7051 - &Org2 Name: Org2MSP ID: Org2MSP MSPDir: /home/zym/fabric-ws/simple-demo/crypto-config/peerOrganizations/org2.simple-network.com/msp AnchorPeers: - Host: peer0.org2.simple-network.com - Port: 7051 #orderer節點的配置信息 Orderer: &OrdererDefaults #orderer節點的共識方法 OrdererType: solo #orderer的監聽地址 Addresses: - orderer.simple-network.com:7050 BatchTimeout: 2s BatchSize: MaxMessageCount: 10 AbsoluteMaxBytes: 98 MB PreferredMaxBytes: 512 KB #kafka相關配置 Kafka: Brokers: - 127.0.0.1:9092 Organizations: Application: &ApplicationDefaults Organizations:
文件中標紅的地方就是我們填加的組織錨節點信息,下面我們通過這個文件來生成創世區塊,通道交易文件,還有錨節點交易文件
下面我們來創建我們實驗用的configtx.yaml文件 order 和組織的生成msp信息的yaml文件
configtx文件內容:
Organizations: - &OrdererOrg Name: OrdererOrg ID: OrdererMSP MSPDir: crypto-config/ordererOrganizations/example.com/msp - &Org1 Name: Org1MSP ID: Org1MSP MSPDir: crypto-config/peerOrganizations/org1.example.com/msp AnchorPeers: - Host: peer0.org1.example.com Port: 7051 - &Org2 Name: Org2MSP ID: Org2MSP MSPDir: crypto-config/peerOrganizations/org2.example.com/msp AnchorPeers: - Host: peer0.org2.example.com Port: 7051 Orderer: &OrdererDefaults OrdererType: solo Addresses: - orderer.example.com:7050 BatchTimeout: 2s BatchSize: MaxMessageCount: 10 AbsoluteMaxBytes: 98 MB PreferredMaxBytes: 512 KB Kafka: Brokers: - 127.0.0.1:9092 Organizations: Application: &ApplicationDefaults Organizations: Profiles: TwoOrgsOrdererGenesis: Orderer: <<: *OrdererDefaults Organizations: - *OrdererOrg Consortiums: SampleConsortium: Organizations: - *Org1 - *Org2 TwoOrgsChannel: Consortium: SampleConsortium Application: <<: *ApplicationDefaults Organizations: - *Org1 - *Org2
crypto-config-order.yaml文件內容
OrdererOrgs:
- Name: Orderer
Domain: example.com
Specs:
- Hostname: orderer
crypto-config-orgs.yaml文件內容
PeerOrgs:
- Name: Org1
Domain: org1.example.com
Template:
Count: 2
Users:
Count: 1
- Name: Org2
Domain: org2.example.com
Template:
Count: 2
Users:
Count: 1
下面我們來生成order和org的msp信息
執行下面的命令:
1 ./bin/cryptogen generate --config=./crypto-config-orgs.yaml 2 3 ./bin/cryptogen generate --config=./crypto-config-order.yaml
完成后我們的結果是:
下面我們來根據configtx文件生成創世區塊文件,通道交易文件,錨節點交易文件
執行以下命令:
生成創世區塊文件
./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
生成通道交易文件:
./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel
創建Org1MSP組織錨點更新文件
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
創建org2MSP組織錨點更新文件
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
生成完成:
后續 步驟就是,完成通道創建后需要更新錨節點使其加入到通道配置當中
使用命令:
1 docker exec -it cli bash 2 peer channel update -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -c mychannel -f ./channel-artifacts/Org1MSPanchors.tx
org2的錨節點設置也參考上面的命令即可,但是首先必須將環境設置成org2的
至此我們已經完成了錨節點的添加
參考文檔:
https://developer.aliyun.com/article/769612?spm=a2c6h.14164896.0.0.167a1219cOBn0T
https://www.cnblogs.com/show58/p/13180824.html
創建Org1MSP組織錨點更新文件