文档

Java SDK 说明

更新时间:

蚂蚁区块链合约平台 Java SDK 是通过服务(Service)的形式对外提供功能,具体包括账户服务(Account Service)、合约服务(Contract Service)、事件服务(Event Service)、查询服务(Query Service)和本地服务(Local Service)。SDK 提供以同步或异步方式发送交易、查询交易、订阅事件等的接口。无论以同步或异步的方式发送交易,SDK 封装了发送交易后查询收据的逻辑,以便您查看交易的执行结果。

Java SDK 版本说明

版本

更新功能

对应链版本

0.10.2.24.5

  • 支持查询指定区块内的交易数量

  • 支持获取数据合约Schema

  • WASM合约支持128位宽整数模型

  • 支持Ed25519算法签名

  • zklib启动不加载选项配置

  • 稳定性提升

  • 可通过Maven坐标依赖SDK

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升级到该版本后,可能会遇到以下几类问题,您可以根据实际情况进行分析解决。

  1. ISslOption接口新增了 boolean isSmTLSSupport(); 方法。

    如果应用客户端单独实现了ISslOption接口,就必须添加此方法的实现。如果您使用非国密,则实现该方法后可直接return false。

  2. 注意检查项目中实际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>
  3. 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