中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hyperledger Fabric如何實現基于第一個網絡動態添加組織

發布時間:2021-12-06 14:23:34 來源:億速云 閱讀:163 作者:小新 欄目:互聯網科技

這篇文章主要介紹Hyperledger Fabric如何實現基于第一個網絡動態添加組織,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

First Network 動態添加組織

  • 聯盟鏈新增組織 Org3 :

    ./eyfn.sh up

     

    • 打開一個新的終端,從 first-network 啟動 Org3 docker compose

      docker-compose -f docker-compose-org3.yaml up -d


    • 進入 Org3cli 容器

      docker exec -it Org3cli bash


    • 導出環境變量

      export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem && export CHANNEL_NAME=mychannel


    • 加入通道

      peer channel join -b mychannel.block


    • 升級和調用Chaincode

    • 到從Org3 CLI中

      peer chaincode install -n mycc -v 2.0 -p github.com/chaincode/chaincode_example02/go/


    • 到從CLI中 安裝

      peer chaincode install -n mycc -v 2.0 -p github.com/chaincode/chaincode_example02/go/

      升級

      peer chaincode upgrade -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 2.0 -c '{"Args":["init","a","90","b","210"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer','Org3MSP.peer')"


    • 到從Org3 CLI中,查詢即可

      peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'


    • 完成

    • 手動構建腳本細節

    • 切換目錄

      cd org3-artifacts


    • 為Org3生成加密材料

      ../../bin/cryptogen generate --config=./org3-crypto.yaml


    • 生成Org3的配置材料

      export FABRIC_CFG_PATH=$PWD && ../../bin/configtxgen -printOrg Org3MSP > ../channel-artifacts/org3.json


    • 將 Orderer 的MSP材料復制到 Org3 的crypto-config目錄

      cd ../ && cp -r crypto-config/ordererOrganizations org3-artifacts/crypto-config/


    • 進入cli容器

      docker exec -it cli bash


    • 導出環境變量

      export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  && export CHANNEL_NAME=mychannel


    • 將舊版本通道配置塊保存到 config_block.pb

      peer channel fetch config config_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA


    • 使用 configtxlator 工具將通道配置塊解碼為JSON格式(可讀取和修改),并必須刪除與更改無關的所有標頭,元數據,創建者簽名

      configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json

      花一點時間在選擇的文本編輯器(或瀏覽器)中打開此文件。值得研究,因為它揭示了底層配置結構和可以進行的其他類型的通道更新

    • 使用 jq 工具將Org3配置定義 org3.json 附加到通道的應用程序組字段,并命名輸出 modified_config.json

      jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./channel-artifacts/org3.json > modified_config.json


    • 將 config.json 轉回二進制文件 config.pb

      configtxlator proto_encode --input config.json --type common.Config --output config.pb


    • 將 modified_config.json 轉二進制文件 modified_config.pb

      configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb


    • 用 configtxlator 用來計算這兩個配置二進制文件之間的增量。輸出一個名為的新二進制文件 org3_update.pb

      configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb


    • 將 org3_update.pb 解碼為可編輯的JSON格式 org3_update.json

      configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json


    • 包裝信封消息為 org3_update_in_envelope.json

      echo '{"payload":{"header":{"channel_header":{"channel_id":"mychannel", "type":2}},"data":{"config_update":'$(cat org3_update.json)'}}}' | jq . > org3_update_in_envelope.json


    • 將 org3_update_in_envelope.json 轉最終二進制文件 org3_update_in_envelope.pb

      configtxlator proto_encode --input org3_update_in_envelope.json --type common.Envelope --output org3_update_in_envelope.pb


    • Org1 簽名配置

      peer channel signconfigtx -f org3_update_in_envelope.pb


    • 導出 Org2 環境變量

      export CORE_PEER_LOCALMSPID="Org2MSP"
      export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
      export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
      export CORE_PEER_ADDRESS=peer0.org2.example.com:7051


    • Org2管理員簽名并提交更新

      peer channel update -f org3_update_in_envelope.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ORDERER_CA


    • 配置領導者選舉,利用動態領導者選舉:

      CORE_PEER_GOSSIP_USELEADERELECTION=true
      CORE_PEER_GOSSIP_ORGLEADER=false


    • 將 Org3 加入通道

  • 如果使用過該 eyfn.sh 腳本,則需要關閉網絡。這可以通過:

    ./eyfn.sh down


以上是“Hyperledger Fabric如何實現基于第一個網絡動態添加組織”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳区| 新龙县| 汪清县| 沁阳市| 三门县| 旬阳县| 墨玉县| 阿图什市| 洪洞县| 安塞县| 祁连县| 米易县| 天等县| 沛县| 河北省| 麻江县| 上高县| 汉沽区| 旬阳县| 塔河县| 清徐县| 郯城县| 油尖旺区| 桂阳县| 本溪| 盐城市| 上饶市| 疏附县| 城步| 棋牌| 东辽县| 佳木斯市| 鹿邑县| 兴宁市| 梧州市| 邓州市| 平舆县| 新昌县| 新民市| 河津市| 承德县|