Initialize environment
init
Initialize the environment configuration.
- Function
public MychainBaseResult<Response> init(MychainEnv env)
- Request parameters
Parameter | Required | Type | Description |
---|---|---|---|
env | true | MychainEnv | Contract platform environment |
- Examples
MychainEnv env = buildMychainEnv();
Mychain sdk = new Mychain();
sdk.init(env);
private static MychainEnv initMychainEnv() {
return initMychainEnv("test_sdk");
}
private static MychainEnv buildMychainEnv(String identity) {
InetSocketAddress inetSocketAddress = InetSocketAddress.createUnresolved(host, port);
String keyFilePath = "client.key";
String certFilePath = "client.crt";
String trustStoreFilePath = "trustCa";
// any user key for sign message
String userPrivateKeyFile = "user.key";
PrivateKey userPrivateKey = KeyLoder.getPrivateKeyFromPKCS8(DemoSample.class.getClassLoader().getResourceAsStream(userPrivateKeyFile),keyPassword);
// build ssl option
ISslOption sslOption = new SslBytesOption.Builder()
.keyBytes(Utils.readFileToByteArray(DemoSample.class.getClassLoader().getResource(keyFilePath).getPath()))
.certBytes(Utils.readFileToByteArray(DemoSample.class.getClassLoader().getResource(certFilePath).getPath()))
.keyPassword(keyPassword)
.setUserPrivateKey(userPrivateKey)
.trustStorePassword(trustStorePassword)
.trustStoreBytes(
Utils.readFileToByteArray(DemoSample.class.getClassLoader().getResource(trustStoreFilePath).getPath()))
.build();
// multi nodes configuration
List<SocketAddress> backupNodes = new ArrayList<SocketAddress>();
backupNodes.add(InetSocketAddress.createUnresolved("101.132.187.0", 58321));
backupNodes.add(InetSocketAddress.createUnresolved("101.132.46.192", 58322));
backupNodes.add(InetSocketAddress.createUnresolved("106.14.166.129", 58323));
return MychainEnv.build(identity, ClientTypeEnum.TLS, HashTypeEnum.SHA256,
SignTypeEnum.ECDSA, CodecTypeEnum.RLP, inetSocketAddress, sslOption, backupNodes);
}
Multi-node configuration
The SDK supports multi-node configuration. When the primary node is unavailable, the SDK automatically switches to another available node for re-connection to ensure service stability.
- Examples
MychainEnv env = buildMychainEnv();
Mychain sdk = new Mychain();
sdk.init(env);
private static MychainEnv initMychainEnv() {
return initMychainEnv("test_sdk");
}
private static MychainEnv buildMychainEnv(String identity) {
InetSocketAddress inetSocketAddress = InetSocketAddress.createUnresolved(host, port);
String keyFilePath = "client.key";
String certFilePath = "client.crt";
String trustStoreFilePath = "trustCa";
// build ssl option
ISslOption sslOption = new SslBytesOption.Builder()
.keyBytes(Utils.readFileToByteArray(DemoSample.class.getClassLoader().getResource(keyFilePath).getPath()))
.certBytes(Utils.readFileToByteArray(DemoSample.class.getClassLoader().getResource(certFilePath).getPath()))
.keyPassword(keyPassword)
.trustStorePassword(truseStorePassword)
.trustStoreBytes(
Utils.readFileToByteArray(DemoSample.class.getClassLoader().getResource(trustStoreFilePath).getPath()))
.build();
// multi nodes configuration
List<SocketAddress> backupNodes = new ArrayList<SocketAddress>();
backupNodes.add(InetSocketAddress.createUnresolved("101.132.187.0", 58321));
backupNodes.add(InetSocketAddress.createUnresolved("101.132.46.192", 58322));
backupNodes.add(InetSocketAddress.createUnresolved("106.14.166.129", 58323));
return MychainEnv.build(identity, ClientTypeEnum.TLS, HashTypeEnum.SHA256,
SignTypeEnum.ECDSA, CodecTypeEnum.RLP, inetSocketAddress, sslOption, backupNodes);
}