Hyperledger面料改变fabcar的例子

我一直在通过fabcar的例子,并没有发生任何改变时,它运行完美。 我想要做的是更新fabcar.go代码,以添加更多的领域,只是玩w /这个例子,但是我的docker图像不更新w /正确的代码。

要安装chaincode,这个命令在cli容器上运行:

docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode install -n fabcar -v 1.0 -p github.com/fabcar 

cli容器已经设置了这个容量:

 ./../chaincode/:/opt/gopath/src/github.com/ 

然而,在代码/去更新(我实际上已经改变了它从汽车到票务对象与全新的领域,并更新所有相关的链条命令反映), 拆解 ,然后再次启动,我仍然看到所有的旧领域。

我在这里错过了什么?

下面是“Invoke”函数中代码片段的一部分

 func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response { // Retrieve the requested Smart Contract function and arguments function, args := APIstub.GetFunctionAndParameters() // Route to the appropriate handler function to interact with the ledger appropriately if function == "queryTicket" { return s.queryTicket(APIstub, args) } else if function == "initLedger" { return s.initLedger(APIstub) } else if function == "createTicket" { return s.createTicket(APIstub, args) } else if function == "queryAllTickets" { return s.queryAllTickets(APIstub) } else if function == "sellTicket" { return s.sellTicket(APIstub, args) } return shim.Error("Invalid Smart Contract function name.") } 

但是这样做,我只是收到消息“无效的智能合同函数名称”。 当拨打以下电话:

 const request = { chaincodeId: options.chaincode_id, txId: transaction_id, fcn: 'queryAllTickets', args: [''] }; 

我会build议两种可能的方法:

  1. 用新名称或递增版本安装链码

同名,但更新版本:

 peer chaincode install -n fabcar -v 2.0 -p github.com/fabcar 

或相同的版本,但新名称:

 peer chaincode install -n tickets -v 1.0 -p github.com/fabcar 
  1. 清理旧的链码容器,并重新安装交替链码的更新版本。

您可以使用以下命令删除旧的链接代码容器图像:

 docker images | grep fabcar | awk '{print $2}' | docker rmi