当前位置: 首页 > 面试题库 >

Hyperledger Fabric更改fabcar示例

宗政欣可
2023-03-14
问题内容

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

要安装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/

但是,在代码/执行更新之后(实际上我已经将其从Car更改为具有全新字段的Ticket对象,并更新了所有相关的链式命令以进行反映),拆解,然后再次启动,我仍然看到所有旧字段。

我在这里想念什么?

这是将代码更改为“调用”功能上的票证的摘录

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.")
}

但是,这样做我只会收到消息“无效的智能合约功能名称”。调用w /时:

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
  1. 清理旧的chaincode容器,然后重新安装备用chaincode的更新版本。

您可以使用以下命令删除旧的chaincode容器映像:

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


 类似资料:
  • 使用anaconda(为python安装)时,当我切换到虚拟环境时: 它改变了我的提示,并在PS1的开头添加了(my_env)。 我尝试将添加到我的bashrc中,但没有帮助。 有什么想法吗?

  • 看起来错误是在执行时生成的: 我假设我使用的是最新版本的hyperledger-fabric V2.0.0,因为我在Fabriz-Samples存储库的主分支中。我做错了什么?

  • 问题内容: 我用。字段之一是: 我需要更改其显示类型。我不想在显示中使用(或在Python 2中),而是要显示曲目的名称和日期。 我该怎么做? 问题答案: 子类并重写以返回曲目名称和日期。然后在中使用新字段。

  • 是否可以更改编辑文本字段中显示的提示的字体?我想在xml本身中设置字体。

  • 本文向大家介绍vue 更改连接后台的api示例,包括了vue 更改连接后台的api示例的使用技巧和注意事项,需要的朋友参考一下 vue 更改连接后台的api,是更改在config文件夹下的index.js文件中的proxyTable的值。 如下代码,其中 10.1.166.88:8888/springTimes 为后台暴露出来的appi。 更改后需要重新 npm run dev 才起效果。 以上这