Bluemix区块链:我该如何查询?

时间:2016-10-04 02:27:22

标签: post ibm-cloud blockchain hyperledger hyperledger-fabric

当我初始化时,我需要知道如何查询以下调用(AC(123456A)或(user_type1_c19a5f0b7e):

   {
        "jsonrpc": "2.0",
        "method": "deploy",
        "params": {
            "type": 1,
            "chaincodeID": {
                "path": "https://github.com/johndoe/learn-chaincode/finished"
            },
            "ctorMsg": {
                "function": "init",
                "args": [
                    "hi there"
                ]
            },
            "secureContext": "user_type1_191b8c2993"
        },
        "id": 1
    }

这是我的(成功)调用:

{
    "jsonrpc": "2.0",
    "method": "invoke",
    "params": {
        "type": 1,
        "chaincodeID": {
            "name": "b42b506c13fg1157520d585841a691f4b598d9aac53adc95277ed710c7f1f5aaa59a89a8dca8ddf3e46d5241562f3316956a04ad8a33181d30cb01b1c4c9adb2f"
        },
        "ctorMsg": {
            "function": "AC(123456A)",
            "args": [
               "AcctId:949392949233 ","Year2015 Sem1 ", "IT1234:A ", " IT2345:B+ ", "IT3456:A ", "Year 2015 Sem2 ", "IT4567:B ", "IT5678: B", "IT5678:A ","Year 2016 Sem1 ", "IT6789:C ", "IT7890:C ", "Cumulative GPA: 3"

            ]
        },
        "secureContext": "user_type1_c19a5f0b7e"
    },
    "id": 4
}

以下是我正在尝试的查询,但我无法获得我想要的结果:

{
    "jsonrpc": "2.0",
    "method": "query",
    "params": {
        "type": 1,
        "chaincodeID": {
            "name": "b42b506c13fg1157520d585841a691f4b598d9aac53adc95277ed710c7f1f5aaa59a89a8dca8ddf3e46d5241562f3316956a04ad8a33181d30cb01b1c4c9adb2f"
        },
        "ctorMsg": {
            "function": "AC(123456A)",
            "args": [
               "AcctId:949392949233 "
            ]
        },
        "secureContext": "user_type1_c19a5f0b7e"
    },
    "id": 2
}

这是查询的回复。

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32003,
    "message": "Query failure",
    "data": "Error when querying chaincode: Error:Transaction or query returned with failure: Received unknown function query"
  },
  "id": 2
}

目前,我正在尝试本教程,该教程由IBM Bluemix提供: https://github.com/IBM-Blockchain/learn-chaincode

我尝试过使用他们的示例,并调用(成功)以满足我的需求。我尝试了之前提到的Bluemix教程,并且我能够实现文档中所述的内容。因此,我决定调用一些东西来满足自己的需要。但是,我无法向AC(123456A)或user_type1_c19a5f0b7e查询人员,例如" Year2015 Sem1"," IT1234:A"," IT3456:B +& #34;等等 。如何查询(调用)以满足我自己的需求?

1 个答案:

答案 0 :(得分:0)

我们的理解是您在IBM Bluemix上使用IBM Blockchain Starter Developer Network。使用此环境,已遵循“学习Chaincode”教程(https://github.com/IBM-Blockchain/learn-chaincode)。我们希望在遵循本教程时确认我们对您的结果的理解。我们的理解是,在遵循本教程时,Init,Invoke和Query链代码函数都按预期运行。理解是否正确可以成功地遵循编写的教程?

然后我们了解到示例链代码被修改为应用不同的逻辑。对于使用AC(123456A)功能且用户为user_type1_c19a5f0b7e的此修改后的链代码的Invoke似乎已成功。但是,也使用AC(123456A)功能的查询未成功。这种理解是否正确?

是否可以提供一些额外的细节,以便进一步考虑?

  1. 您是否编写了自己的自定义链码?如果是这样,是否可以提供此链码(包括AC(123456A)功能定义)?

  2. AC(123456A)功能是否与其他链码位于同一Go源文件中?

  3. 我们想象名为user_type1_c19a5f0b7e的用户已经注册,因为Invoke确实有效。是否有注册此用户的步骤,如“学习Chaincode”教程的“安全注册”部分所述?

  4. AC(123456A)是否可以向分类账(通过Invoke)写入值并从分类账中读取值(通过查询尝试)?