蚂蚁区块链合约平台 Java SDK 是通过服务(Service)的形式对外提供功能,具体包括账户服务(Account Service)、合约服务(Contract Service)、事件服务(Event Service)、查询服务(Query Service)和本地服务(Local Service)。SDK 提供以同步或异步方式发送交易、查询交易、订阅事件等的接口。无论以同步或异步的方式发送交易,SDK 封装了发送交易后查询收据的逻辑,以便您查看交易的执行结果。
Java SDK 版本说明
版本 | 更新功能 | 对应链版本 |
0.10.2.24.5 |
| V2.24.8 V2.24.4 V2.19.2 V2.19.1 |
运行环境说明
JDK 1.8,运行
java -version
查看当前 Java 版本。Maven 3.5.4 及以上版本,在终端运行
mvn -v
查看当前 Maven 版本。在 Linux 下使用 SDK,要求 GLIBC 版本高于 2.14。
Maven依赖
x86_64环境
<dependency> <groupId>com.alipay.mychainx</groupId> <artifactId>mychainx-sdk-java-all</artifactId> <version>0.10.2.24.5</version> </dependency>
arm_64环境
需要修改Netty依赖,具体修改如下。
<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.52.Final</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-tcnative-boringssl-static</artifactId> <version>2.0.35.Final</version> </dependency> <dependency> <groupId>com.alipay.mychainx</groupId> <artifactId>mychainx-sdk-java-all</artifactId> <version>0.10.2.24.5</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-tcnative-boringssl-static</artifactId> </exclusion> </exclusions> </dependency>
升级注意事项
SDK升级到该版本后,可能会遇到以下几类问题,您可以根据实际情况进行分析解决。
ISslOption
接口新增了boolean isSmTLSSupport();
方法。如果应用客户端单独实现了ISslOption接口,就必须添加此方法的实现。如果您使用非国密,则实现该方法后可直接return false。
注意检查项目中实际
bouncycastle
包的版本,当前SDK依赖的版本为1.66。如果版本存在依赖冲突,可能导致SDK启动/编译失败。
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>1.66</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.66</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bctls-jdk15on</artifactId> <version>1.66</version> </dependency>
Linux环境下,如遇到SDK启动变慢,请尝试增加Linux的熵池大小。
查看熵池大小,执行命令如下:
cat /proc/sys/kernel/random/entropy_avail
需要在构建环境时候执行以下命令解决熵池大小,请按照顺序执行。
步骤1:yum install epel-release -y 步骤2:yum install haveged -y 步骤3:systemctl start haveged 步骤4:systemctl enable haveged 步骤5:systemctl status haveged