Ошибка: криптографический пакет не был назначен этому клиенту - PullRequest
0 голосов
/ 09 мая 2019

Я скачал hyperledger-fabric v2.0 хранилище fabric-samples, запустил сеть, следовал примеру fabtoken, кажется, все работает должным образом.

Проблемы начались, когда я попытался изменить пример fabtoken, чтобы поддержать создание дополнительных пользователей для организации по умолчанию.Я пытаюсь зарегистрировать новых пользователей в организации в сети, следуя инструкции Как использовать общий профиль подключения учебник для Node SDK.Однако метод initCredentialStores () , похоже, не инициализирует поле crypto_suite файла Client.js , из-за которого я получаю Ошибка: криптографический пакет не был назначен этому клиенту ошибка, когда я пытаюсь вызвать client.getCertificateAuthority () метод.

Я попытался отладитьчерез инициализацию хранилищ учетных данных ( initCredentialStores () метод).Кажется, проблема возникает, когда вызывается const crypto_suite = BaseClient.newCryptoSuite (); , но я не могу определить основную причину ошибки.

Функция RegiserNewUser:

async function registerNewUser(client, caService, admin, uname){
    await client.setUserContext(admin, true);

    client.loadFromConfig('/home/todorovic/fabric-samples/basic-network/connection.yaml');
    client.loadFromConfig('/home/todorovic/fabric-samples/basic-network/org1.yaml')
    client.initCredentialStores().then(_ => {console.log('zavrsio init');});

    const ca_client = client.getCertificateAuthority();
    ca_client.register({enrollmentID: uname, affiliation: 'Org1'}, admin)
    .then((secret) => 
        {return client.setUserContext({username: uname, password: secret});
    });

}

connection.yaml остается неизменным, а добавленный мной файл Org1.yaml выглядит так:

name: "Org1 Client"
version: "1.0"

client:
  organization: Org1
  credentialStore:
    path: "/tmp/hfc-cvs/org1"
    cryptoStore:
      path: "/tmp/hfc-cvs/org1"

1 Ответ

0 голосов
/ 09 мая 2019

Вам нужно изменить эту строку в вашем примере

client.initCredentialStores().then(_ => {console.log('zavrsio init');});

до

await client.initCredentialStores();

в противном случае хранилища учетных данных не будут инициализированы до того, как ваш код попытается получить центр сертификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...