频道ID $ CHANNEL_NAME不匹配,因此将组织添加到现有网络失败了!= mychannel

时间:2019-12-18 11:51:29

标签: hyperledger-fabric hyperledger

正在尝试将组织添加到现有渠道,并遵循https://hyperledger-fabric.readthedocs.io/en/release-1.4/channel_update_tutorial.html中的步骤,

但在频道更新的最后一步

“对等频道更新-f org3_update_in_envelope.pb -c $ CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ ORDERER_CA”

失败 “错误:无效的频道创建交易:不匹配的频道ID $ CHANNEL_NAME!= mychannel “

反面有想法吗

我什至检查CHANNEL_NAME的可变值,并尝试将$ CHANNEL_NAME直接替换为mychannel,

“对等频道更新-f org3_update_in_envelope.pb -c mychannel -o orderer.example.com:7050 --tls --cafile $ ORDERER_CA”

但同样的错误

2 个答案:

答案 0 :(得分:0)

找到原因,

为“ org3_update.json”创建信封并添加标头字段以形成“ org3_update_in_envelope.json”的步骤存在问题

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

此处“ channel_id”:“ $ CHANNEL_NAME”不被视为环境变量,实际上被视为值,这就是为什么“ org3_update_in_envelope.json”文件获取标头“ $ CHANNEL_NAME”条目,而不是将其实际通道名称作为mychannel < / p>

org3_update_in_envelope.json created content

答案 1 :(得分:0)

要解决此问题,请在变量周围添加单引号,如下所示:

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

reference this change