2016-09-29 2 views
1

У меня есть 4 сверстника с помощью руководства по настройке сети Fabric. Мне удалось развернуть CC, а затем вызвать функцию вызова с помощью вызовов REST API.Ошибка при запросе HyperLedger Fabric Blockchain - «Не удалось получить транзакцию развертывания для цепочки»

Хотя оба сообщения привели к успеху, сообщение запроса просто терпит неудачу. Это странно, так как он отлично работает, когда один и тот же набор команд применяется к одному одноранговому узлу, созданному в режиме dev (запуск однорангового узла --peer-chaincodedevev).

Обратите внимание, что 4 узла настроены с использованием контейнеров Docker. Вот пример того, что ответ JSON для запроса выглядит следующим образом:

{ 
"jsonrpc":"2.0", 
"error":{ 
"code":-32003, 
"message":"Query failure", 
"data":"Error when querying chaincode: Error:Failed to launch chaincode spec(Could not get deployment transaction for 04233c6dd8364b9f0749882eb6d1b50992b942aa0a664182946f411ab46802a88574932ccd75f8c75e780036e363d52dd56ccadc2bfde95709fc39148d76f050 - LedgerError - ResourceNotFound: ledger: resource not found)" 
}, 
"id":5 
} 

Когда я выполнил GET вызов для получения данных для транзакции на основе хэша извлеченного после Invoke вызвать ответ говорит, что не может найти указанной транзакции.

Просмотр данных в блоках дает блок, который, как я считаю, не содержит данных, что означает, что транзакция развертывания просто не удалась.

EDIT: Ниже приводится PARAMS прошли через JSON для развертывания в URL http://172.17.0.2:7050/chaincode (POST)

{ 
"jsonrpc":"2.0", 
"method":"deploy", 
"params":{ 
"type":1, 
"chaincodeID":{ 
"path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" 
}, 
"ctorMsg":{ 
"function":"init", 
"args":[ 
"a", 
"100", 
"b", 
"200" 
] 
} 
}, 
"id":1 
} 
+0

Не могли бы вы показать команду, которую используете для развертывания? –

+0

@SufiyanGhori Ниже приводится команда я передаю с помощью REST на URL: http://172.17.0.2:7050/chaincode (POST) { "jsonrpc": "2,0", "метод": "развернуть", "Params": { "тип": 1, "chaincodeID": { "путь": "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" }, "ctorMsg": { "функции": "INIT", "арг": [ "а", "100", "б", "200"] } }, "идентификатор": 1 } – virajkamat

+0

это кажется нормально. не могли бы вы рассказать нам, какую версию ткани вы используете? –

ответ

0

Пожалуйста, обратите внимание на протоколирования при развертывании chaincode, если вы видите сообщение Error building images: Tag latest not found in repository docker.io/hyperledger/fabric-baseimage., тогда я предполагаю, что ваша проблема связана с отсутствием гиперлебера изображения/структуры базы данных докеров.

решить proble, просто потяните hyperledger/ткань-baseimage изображения и тег, как последняя

docker pull hyperledger/fabric-baseimage:x86_64-0.2.2 
docker tag <image_id> hyperledger/fabric-baseimage:latest 

В основном, при развертывании chaincode, запросов равных узловые Docker хоста для запуска ткани-baseimage для запуска кода цепи. вы можете docker ps, и вы увидите, что dev-node_name-04233c6dd8364b9f0749882eb6d1b50992b942aa0a664182946f411ab46802a88574932ccd75f8c75e780036e363d52dd56ccadc2bfde95709fc39148d76f050 запущен, если вы можете успешно развернуть цепочный код.