天玄技术文档
  • 平台介绍
    • 天玄区块链
    • 版本信息
  • 快速开始
    • 快速搭建天玄链
      • 硬件要求
      • 软件要求
      • 构建节点安装包
      • 安装并启动节点
    • 应用部署示例
  • 安装手册
    • 天玄链
      • 打包可执行文件
      • 安装
      • 配置说明
      • 证书说明
      • 日志说明
    • 天玄网关
      • 安装
      • 配置说明
  • 应用开发手册
    • 创建和使用账户
    • 智能合约
    • Java SDK
      • 快速入门
      • 配置说明
      • 远程调用接口
    • 天玄链功能接口列表
  • 系统架构
    • 整体架构
    • 天玄链交易流程
    • 数据结构&编码
    • 核心模块
      • 共识算法
      • P2P网络
      • 交易并行
      • 存储
      • 流水线执行
      • CA机制
      • 网关
      • 虚拟机
      • 密码
  • 社区
    • 团队介绍
    • 合作伙伴
    • 社群入口
Powered by GitBook
On this page
  • 下载Demo物料包
  • 配置 Intelj Idea
  • 编译 thanos-common
  • 编译 thanos-web3j
  • 运行 Demo 应用代码
  1. 快速开始

应用部署示例

Previous安装并启动节点Next天玄链

Last updated 8 months ago

在开始本教程前,请先确保已经按照 部署好了一条测试链。

本教程将使用 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和天玄链节点网关交互的相关配置

  • resource:日志的路径配置

  • tls:是否开启 tls 以及 tls 相关的证书和私钥的配置 (当前默认关闭,是否开启需要和节点的配置保持一致)

  • crypto:加密相关配置

当前教程,只需要将自己的 rpc 链接或者 http 链接配置到 rpc.ip.list 或者 http.ip.list 中即可。

配置完成并加载 maven 依赖后运行 SimpleTokenDemo.main 。

该方法会使用 thanos-web3j 模拟部署一个简单的 token 应用到测试链上,并模拟执行 token 转移交易。成功运行后,等待片刻,你会看到如下信息

返回应用合约地址,表明合约部署成功,后面的 transder from 以及 transfer to 等信息是模拟执行的合约交易结果。

想了解更多关于 web3j sdk 的使用细节,请参考:

Java SDK
快速搭建天玄链
IntelliJ IDE官网
oracle jdk1.8
3.3.9