HyperLedger fabric Java sdk

问题描述 投票:0回答:1

我正在使用Hyperledger Fabric 1.4v,在一个组织中运行两个对等体(peer0,peer1),每个对等体都在本机设置中的单独vm上运行。Orderer也在单独的vm上运行。在Web客户端中,使用java sdk执行链代码,并使用fabric-ca对每个用户进行身份验证。通过Java sdk执行chaincode时,我遇到延迟问题(需要一分钟以上),但通过shell脚本执行chaincode时,它可以正常工作。

 try {
                Wallet wallet = Wallet.createFileSystemWallet(walletPath);
                Gateway.Builder builder = Gateway.createBuilder();
                builder.identity(wallet, "admin").networkConfig(networkConfigPath).discovery(true);

                try (Gateway gateway = builder.connect()) {

                    Network network = gateway.getNetwork(channelName);
                    logger.info("ChannelName:::" + channelName);
                    Contract contract = network.getContract(chaincodeName);
                    logger.info("ChaincodeName:::" + chaincodeName);

                    result = contract.evaluateTransaction(chaincodeMethod);
                    logger.info("ChaincodeExecutor::::Result:::" + result);

                }

            } catch (Exception e) {
                logger.info("ChaincodeExecutor::::ERROR::" + e.getMessage());
                e.printStackTrace();
            }
hyperledger-fabric hyperledger-fabric-ca hyperledger-chaincode chaincode hyperledger-fabric-sdk-java
1个回答
0
投票

Chaincode在其自己的docker容器上运行,该容器由对等方启动。第一次,如果尚未启动该容器(针对该链码版本),则必须启动该容器,因此需要花费时间。

第二个请求(在同一个对等方上)会花费很多时间吗?如果是这样,则必须检查您的链码,特别是丰富的查询(设置索引并改善查询)。与网络相关和与硬件相关的资源也很重要。

您客户的代码对您的问题贡献不大。

© www.soinside.com 2019 - 2024. All rights reserved.