2016-10-04 4 views
0

나는 내가 init을 때 다음과 같은 호출 (AC (123456A) 또는 (user_type1_c19a5f0b7e)를 쿼리하는 방법을 알아야이 :Bluemix blockchain :이 질문에 어떻게 답할 수 있습니까?

여기
{ 
     "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 
} 

쿼리에 대한 응답의를

https://github.com/IBM-Blockchain/learn-chaincode :
{ 
    "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 
} 

515,는 지금, 나는 IBM Bluemix에서 제공하는이 튜토리얼을 시도하고있다.

나는 그들의 예제를 사용하여 init를 시도했고 나의 필요에 맞게 (성공한) 호출한다. Bluemix 튜토리얼을 보았습니다.이 튜토리얼은 이전에 언급했는데, 문서에 언급 된 내용을 달성 할 수있었습니다. 그래서 나는 내 자신의 필요에 맞게 뭔가를 부르기로 결정했다. 그러나 나는 "Year2015 Sem1", "IT1234 : A", "IT3456 : B +"등과 같은 항목을 보여주는 사람 AC (123456A) 또는 user_type1_c19a5f0b7e를 쿼리 할 수 ​​없습니다. 내 필요에 맞게 쿼리 (호출) 할 수 있습니까?

답변

0

IBM Bluemix에서 IBM Blockchain Starter Developer Network를 사용하고 있습니다. 이 환경을 사용하여 "학습 체인 코드"자습서 (https://github.com/IBM-Blockchain/learn-chaincode)를 준수했습니다. 튜토리얼을 수행 할 때 결과에 ​​대한 이해를 확인하고자합니다. 튜토리얼을 수행 할 때 Init, Invoke 및 Query 체인 코드 함수가 모두 예상대로 작동한다는 것을 알았습니다. 서면으로 작성된 튜토리얼을 성공적으로 따라 올 수 있다는 이해가 정확합니까?

그런 다음 예제 체인 코드가 다른 로직을 적용하도록 수정되었음을 이해합니다. user_type1_c19a5f0b7e의 사용자와 함께 AC (123456A) 기능을 사용하는이 수정 된 체인 코드에 대한 호출이 성공적으로 수행 된 것 같습니다. 그러나 AC (123456A) 함수도 사용하는 쿼리가 성공하지 못했습니다. 이 이해가 맞습니까?

추가 정보가 제공되어 더 이상 고려 될 수 있습니까?

  1. 사용자 정의 체인 코드를 작성 했습니까? 그렇다면이 체인 코드 (AC (123456A) 기능 정의 포함)를 제공 할 수 있습니까?

  2. AC (123456A) 기능은 나머지 체인 코드와 동일한 Go 소스 파일에 있습니까?

  3. user_type1_c19a5f0b7e라는 사용자가 Invoke가 작동 한 후 등록되었다고 가정합니다. "Learn Chaincode"자습서의 "보안 등록"섹션에 명시된대로이 사용자를 등록하는 단계가 있습니까?

  4. AC (123456A) 함수는 모두 원장에게 (Invoke를 통해) 값을 쓰고 원장의 값을 쿼리 (쿼리를 통해 시도 됨)에서 읽을 수 있습니까?