我按照官方教程视频安装好了管理后台并安装了多节点合约部署成功,但是下载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));
}
}
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information