Hyperledger Fabric 1.0 как получить канал по имени

Создан канал из java SDK

Channel newChannel = hfclient.
                 newChannel("foo", anOrderer, channelConfiguration, channelConfig);

В канале журнала контейнера докеров успешно создан

Вопросы:

  1. Невозможно создать канал с таким же названием - получаю 400 BAD REQUEST Канал существует?
  2. Я не могу получить канал по имени hfclient.getChannel("") = null
  3. Как я могу получить созданный канал?
  4. Как я могу проверить список существующих каналов из контейнера докеров?

person scala    schedule 08.08.2017    source источник


Ответы (1)


Вы можете запросить доступные каналы, вызвав CSCC (Chaincode системы конфигурации), который предоставляет следующие API:

// These are function names from Invoke first parameter
const (
    JoinChain      string = "JoinChain"
    GetConfigBlock string = "GetConfigBlock"
    GetChannels    string = "GetChannels"
)

И код Java SDK для этого выглядит так:

    final Channel channel = client.newChannel("");

    channel.addOrderer(client.newOrderer("orderer0", "grpc://localhost:7050"));
    channel.addPeer(client.newPeer("peer0", "grpc://localhost:7051"));

    channel.initialize();

    final TransactionProposalRequest proposalRequest = client.
                                                   newTransactionProposalRequest();

    final ChaincodeID chaincodeID = ChaincodeID.newBuilder()
            .setName("cscc")
            .setPath("github.com/C0rWin/pgdays/chaincode/personsV3")
            .build();

    proposalRequest.setChaincodeID(chaincodeID);
    proposalRequest.setFcn("GetChannels");
    proposalRequest.setProposalWaitTime(TimeUnit.SECONDS.toMillis(10));

    final Collection<ProposalResponse> responses = channel.
                                          sendTransactionProposal(proposalRequest);
person Artem Barger    schedule 08.08.2017