fabric 系統通道添加新組織

系統通道添加新組織

此手冊作為 Building Your First Network (BYFN)的擴展指導。此手冊將指導如何在已運行的系統中,將新的組織添加到系統通道中。教程已經在fabric1.4和fabric2.0 alpha版本中進行過驗證。開始此手冊前,建議先對BYFN進行實踐,并且熟悉。
請確保確保byfn.sh腳本可以正常運行不出錯,把相關工具(cryptogen,configtxgen)加入到PATH環境變量中。

搭建測試環境

執行的的操作將在你本地克隆的fabric-samples倉庫目錄下運行,將當前目錄切換為為fabric-samples的子目錄first-network。
首先使用byfn.sh腳本進行清理。下面的命令將會清理掉所有相關的docker容器和之前生成的配置文件。清理之前的fabric網絡不是必須的,執行這一步是為了確保當前的fabric網絡狀態跟教程中的測試環境一致,以避免未知錯誤的發生。

首先,執行以下命令來進行清理。

./byfn.sh down

然后,生成默認的配置文件

./byfn.sh generate

最后,啟動網絡

./byfn.sh up

完成以上步驟后,測試環境搭建完成了。現在的fabric網絡中有兩個組織,Org1和Org2。下面將介紹如何在這個運行的網絡中把Org3加入到系統通道中去。

  1. 生成證書。此步驟用生成或者收集org3的證書,測試中可以用以下命令生成。Org3配置文件在first-network的子目錄org3-artifacts中。
   cd org3-artifacts
   cryptogen generate --config=./org3-crypto.yaml
  1. 將org3的詳情打印到json文件中,這個文件會更新到channel的配置中(org3的策略,以及證書)
   export FABRIC_CFG_PATH=$PWD && configtxgen -printOrg Org3MSP > ../channel-artifacts/org3.json
  1. 進入已經啟動的cli
   docker exec -it cli bash
  1. 把身份切換為orderer的admin。因為在默認配置中,要有orderer的管理員身份有更新系統鏈配置的權限。
   export CORE_PEER_LOCALMSPID=OrdererMSP
   export CORE_PEER_ADDRESS=orderer.example.com:7050
   export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
   export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp
  1. 設置環境變量,設置orderer的ca路徑和通道名。
   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=byfn-sys-channel
  1. 獲取通道的最新配置塊。
   peer channel fetch config config_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
  1. 將配置塊解碼為json文件。
   configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json
  1. 添加org3的加密材料。
   jq -s '.[0] * {"channel_group":{"groups":{"Consortiums":{"groups":{"SampleConsortium":{"groups":{"Org3MSP":.[1]}}}}}}}' config.json channel-artifacts/org3.json >modified_config.json
  1. 分別將原來的config.json和增加了org3的modified_config.json編碼成區塊。
   configtxlator proto_encode --input config.json --type common.Config --output config.pb
   configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb
  1. 計算出添加了org3后文件的增量。
    configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb
  1. 把通過差別計算出來的塊解碼成json文件。
    configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json
  1. 將上一步生成的json文件封裝成envelope格式。
    echo '{"payload":{"header":{"channel_header":{"channel_id":"byfn-sys-channel","type":2}},"data":{"config_update":'$(cat org3_update.json)'}}}' | jq . > org3_update_in_envelope.json
  1. 將上一步的文件編碼成fabric的proto格式。
    configtxlator proto_encode --input org3_update_in_envelope.json --type common.Envelope --output org3_update_in_envelope.pb
  1. 發送update請求。
    peer channel update -f org3_update_in_envelope.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ORDERER_CA
  1. 完成以上步驟后,啟動org3(可以調用腳本統一啟動org3所有peer,也可以各個peer自己啟動)。
    docker-compose -f docker-compose-org3.yaml up -d

至此,org3完成了加入系統通道的整個流程,org3可以在系統內完成所有正常操作。


微信圖片_20190418195654.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容