我逐步按照https://hyperledger-fabric.readthedocs.io/en/latest/private_data_tutorial.html的说明进行操作,但是在链式代码调用时出现了这样的错误,例如“错误:解析瞬态字符串时出错:字符串文字中的无效字符'\ n'-提案响应:”。有没有人有同样的问题?您能否建议如何修复它。非常感谢!
我一步一步按照https://hyperledger-fabric.readthedocs.io/en/latest/private_data_tutorial.html的说明进行操作,但是在调用链式代码时出现错误
返回为“错误:解析瞬态字符串时出错:字符串文字中的无效字符'\ n'-提案响应:“
我在下面发出调用命令: export MARBLE = $(echo -n“ {\” name \“:\” marble1 \“,\” color \“:\” blue \“,\” size \“:35,\” owner \“:\” tom \“,\” price \“:99}” | base64) 对等链代码调用-o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n marblesp -c'{“ Args”:[“ initMarble”]}'--transient“ {\” marble \“:\” $ MARBLE \“}”
export MARBLE = $(echo -n“ {\” name \“:\” marble1 \“,\” color \“:\” blue \“,\” size \“:35,\” owner \“ :\“ tom \”,\“价格\”:99}“ | base64) 对等链代码调用-o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n marblesp -c'{“ Args”:[“ initMarble”]}'--transient“ {\” marble \“:\” $ MARBLE \“}”
期望: [chaincodeCmd] chaincodeInvokeOrQuery-> INFO 001链码调用成功。结果:状态:200
实际结果: “错误:解析瞬态字符串时出错:字符串文字中的无效字符'\ n'-提案响应:“
答案 0 :(得分:2)
请问您使用的是哪台机器?并检查
时是否存在 tr -d \ nexport MARBLE = $(echo -n“ {\” name \“:\” marble1 \“,\” color \“:\” blue \“,\” size \“:35,\” owner \“ :\“ tom \”,\“价格\”:99}“ | base64 | tr -d \ n )
给予
tr命令去除了linux base64命令添加的有问题的换行符。
如果问题仍然存在,您可以参考 How can I replace a newline (\n) using sed? 并尝试
tr -d'\ n'
或
tr-删除'\ n'
答案 1 :(得分:1)
结构private data tutorial已更新,指示应使用tr -d \\n
删除换行符,如下所示:
export MARBLE=$(echo -n "{\"name\":\"marble1\",\"color\":\"blue\",\"size\":35,\"owner\":\"tom\",\"price\":99}" | base64 | tr -d \\n)