我已经创建了一个测试网络,并且能够安装在golang中创建的链码。但是当实例化它时,我收到以下信息:
2020-03-24 08:00:00.843 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 04a Using default escc
2020-03-24 08:00:00.844 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 04b Using default vscc
Error: chaincode argument error: unexpected end of JSON input
如果我将代码构建在其自己的目录中,则可以毫无问题地进行编译。
我可以在另一个开发网络中安装和实例化代码,但不能在我从头创建的网络中安装和实例化代码。
将不胜感激!
谢谢!
谢谢。我设置环境变量,然后调用实例化。为安装设置了相同的变量,效果很好。
export CC_CONSTRUCTOR='{ "Args" : [ "Message" , "Hello World - Init message" ] }'
export CC_NAME="testcc"
export CC_PATH="testcc"
export CC_VERSION="1.1"
export CC_CHANNEL_ID="testchannel"
peer chaincode instantiate -C $CC_CHANNEL_ID -n $CC_NAME -v $CC_VERSION -c $CC_CONSTRUCTOR -o $ORDERER_ADDRESS
我已经尝试将可能需要的某些功能转义,但这是行不通的。再次,相同的golang代码和JSON构造函数可在另一个测试环境中使用。
如果未设置CC_CONSTRUCTOR变量,则会收到另一条错误消息,因此很有可能是问题所在。
引用CC_CONSTRUCTOR
变量时,请使用引号。否则,bash会优先考虑内部空间而不是内部引号:
peer chaincode instantiate -C $CC_CHANNEL_ID -n $CC_NAME -v $CC_VERSION -c "$CC_CONSTRUCTOR" -o $ORDERER_ADDRESS