2016-10-03 1 views
0

В настоящее время я работаю с цепочным кодом Hyperledger и пытаюсь получить хотя бы любую информацию о текущем пользователе, который вызывает/запрашивает цепочку. По какой-то причине пример сетевого кода asset_management.go приводит к ошибке «ERRO 031 Got error: Invalid admin certificate. Empty.» У меня есть security.enabled и security.privacy установлен true и службы членства. Я зарегистрировал «admin».Код цепи Hyperledger не получает текущие метаданные пользователя

Вот строки в коде, где она происходит

// Set the admin 
// The metadata will contain the certificate of the administrator 
adminCert, err := stub.GetCallerMetadata() 
if err != nil { 
    myLogger.Debug("Failed getting metadata") 
    return nil, errors.New("Failed getting metadata.") 
} 
if len(adminCert) == 0 { 
    myLogger.Debug("Invalid admin certificate. Empty.") 
    return nil, errors.New("Invalid admin certificate. Empty.") 
} 

У вас есть какие-либо идеи, как сделать chaincode возвращают данные для stub.GetCallerMetadata()?

ответ

0

«Метаданные» должны быть предоставлены в вашей команде развертывания, пример «развернуть» для asset_management_with_roles:

curl -XPOST -d ‘{“jsonrpc": "2.0", "method": "deploy", "params": {"type": 1,"chaincodeID": {"path": "github.com/hyperledger/fabric/examples/chaincode/go/asset_management_with_roles","language": "GOLANG"}, "ctorMsg": { "args": ["init"] }, "metadata":[97, 115, 115, 105, 103, 110, 101, 114] ,"secureContext": "assigner"} ,"id": 0}' http://localhost:7050/chaincode 

В этой команде «метаданные» содержит UTF-8 закодированную строку «назначени». Эта строка будет сохранена в регистре, и только пользователь с такой ролью сможет выполнить функцию «назначить» в смарт-контракте.

Пример "asset_management" предполагает, что вы предоставите сертификат в поле метаданных. Для получения сертификата вы можете использовать шаг 9, описанный в соответствующем вопросе: How is running the asset_management.go different from running a simple chaincode like chaincode_example02.go

+0

Большое спасибо, Сергей. Похоже, это то, что мне нужно. – Andriian

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