0

当我初始化这个时,我需要知道如何查询以下调用(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 。

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

4

1 回答 1

0

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

然后我们了解到示例链代码已被修改以应用不同的逻辑。对这个使用 AC(123456A) 函数和 user_type1_c19a5f0b7e 用户的修改链代码的调用似乎已经成功。但是,也使用 AC(123456A) 函数的查询不成功。这种理解正确吗?

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

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

  2. AC(123456A) 函数是否与链代码的其余部分位于同一个 Go 源文件中?

  3. 我们假设名为 user_type1_c19a5f0b7e 的用户已注册,因为 Invoke 确实有效。注册该用户的步骤是否按照“学习链码”教程的“安全注册”部分中的说明进行?

  4. AC(123456A) 函数能否将值写入分类帐(通过调用)和从分类帐读取值(通过查询尝试)?

于 2016-10-06T13:31:00.893 回答