正在尝试将组织添加到现有渠道,并遵循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”
但同样的错误
答案 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>
答案 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