我尝试了两个不同的教程:
-
要在本地部署docker映像,请执行以下操作:
https://github.com/hyperledger/fabric-samples
我试过fabcar样品。一切正常。我可以注册管理员、注册用户并使用此用户标识调用事务。美好的
-
第二个是在bluemix上部署fabric composer游乐场:
https://ibm-blockchain.github.io/setup/
我能够进入composer游乐场,部署业务网络示例。我还能够上载和部署我自己的业务网络,我是在本地使用composer cli设计的。为了测试事务,我在具有管理员权限的Rest服务器上公开了网络。一切正常。
现在我的问题来了。我想结合这两个例子(只是为了好玩,边做边学:)。我想将fabcar samples网络部署到bluemix上的kubernetes环境中,并使用fabric node sdk与网络进行交互,如示例1所示。因此,我对示例2的脚本/yaml文件进行了以下更改:
在create\u all中。第41行(对等1)和第45行(对等2)。我更改了环境变量CHAINCODE\u NAME和CHAINCODE\u VERSION的值
echo "=> CREATE_ALL: Running Install Chaincode on Org1 Peer1" CHAINCODE_NAME="fabcar" CHAINCODE_VERSION="1.0" MSP_CONFIGPATH="/shared/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" PEER_MSPID="Org1MSP" PEER_ADDRESS="blockchain-org1peer1:30110" create/chaincode_install.sh
在chaincode\u安装中。亚马尔。基线16,我更改了链码的路径。我用叉子叉
https://github.com/hyperledger/fabric
并添加了fabcar。将示例1中的链码转到新存储库
https://github.com/bigbelette/fabric
command: ["sh", "-c", "git clone https://github.com/bigbelette/fabric $GOPATH/src/github.com/bigbelette/fabric/ && peer chaincode install -n ${CHAINCODE_NAME} -v ${CHAINCODE_VERSION} -p github.com/bigbelette/fabric/examples/chaincode/go/fabcar/"]
在create\u all中。第49行。我更改了环境变量CHAINCODE\u NAME和CHAINCODE\u VERSION的值:
CHANNEL_NAME="channel1" CHAINCODE_NAME="fabcar" CHAINCODE_VERSION="1.0" MSP_CONFIGPATH="/shared/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" PEER_MSPID="Org1MSP" PEER_ADDRESS="blockchain-org1peer1:30110" create/chaincode_instantiate.sh
在chaincode\u中实例化。亚马尔。base,我将参数列表设为空:
command: ["sh", "-c", "peer chaincode instantiate -o blockchain-orderer:31010 -C ${CHANNEL_NAME} -n ${CHAINCODE_NAME} -v ${CHAINCODE_VERSION} -c '{\"Args\":[\"\"]}'"]
集群上的部署不会出错。在fabcar示例节点js文件enrollAdmin、regiserUser、query和invoke中,我更改了频道名称(从mychannel到channel1)以及IP和端口,以匹配在线kubernetes服务:
注册管理员。js和registerUser。js工作正常,因此我可以获取证书并将其存储在密钥存储中。但当我尝试调用事务时,会出现以下错误:
似乎给我证书的CA没有得到同行的认可。但我的网络中只有一个CA!?或者这是MSP定义中的一个问题(我仍然不太理解)。
谢谢你的帮助。