蚂蚁区块链合约平台 Java SDK 是通过服务(Service)的形式对外提供功能,具体包括账户服务(Account Service)、合约服务(Contract Service)、事件服务(Event Service)、查询服务(Query Service)和本地服务(Local Service)。SDK 提供以同步或异步方式发送交易、查询交易、订阅事件等的接口。无论以同步或异步的方式发送交易,SDK 封装了发送交易后查询收据的逻辑,以便您查看交易的执行结果。
Java SDK 的 Jar 包依赖 Netty,不同的运行系统需要选择不同的 Netty 依赖包配置到 Maven 文件中。
Java SDK 版本说明
版本号 | 更新功能 | 对应链版本 | 下载链接 |
0.10.2.12 | - 支持 SDK 侧合约的 ABI 功能;提供发送交易查询 receipt 的全局开关;支持通过区块号查询交易收据。 - 增加可靠的消息监听机制,添加 WASM 合约的 addInt8 类似方法时,会对 value 进行范围校验;增加更新证书吊销列表接口,提供证书吊销热更新功能。 | V2.19.1 V0.10.2.12.5 V0.10.2.9.3 V0.10.2.9.2 V0.10.2.9.1 V0.10.2.7.1 |
Netty 依赖包说明
文件 | 说明 | 下载链接 |
netty-tcnative-openssl-static-2.0.17-Final-mychain-all.jar | CentOS/Mac/Windows x64 操作系统下 SDK 所依赖的运行库,支持 k1 曲线/RSA。 |
运行环境说明
JDK 7 及以上版本在终端运行
java -version
查看当前 Java 版本。Maven 3.5.4 及以上版本在终端运行
mvn -v
查看当前 Maven 版本。在 Linux 下使用 SDK,要求 GLIBC 版本高于 2.14。
在 Maven 文件中引入 SDK 包
安装下载的 Jar 包到本地仓库。
从命令终端进入到下载的文件根目录,执行以下命令:
//安装 SDK 到本地仓库
mvn install:install-file -Dfile=mychainx-sdk-0.10.2.12.jar -DgroupId=com.alipay.mychainx -DartifactId=mychainx-sdk -Dversion=0.10.2.12 -Dpackaging=jar
//如需使用 K1,则需安装 Netty 依赖到本地仓库,注意请选择对应平台 netty-tcnative-openssl-static 版本,并修改相应的 classifier,macOS:osx-x86_64,Linux:linux-x86_64,Windows:windows-x86_64
mvn install:install-file -Dfile=netty-tcnative-openssl-static-2.0.17-Final-mychain-all.jar -DgroupId=io.netty -DartifactId=netty-tcnative-openssl-static -Dversion=2.0.17-Final-mychain-all -Dpackaging=jar
注意:Netty 的版本必须为下面的版本。
<dependencies>
<dependency>
<groupId>com.alipay.mychainx</groupId>
<artifactId>mychainx-sdk</artifactId>
<!--请使用最新 SDK 版本 -->
<version>0.10.2.12</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.60</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.29.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>2.0.17.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
</dependencies>