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 23
    • Issues 23
    • 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
  • #77

Closed
Open
Opened Apr 19, 2022 by james james@gubanjie

我按照官方教程视频安装好了管理后台并安装了多节点合约部署成功,但是下载java-sdk-demo连接出了问题

我的管理后台地址 http://43.138.134.91/ 账号:admin 密码:a123456 一切按照官方文档安装并成功部署

拉去了java-sdk-demo 在启动的时候不能连接到远程管理端合约

sdk_config.yml 文件

chain_client:
  # 链ID
  chain_id: "chain01"
  # 组织ID
  org_id: "org1"
  # 客户端用户私钥路径
  # F:/java-cal/sdk-java-demo-master/src/main/resources/crypto-config/org1-node11/config/org1/certs/node/node11/node11.tls.key
  user_key_file_path: "F:/java-cal/sdk-java-demo-master/src/main/resources/crypto-config/org1-node11/config/org1/certs/node/node11/node11.tls.key"
  # 客户端用户证书路径
  user_crt_file_path: "F:/java-cal/sdk-java-demo-master/src/main/resources/crypto-config/org1-node11/config/org1/certs/node/node11/node11.tls.crt"
  # 客户端用户交易签名私钥路径(若未设置,将使用user_key_file_path)
  user_sign_key_file_path: "F:/java-cal/sdk-java-demo-master/src/main/resources/crypto-config/org1-node11/config/org1/certs/node/node11/node11.sign.key"
  # 客户端用户交易签名证书路径(若未设置,将使用user_crt_file_path)
  user_sign_crt_file_path: "F:/java-cal/sdk-java-demo-master/src/main/resources/crypto-config/org1-node11/config/org1/certs/node/node11/node11.sign.crt"

  retry_limit: 10
  # 同步交易结果模式下,每次轮训交易结果时的等待时间,单位:ms 删除此项或设为<=0则使用默认值 500
  retry_interval: 500
  # 当前签名证书的别名。当设置此配置项时,chain client 对象将自动检查链上是否已添加此别名,如果没有则自动上链此证书别名,
  # 并且后续所有交易都会使用别名,别名可降低交易体大小。若为空则不启用。
  #  alias: mycert5
  nodes:
    - # 节点地址,格式为:IP:端口:连接数
      node_addr: "43.138.134.91:12301"
      # 节点连接数
      conn_cnt: 10
      # RPC连接是否启用双向TLS认证
      enable_tls: true
      # 信任证书池路径
      trust_root_paths:
        - "F:/java-cal/sdk-java-demo-master/src/main/resources/crypto-config/org1-node11/config/org1/certs/ca"
#        - "/root/crypto-config/wx-org2.chainmaker.org/ca"
      # TLS hostname
      tls_host_name: "org2"
    - # 节点地址,格式为:IP:端口:连接数
      node_addr: "43.138.134.91:12302"
      # 节点连接数
      conn_cnt: 10
      # RPC连接是否启用双向TLS认证
      enable_tls: true
      # 信任证书池路径
      trust_root_paths:
        - "crypto-config/org1-node11/config/org1/certs/ca"
        - "crypto-config/org2-node21/config/org2/certs/ca"
      # TLS hostname
      tls_host_name: "org2"
  archive:
    # 数据归档链外存储相关配置
    type: "mysql"
    dest: "root:123456:localhost:3306"
    secret_key: xxx
  rpc_client:
    # grpc客户端最大接受容量(MB)
    max_receive_message_size: 16

initClient文件

package chainmaker.sdk.demo;

import org.chainmaker.sdk.ChainClient;
import org.chainmaker.sdk.ChainManager;
import org.chainmaker.sdk.User;
import org.chainmaker.sdk.config.NodeConfig;
import org.chainmaker.sdk.config.SdkConfig;
import org.chainmaker.sdk.utils.FileUtils;
import org.yaml.snakeyaml.Yaml;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


public class InitClient {


    static final String ADMIN1_KEY_PATH = "crypto-config/org1-node11/config/org1/certs/node/node11/node11.sign.key";
    static final String ADMIN1_CERT_PATH = "crypto-config/org1-node11/config/org1/certs/node/node11/node11.sign.crt";
    static final String ADMIN2_KEY_PATH = "crypto-config/org2-node21/config/org2/certs/node/node21/node21.sign.key";
    static final String ADMIN2_CERT_PATH = "crypto-config/org2-node21/config/org2/certs/node/node21/node21.sign.crt";
//    static final String ADMIN3_KEY_PATH = "crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key";
//    static final String ADMIN3_CERT_PATH = "crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt";

    static String ADMIN1_TLS_KEY_PATH = "crypto-config/org1-node11/config/org1/certs/node/node11/node11.tls.key";
    static String ADMIN1_TLS_CERT_PATH = "crypto-config/org1-node11/config/org1/certs/node/node11/node11.tls.crt";
    static String ADMIN2_TLS_KEY_PATH = "crypto-config/org2-node21/config/org2/certs/node/node21/node21.tls.key";
    static String ADMIN2_TLS_CERT_PATH = "crypto-config/org2-node21/config/org2/certs/node/node21/node21.tls.crt";
//    static String ADMIN3_TLS_KEY_PATH = "crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.tls.key";
//    static String ADMIN3_TLS_CERT_PATH = "crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.tls.crt";

    static final String ORG_ID1 = "org1";
    static final String ORG_ID2 = "org2";
//    static final String ORG_ID3 = "wx-org3.chainmaker.org";

    static String SDK_CONFIG = "sdk_config.yml";

    static ChainClient chainClient;
    static ChainManager chainManager;
    static User adminUser1;
    static User adminUser2;
    static User adminUser3;

    public static void inItChainClient() throws Exception {
        Yaml yaml = new Yaml();
        InputStream in = InitClient.class.getClassLoader().getResourceAsStream(SDK_CONFIG);

        SdkConfig sdkConfig;
        sdkConfig = yaml.loadAs(in, SdkConfig.class);
        assert in != null;
        in.close();

        for (NodeConfig nodeConfig : sdkConfig.getChainClient().getNodes()) {
            List<byte[]> tlsCaCertList = new ArrayList<>();
            if (nodeConfig.getTrustRootPaths() != null) {
                for (String rootPath : nodeConfig.getTrustRootPaths()) {
                    List<String> filePathList = FileUtils.getFilesByPath(rootPath);
                    for (String filePath : filePathList) {
                        tlsCaCertList.add(FileUtils.getFileBytes(filePath));
                    }
                }
            }
            byte[][] tlsCaCerts = new byte[tlsCaCertList.size()][];
            tlsCaCertList.toArray(tlsCaCerts);
            nodeConfig.setTrustRootBytes(tlsCaCerts);
        }

        chainManager = ChainManager.getInstance();
        chainClient = chainManager.getChainClient(sdkConfig.getChainClient().getChainId());

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

        adminUser1 = new User(ORG_ID1, FileUtils.getResourceFileBytes(ADMIN1_KEY_PATH),
                FileUtils.getResourceFileBytes(ADMIN1_CERT_PATH),
                FileUtils.getResourceFileBytes(ADMIN1_TLS_KEY_PATH),
                FileUtils.getResourceFileBytes(ADMIN1_TLS_CERT_PATH));

        adminUser2 = new User(ORG_ID2, FileUtils.getResourceFileBytes(ADMIN2_KEY_PATH),
                FileUtils.getResourceFileBytes(ADMIN2_CERT_PATH),
                FileUtils.getResourceFileBytes(ADMIN2_TLS_KEY_PATH),
                FileUtils.getResourceFileBytes(ADMIN2_TLS_CERT_PATH));

//        adminUser3 = new User(ORG_ID3, FileUtils.getResourceFileBytes(ADMIN3_KEY_PATH),
//                FileUtils.getResourceFileBytes(ADMIN3_CERT_PATH),
//                FileUtils.getResourceFileBytes(ADMIN3_TLS_KEY_PATH),
//                FileUtils.getResourceFileBytes(ADMIN3_TLS_CERT_PATH));
    }
}
Edited Apr 20, 2022 by taifu yuan
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#77

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