2016-09-09 6 views
0

я использовал равный chaincode развертывания для запуска идти Src пример, я получил правильный результат, тогда я попробовал пример Java Src, enter image description herehyperledger ошибка ткани Java chaincode

enter image description here

я получил chaincode, но когда я использовал этот chaincode для запроса, он показал мне:

Error: Error querying chaincode: rpc error: code = 2 desc = "Error:Failed to launch chaincode spec(Could not get deployment transaction 
a3a350ff98660bcade4570acd507d0b380f374ea9399194b39e0301135849feb0732 - LedgerError - ResourceNotFound: ledger: resource not found)" 

я использую поле докер-инструмент для создания envirement для hyperledger ткани.

+0

пожалуйста, вы можете добавить более подробную информацию? вы запускаете его в режиме «dev» или в обычном режиме? как вы запустили сверстников? какое имя вы предоставляете при запросе? –

+0

также вам нужно предоставить '-l java', если вы развертываете его с помощью кода Java –

+0

Да, я использовал -l java и -u jim, в обычном режиме. Когда -l java, init func возвращает цепочку кодов, но когда я использовал код цепи для проверки запроса, он показывает мне ошибку и никакого результата. когда я тестирую функцию func с кодом go src, я могу получить результат. – teddy

ответ

3

Chaincode ID генерируется в виде хэш-кода для нескольких параметров (путь к chaincode + аргументы + исходный код) , если вы видите в ответ на «развернуть» команду что-то вроде этого:

{“jsonrpc":"2.0","result":{"status":"OK","message":"8d803651564981858842409c6a5c3bf3f6ea69f90a6a7bfb672c2c8c3b6eb4c48105c5807e52f1a5ffdce0e86966688019a6c4013ffca524d5896e0b9ae201c6"} 

Это означает, что ваш запрос на развертывание транзакции принимается. С этого момента Fabric попытается создать контейнер для вашего сетевого кода и запустить его в докере. В случае, если что-то пойдет не так, и контейнер не запущен, вы получите следующий ответ:

“LedgerError - ResourceNotFound: ledger: resource not found“ for all your commands. 

В вашем примере вы пытаетесь развернуть Java chaincode в GO контейнере и в результате реакции является:

(INFO 002 Deploy result: type GOLANG chaincodeID:...) 

Это происходит потому, что ткань не использует «язык» переменную для определения типа платформы (действительна для версии, которая была доступна 09/09/2016)

мне удалось развернуть Java Chai ncode используя следующий запрос REST:

curl -XPOST -d ‘{"jsonrpc": "2.0", "method": "deploy", "params": {"type": 4,"chaincodeID": {"path": "/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/java/SimpleSample","language": "java"}, "ctorMsg": { "args": ["init", "a", "100", "b", "1000"] }},"id": 0}' http://localhost:7050/chaincode

type:4 означает, что эта chaincode является Java и соответствующий контейнер должен быть использован. (Для GO мы должны использовать type:1)

Имейте в виду, что Java в настоящее время работает только с security.enabled=false и security.enabled=true вы увидите следующее сообщение об ошибке:

[dockercontroller] deployImage -> ERRO 095 Error building images: API error (500): {"message":"The Dockerfile (Dockerfile) cannot be empty"} 
+0

спасибо. Я попробую запрос, что вы сказали, это показывает мне: ERRO 03e Ошибка при создании изображений: Ошибка: гипергеллер/fabric-javaenv: x86_64- не найден 01: 33: 12.533 [dockercontroller] deployImage -> ERRO 03f Image Output: Шаг 1: ОТ hyperledger/ткань-javaenv: x86_64- Натяжение хранилище docker.io/hyperledger/fabric-javaenv но докер тянуть docker.io/hyperledger/fabric-javaenv является useness. – teddy

+0

Возможно, что ваша среда устарела. Можете ли вы попробовать проверить последнюю версию с помощью gerrit и восстановить команды peer и membersrvc? –

+0

хорошо, я попробую. – teddy

Смежные вопросы