タイムアウト時間:2秒
または
トランザクション数:10個
ブロックチェーンコンソーシアムを構築した後、運用中にトランザクション数を変更する手順を説明する。
➀CONFIGブロックを取得する。
# docker exec -it cli bash
# peer channel fetch config config.bc -o orderer.example.com:7050 -c bushido --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
②CONFIGブロック(バイナリ)をJSON形式にデコードする。このとき、Envelopeメッセージ等は除外する。
# configtxlator proto_decode --input config.bc --type common.Block | jq .data.data[0].payload.data.config > config.json
③今回はトランザクション数を10→5に変更することにする。
# jq ".channel_group.groups.Orderer.values.BatchSize.value.max_message_count" "config.json"
10
# jq ".channel_group.groups.Orderer.values.BatchSize.value.max_message_count = 5" "config.json" > "update_config.json"
# jq ".channel_group.groups.Orderer.values.BatchSize.value.max_message_count" "update_config.json"
5
➃「config.json」と「update_config.json」の差分値をシミレーションする。
#configtxlator proto_encode --input config.json --type common.Config > config.bc
#configtxlator proto_encode --input update_config.json --type common.Config > update_config.bc
#configtxlator compute_update --channel_id bushido --original config.bc --updated update_config.bc --output update_config_2.bc
⑤シミレーション結果で生成された「update_config_2.bc」をJSON形式にデコードする。
#configtxlator proto_decode --input update_config_2.bc --type common.ConfigUpdate | jq . > update_config_2.json
⑥Envelopeメッセージをラッピングする。
#echo '{"payload":{"header":{"channel_header":{"channel_id":"bushido", "type":2}},"data":{"config_update":'$(cat update_config_2.json)'}}}' | jq . > update_config_2_envelope.json
⑦「update_config_2_envelope.json」をバイナリ形式にエンコードする。
#configtxlator proto_encode --input update_config_2_envelope.json --type common.Envelope --output update_config_2_envelope.bc
⑧「update_config_2_envelope.bc」に対して、PEERの署名を行う。
(Endorsing Policyを満たす分、署名を付与する必要あり)
# peer channel signconfigtx -f update_config_2_envelope.bc
⑨チャネルを更新する。
# peer channel update -f update_config_2_envelope.bc -c bushido -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
# peer channel update -f update_config_2_envelope.bc -c bushido -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
0 件のコメント:
コメントを投稿