gpt4 book ai didi

docker - Hyperledger Fabric 更改 fabcar 示例

转载 作者:行者123 更新时间:2023-12-02 05:15:08 24 4
gpt4 key购买 nike

我一直在研究 fabcar 示例,并在没有发生任何更改的情况下让它完美运行。我想做的是更新 fabcar.go 代码以添加更多字段并简单地使用示例,但是我的 docker 图像没有更新正确的代码。

要安装链代码,请在 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/

但是,在 code/go 更新之后(我实际上已将其从 Car 更改为具有全新字段的 Ticket 对象,并更新了所有相关的链命令以反射(reflect)), teardown ,然后再次启动,我仍然看到所有旧字段。

我在这里缺少什么?

以下是更改为“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: ['']
};

最佳答案

我建议两种可能的方法:

  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
  • 清理旧链代码容器并重新安装更新版本的备用链代码。
  • 您可以使用以下命令删除旧的链码容器镜像:

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

    关于docker - Hyperledger Fabric 更改 fabcar 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575813/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com