Fabric v1.4的私有数据样本时链代码调用错误

时间:2019-01-23 10:05:52

标签: hyperledger-fabric

我逐步按照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'-提案响应:“

2 个答案:

答案 0 :(得分:2)

请问您使用的是哪台机器?并检查

时是否存在 tr -d \ n
  

export 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)