Выполнение hyperledger fabri c java примеры кода шлюза. Идентификатор шлюза должен быть установлен. - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь написать приложение-шлюз fabri c в базовой сети c, мой код выглядит следующим образом.


     public static void main(String[] args) throws Exception {
       // Load a file system based wallet for managing identities.
       Path walletPath = Paths.get("wallet");
       Wallet wallet = Wallet.createFileSystemWallet(walletPath);

       // load a CCP
       Path networkConfigPath = Paths.get("..", "..", "basic-network", "connection.yaml");

       Gateway.Builder builder = Gateway.createBuilder();
       builder.identity(wallet, "user1");
       builder.networkConfig(networkConfigPath).discovery(true);

       // create a gateway connection
       try (Gateway gateway = builder.connect()) {
          System.out.println("Hello");
       }
       catch(Exception e) {
          e.printStackTrace();
     }
   }

при запуске кода выдается ошибка

Exception in thread "main" java.lang.IllegalStateException: The gateway identity must be set

Пожалуйста, помогите мне найти, как установить идентификацию этой сети?

my connection.yaml:

name: basic-network
version: 1.0.0
client:
    organization: Org1
    connection:
        timeout:
            peer:
                endorser: '300'
            orderer: '300'
channels:
    mychannel:
        orderers:
        - orderer.example.com
        peers:
            peer0.org1.example.com: {}
organizations:
    Org1:
        mspid: Org1MSP
        peers:
        - peer0.org1.example.com
        certificateAuthorities:
        - ca.example.com
orderers:
    orderer.example.com:
        url: grpc://localhost:7050
peers:
    peer0.org1.example.com:
        url: grpc://localhost:7051
certificateAuthorities:
    ca.example.com:
        url: http://localhost:7054
        caName: ca.example.com

есть папка с именем User1@org1.example.com, расположенная в basic-network/crypto-config/peerOrganizations/org1.example.com/users/

1 Ответ

2 голосов
/ 22 января 2020

Хорошо, я понял вашу проблему. Вы неправильно запускаете пример fabcar из fabri c samples.

Внутри папки Java есть 2 каталога: кошелек и sr c. Внутри sr c вы найдете свой код, в то время как в кошельке вы будете хранить свои пользовательские сертификаты.

Перед запуском приложения вы должны создать сертификаты, а у вас в данный момент нет сертификатов. Внутри папки, в которой вы запускаете ClientApp. java, вы найдете 2 других файла: EnrollAdmin. java и RegisterUser. java.

Прежде всего, запустите EnrollAdmin. java. Это свяжется с вашим центром сертификации и получит сертификаты для администратора. Затем запустите RegisterUser. java для создания пользовательских сертификатов.

Ваше ClientApp в настоящее время ищет user1 сертификатов, но у вас нет user1 в папке кошелька. После этого снова запустите ClientApp. java и все будет в порядке. В своем комментарии вы упомянули о папке User1@org1.example.com внутри basic-network/crypto-config/peerOrganizations/org1.example.com/users/, но вам не следует использовать ее для этого примера, так как вам нужны сертификаты X509, выпущенные из вашего SDK, связываясь с CA.

...