螞蟻區塊鏈合約平臺 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