Fabric 2 0 之更新通道配置

2021-10-06 15:52:32 字數 3560 閱讀 2271

orderer addresses:可以廣播和傳遞的位址列表,peer節點從中選擇。

hashing structure:塊資料是位元組陣列。 塊資料的雜湊計算為默克爾樹。 此值指定該merkle樹的寬度。 目前,此值固定為4294967295,它對應於塊資料位元組串聯的簡單平面雜湊。

hashing algorithm:雜湊演算法,用於計算編碼到區塊鏈塊中的雜湊值的演算法。 特別是,這會影響資料雜湊以及該塊的先前的塊雜湊字段。 注意,此欄位當前只有乙個有效值(sha256),不應更改。

更新通道配置,一般分為以下三個步驟:

獲取最新的通道配置

建立修改後的通道配置

重新編碼並提交配置

作為更新通道步驟的第一步,我們需要獲取最新的通道配置塊。

先配置節點資訊:

export orderer_adress=orderer.example.com:7050拉取protobuf格式的通道配置

peer channel fetch config config_block.pb -o $orderer_adress  -c $channel_name--tls --cafile $orderer_ca
使用configtxlator工具轉化為易讀的json格式:

configtxlator proto_decode --input config_block.pb --type common.block --output config_block.json
使用jq工具去掉不必要的配置資訊:

jq .data.data[0].payload.data.config config_block.json > config.json
複製config.json得到modified_config.json:

cp config.json modified_config.json
有兩種修改配置的方法:

使用文字編輯器修改modified_config.json

使用jq工具

選擇手動編輯配置還是使用jq取決於修改的用例。 由於jq簡潔明瞭且可編寫指令碼(當對多個通道進行相同的配置更新時,這是乙個優勢),因此它是執行通道更新的推薦方法。

關於jq在更改通道配置時的使用,參考:fabric 2.0 之動態新增組織

第一步是將config.json和修改後的modified_config.json轉化為protobuf格式,然後計算兩者差異:

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

configtxlator compute_update --channel_id $channel_name --original config.pb --updated modified_config.pb --output config_update.pb

更改配置:

configtxlator proto_decode --input config_update.pb --type common.configupdate --output config_update.json

echo

'},"data":}}'

| jq .

> config_update_in_envelope.json

configtxlator proto_encode --input config_update_in_envelope.json --type common.envelope --output config_update_in_envelope.pb

在提交交易前,我們需要獲取足夠數量(通道更新策略,預設大多數組織簽名)的組織簽名,命令如下,這裡我們以組織一admin角色進行簽名。

peer channel signconfigtx -f config_update_in_envelope.pb
如還需要組織二的簽名,可以切換身份到組織二的admin角色:

export core_peer_address=peer0.org2.example.com:9051組織二簽名並提交交易,排序服務會變換並得到乙個全新的完整的通道配置:

peer channel update -f config_update_in_envelope.pb -c $channel_name -o $orderer_adress --tls true --cafile $orderer_ca

python三大神器之fabric(2 0新特性)

fabric經常出現在自動化運維領域,批量處理一些運維工作。fabric是在paramiko之上又封裝了一層,操作起來更加簡單易用。本來只是想寫個部落格記錄一下,然後發現之前寫的 不能執行了,報以下錯誤 no module named fabric.api traceback most recent...

Python之 Fabric開發例項

coding utf 8 檢視本地和遠端主機資訊 本例項呼叫local 方法執行本地 主控端 命令,新增 runs once 修飾符保證該任務函式只執行一次 created on 2018年1月11日 author liuyazhuang from fabric.api import env.use...

蝸牛講 fabric原理之錨點

錨節點是定義在乙個已經加入到管道的組織的節點。該節點主要用於節點的發現。在乙個管道中,錨節點可以被這個管道的其他任何節點發現和通訊。因此,每乙個加入到管道內的組織都至少有乙個錨節點,乙個組織的節點可以通過查詢錨節點來發現這個管道內的其他組織的所有節點。當ordering服務要傳送乙個區塊到管道,這個...