Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
issue
issue
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 18
    • Issues 18
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

新注册的用户请输入邮箱并保存,随后登录邮箱激活账号。后续可直接使用邮箱登录!

  • chainmaker
  • issueissue
  • Issues
  • #1473

Closed
Open
Opened Sep 25, 2025 by 18730970177@18730970177

java sdk create chainClient error:no node can use

#区块链配置 #链 ID chain_client.chain_id=testChain001 #组织 ID chain_client.org_id=TestCMorg1 #客户端用户私钥路径 chain_client.user_key_file_path=chain/local/crypto-config/TestCMorg1/user/cmtestuser1/cmtestuser1.tls.key #客户端用户证书路径 chain_client.user_crt_file_path=chain/local/crypto-config/TestCMorg1/user/cmtestuser1/cmtestuser1.tls.crt #客户端用户交易签名私钥路径 chain_client.user_sign_key_file_path=chain/local/crypto-config/TestCMorg1/user/cmtestuser1/cmtestuser1.sign.key #客户端用户交易签名证书路径 chain_client.user_sign_crt_file_path=chain/local/crypto-config/TestCMorg1/user/cmtestuser1/cmtestuser1.sign.crt #同步交易结果模式下,轮训获取交易结果时的最大轮训次数 chain_client.retry_limit=-1 #同步交易结果模式下,每次轮训交易结果时的等待时间 chain_client.retry_interval=-1 #节点地址 chain_client.node_address=192.168.60.130:12301 #TLS hostname chain_client.tls_host_name=chainmaker.org #信任证书池路径 chain_client.trust_root_paths=chain/local/crypto-config/TestCMorg1/ca/ca.crt #数据归档链外存储相关配置 chain_client.archive.dest=root:123456:localhost:3306 chain_client.archive.type=mysql chain_client.archive.secret_key= #grpc 客户端接收消息时,允许单条 message 大小的最大值 (MB) chain_client.rpc_client.max_receive_message_size=16 #合约名称 chain_client.contract_name=lftest002 #保存方法 chain_client.save_method=save #查询方法 chain_client.query_method=find_by_file_hash

代码: byte[][] tlsCaCerts = new byte[][]{FileUtils.getResourceFileBytes(orgCertPath)};

            RpcClientConfig rpcClientConfig = new RpcClientConfig();
            rpcClientConfig.setMaxReceiveMessageSize(maxReceiveMessageSize);

            ArchiveConfig archiveConfig = new ArchiveConfig();
            archiveConfig.setDest(archiveDest);
            archiveConfig.setType(archiveType);
            archiveConfig.setSecretKey(archiveSecretKey);

            List<NodeConfig> nodeConfigList = new ArrayList<>();
            List<String> nodeAddressList = StrUtil.split(nodeAddress, ";");
            for(String nodeAddr : nodeAddressList){
                NodeConfig nodeConfig = new NodeConfig();
                nodeConfig.setTrustRootBytes(tlsCaCerts);
                nodeConfig.setTlsHostName(nodeHostName);
                //RPC 连接是否启用双向 TLS 认证
                nodeConfig.setEnableTls(true);
                nodeConfig.setNodeAddr(nodeAddr);
                nodeConfigList.add(nodeConfig);
            }

            ChainClientConfig chainClientConfig = new ChainClientConfig();
            chainClientConfig.setOrgId(orgId);
            chainClientConfig.setChainId(chainId);
            chainClientConfig.setUserKeyBytes(FileUtils.getResourceFileBytes(userKeyPath));
            chainClientConfig.setUserCrtBytes(FileUtils.getResourceFileBytes(userCertPath));
            chainClientConfig.setUserSignKeyBytes(FileUtils.getResourceFileBytes(userSignKeyPath));
            chainClientConfig.setUserSignCrtBytes(FileUtils.getResourceFileBytes(userSignCertPath));
            chainClientConfig.setRetryLimit(retryLimit);
            chainClientConfig.setRetryInterval(retryInterval);
            chainClientConfig.setRpcClient(rpcClientConfig);
            chainClientConfig.setArchive(archiveConfig);
            chainClientConfig.setNodes(nodeConfigList.stream().toArray(NodeConfig[]::new));

            SdkConfig sdkConfig = new SdkConfig();
            sdkConfig.setChainClient(chainClientConfig);

            if (chainClient == null) {
                chainClient = chainManager.createChainClient(sdkConfig);
            }

chainClient.invokeContract(contractName, saveMethod, txId, params, rpcCallTimeout, syncResultTimeout);

异常信息: 2025-09-25 09:56:04.953[supplier][traceId=N/A][commons-pool-evictor]WARN org.chainmaker.sdk.GrpcClientFactory-===============创建连接失败,把节点加入异常节点grpcs://192.168.60.130:12301 2025-09-25 09:56:04.954[supplier][traceId=N/A][commons-pool-evictor]WARN org.chainmaker.sdk.GrpcClientFactory-create chainClient error:no node can use

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: chainmaker/issue#1473

Copyright © 2021 ChainMaker Org. All Rights Reserved. 长安链 版权所有。