在开始本教程前,请先确保已经按照 部署好了一条测试链。
本教程将使用 Intelj Idea 进行,方便读者基于此 demo 进行开发,所以请确保在运行 demo 代码的机器上具备以下环境。
IDE:进入,下载并安装社区版IntelliJ IDE
Oracle JDK:Java应用需要依赖 ,且jdk版本不低于 1.8.0u201
Maven:项目需要依赖 Maven,且版本不低于
下载Demo物料包
从 GitHub 上下载 demo 示例代码,该示例代码会使用天玄的 web3j sdk 与天玄链交互,模拟部署应用合约并向合约发起交易。
由于依赖的 thanos-web3j.jar 还未发布到 Maven 公共库,所以当前阶段也需要手动安装一下,同样 thanos-web3j 依赖的 thanos-common 也是。以确保在本地机器的 maven 本地仓库中构建完整的依赖。
$ git clone https://github.com/TianXuan-Chain/thanos-package-generate.git
$ git clone https://github.com/TianXuan-Chain/thanos-common.git
$ git clone https://github.com/TianXuan-Chain/thanos-web3j.git
$ git clone https://github.com/TianXuan-Chain/thanos-demo.git
配置 Intelj Idea
配置 JDK。
配置 Maven。
编译 thanos-common
请先在 thanos-package-generate 文件目录下找到 bctls-gm-jdk15on.jar 文件,并将其手动加载到本地 Maven 库当中。
# 文件路径为 thanos-package-generate/dependenies/jar/bctls-gm/bctls-gm-jdk15on.jar
$cd thanos-package-generate/dependenies/jar/bctls-gm
$mvn install:install-file -Dfile=bctls-gm-jdk15on.jar -DgroupId=org.bouncycastle -DartifactId=bctls-gm-jdk15on -Dversion=0.1 -Dpackaging=jar
使用 Intelj Idea 打开 thanos-common 项目,并执行 maven install(也可以直接在 cmd 中执行)。
编译 thanos-web3j
使用 Intelj Idea 打开 thanos-web3j 项目,执行 gradle publishToMavenLocal (如果本地安装了 gradle ,也可以通过 cmd 执行)。
执行成功,thanos-web3j.jar 将会被加载到本地 maven 库中。
运行 Demo 应用代码
使用 Intelj Idea 打开 thanos-demo 项目,配置 maven 和 jdk ,注意 maven 本地仓库路径需要和打包 thanos-web3j 时的 maven 本地仓库路径一致。
而后根据自己部署的测试链 ip 和 port 修改 thanos-web3j.conf 配置文件。
gateway = {
# List of gateway peers to send msg
rpc.ip.list = [
#"127.0.0.1:8082"
#"10.246.199.210:8182"
#"127.0.0.1:8082","127.0.0.1:8182"
]
web3Size = 3
#connection check interval (s)
checkInterval = 60
# List of gateway peers http port to send msg
http.ip.list = [
#"127.0.0.1:8200"
"101.35.234.159:8580"
]
}
resource {
# logConfigPath = "F:\\myJava\\blockchain3.0\\thanos-web3j\\src\\main\\resources\\logback.xml"
}
#tls settings, such as path of keystore,truststore,etc
tls {
needTLS = false
keyPath="F:\\myJava\\blockchain3.0\\thanos-gateway\\src\\main\\resources\\ec-tls2\\node.key"
certsPath="F:\\myJava\\blockchain3.0\\thanos-gateway\\src\\main\\resources\\ec-tls2\\chain.crt"
}
#crypto settings, such as signECDSA, getHash, etc
crypto {
#JCA cryptoprovider name.
providerName="SC"
#JCA sign Algorithm,such as ECDSA, ED25519 etc
sign.algorithm="ECDSA"
#sign.algorithm="ED25519"
#sign.algorithm="SM"
#Used for create JCA MessageDigest
hash.alg256="ETH-KECCAK-256"
hash.alg256="ETH-KECCAK-256-LIGHT"
hash.alg512="ETH-KECCAK-512"
}
配置信息如下:
gateway:sdk和天玄链节点网关交互的相关配置
tls:是否开启 tls 以及 tls 相关的证书和私钥的配置 (当前默认关闭,是否开启需要和节点的配置保持一致)
当前教程,只需要将自己的 rpc 链接或者 http 链接配置到 rpc.ip.list 或者 http.ip.list 中即可。
配置完成并加载 maven 依赖后运行 SimpleTokenDemo.main 。
该方法会使用 thanos-web3j 模拟部署一个简单的 token 应用到测试链上,并模拟执行 token 转移交易。成功运行后,等待片刻,你会看到如下信息
返回应用合约地址,表明合约部署成功,后面的 transder from 以及 transfer to 等信息是模拟执行的合约交易结果。