Hyperledger Fabric получает закрытый ключ пользователя из версии Node.js SDK 2.2

Я создаю приложение Node.js, использующее версию Hyperledger Fabric SDK 2.2, которая взаимодействует с сетью блокчейнов.

Чего я хочу добиться, так это получить закрытый ключ пользователя, делающего запрос из приложения Node.js, после получения идентификатора кошелька.

// Create a new file system based wallet for managing identities.
      const walletPath = path.join(process.cwd(), 'wallet');
      const wallet =  await Wallets.newFileSystemWallet(walletPath);
      logger.info(`API/` + requestType + `: Wallet path: ${walletPath}`);

      // Check to see if we've already enrolled the user.
      const userExists = await wallet.get(in_username);
      if (!userExists) {
          logger.info('API/` + requestType + `: An identity for the user: '+in_username+' does not exist in the wallet');
          //return 'An identity for the user: "'+in_username+'" does not exist in the wallet';
          throw new Error('An identity for the user: "'+in_username+'" does not exist in the wallet');
      }

      if (userExists && userExists.type === 'X.509') {
        console.info("userPrivateKey 1 : " + userExists.type);
        
        const privateKey = (userExists as X509Identity).credentials.privateKey;

        console.info("userPrivateKey 1 : " + privateKey);

      }

Итак, я видел из документации приведенный выше пример получения закрытого ключа. Я успешно извлекаю личность и получаю тип сертификата, который действительно является X509.

Но после этого я не могу преобразовать или преобразовать удостоверение в X509 Identity, чтобы получить закрытый ключ.

Сначала я не могу продолжить, так как эта ошибка появляется в строке:

 const privateKey = (userExists as X509Identity).credentials.privateKey;

Ошибка:

Type assertion expressions can only be used in TypeScript files.

Я не эксперт в Node.js, и меня проинформировали, что это может быть невозможно «привести». Но я в замешательстве, так как я видел это в документации SDK Hyperledger Fabric Node.

Кто-нибудь знает какое-либо решение по этому поводу или даже намек на то, как продолжить?

Спасибо

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я собирался слишком сложно!

Поскольку интерфейс X509 расширен из интерфейса Identity, работает следующий код:

const privateKey = userExists.credentials.privateKey;

Легче, чем кажется, а также сложно. Спасибо за ваше время!

Код с приведением типов в вашем вопросе был TypeScript, который расширяет JavaScript с помощью типов и некоторого синтаксического сахара. Используя простой JavaScript, просто игнорируйте типы.

bestbeforetoday 19.03.2022 10:11

Другие вопросы по теме