2016-08-20 4 views
1

Я пытался настроить Blocchain Hyperledger на своем ноутбуке, выполнив настройку Windows, смог доставить изображения докеров и запустить их, но когда я пытаюсь развернуть предоставленные примеры, всегда отбрасывает ошибку на входе JSON, как показано ниже.HyperLedger-Fabric ChainCode Deployment - Base64 error

peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' 

ответ:

[email protected]:~/go/$ docker exec -it aa413f4c4289 bash 
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric# peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' 

04:30:55.822 [logging] LoggingInit -> DEBU 001 Setting default logging level to DEBUG for command 'chaincode' Error: Non-empty JSON chaincode parameters must contain exactly 1 key: 'Args' 

Я попытался в POSTMAN от HOST машины:

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

получил ответ как

{"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse error","data":"Error unmarshalling chaincode request payload: illegal base64 data at input byte 0"}," 

Это похоже на сообщение об ошибке и я не мог решить эту проблему l, создавая новую должность в качестве консультанта, пожалуйста, помогите мне исправить эту проблему.

Similar issue reported but that also doesn't answer

ответ

2

В версии запоздалаяа ткани в формате просьба был изменен. Имя функции должно быть в Args, и все параметры должны быть закодированы в base64.
Вместо:

{"function":"init","args":["a", "1000", "b", "2000"]}}

аргументы для команды развертывания будет выглядеть следующим образом:

{"args":['aW5pdA==', 'YQ==', 'MTAwMA==', 'Yg==', 'MjAwMA==']}

Update: Формат был изменен снова. Кодировка Base64 больше не нужна. правильная нагрузка в последней Ткань:

{“args”:['init', 'a', '100', 'b', '100']}

+0

Большое спасибо Сергей !, его работает нормально. Вот фактический код '{ "jsonrpc": "2,0", "метод": "развернуть", "Params": { "тип": 1, "chaincodeID": { "путь" : "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" }, "ctorMsg": { "args": ["aW5pdA ==", "YQ ==", "MTAwMA ==" , "Уд ==", "MjAwMA =="] } }, "ID": 1 } ' – Logumay

+1

Сергей, я видеть, что в обоих форматах поддерживаются: ' { "функции": "INIT", «args»: [«a», «1000», «b», «2000»]}} ' , а также как '{" args ": [" init "," a "," 1000 "," b "," 2000 "]}}' – Mil4n

+0

@ Mil4n Хм, это правильно. Похоже, что оба формата теперь поддерживаются. Просто протестирован с помощью «function, args» и «args», и оба запроса были приняты. Спасибо за информацию. –

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