首页 文章

Hyperledger Fabric 1.0如何按名称获取 Channels

提问于
浏览
2

从java SDK创建通道

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

在docker容器日志通道中成功创建

问题:

  • 无法创建具有相同名称的 Channels - 获取400 BAD REQUEST Channels 是否存在?

  • 我无法通过名称获取 Channels hfclient.getChannel(“”)= null

  • 如何创建 Channels ?

  • 如何从docker容器中查看现有 Channels 列表?

1 回答

  • 2

    您可以通过调用CSCC(Configuration System 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);
    

相关问题