2021SC@SDUSC
目录
- 一、下载jdchain源码安装包
- 二、快速部署
- 1.官方完整步骤
- 2.管理工具
- 3.基于内存的四节点网络
- 4.基于安装包和部署脚本
- 三、对于jdchain的理解
- 1.peer节点
- 2.gateway节点
- 四、组内分工
一、下载jdchain源码安装包
Github链接: https://gitee.com/jdchain/jdchain.
官网链接: https://ledger.jd.com.
二、快速部署
1.官方完整步骤
JD Chain官网提供了安装部署详细介绍,较为繁琐,但是其他便捷组网方法的基础。
2.管理工具
JD Chain提供了基于界面操作的网络初始化启动工具,相关脚本为manager-startup.sh和manager-shutdown.sh。
送上操作视频:http://storage.jd.com/jd.block.chain/init-jdchain-by-manager-tool.mp4.
3.基于内存的四节点网络
克隆 JD Chain主项目源码,并切换到对应版本分支
请查阅主项目首页介绍,里面有子项目代码拉取,项目编译打包的介绍。代码根路径下执行:
build/build.sh --update --skipTests
即可完成所有子项目代码拉取,完成编译打包
运行Samples模块下代码
参照Samples介绍 运行sdk-samples里的TestNet类main方法即可启动基于内存的四节点+单网关区块链网络环境,浏览器地址为 http://localhost:11000.
sdk-samples中测试用例默认基于TestNet启动的网络环境配置,都可直接运行。覆盖绝大多数交易类型提交,交易查询。
4.基于安装包和部署脚本
下载JD Chain安装包
安装包获取途径:
下载编译JD Chain源码,参照首页说明进行编译打包。
访问JD Chain官网下载,版本更新可能不及源码快。
脚本初始化
复制testnet.sh脚本,保存到本地,设置可运行权限
脚本仅在特定的linux环境下测试通过,不同系统环境可能存在shell语句或者依赖差异,请酌情修改
此脚本可一键生成多节点,多账本,目前还相当粗糙,仅当抛砖引玉~
将jdchain-peer-.RELEASE.zip,jdchain-gateway-.RELEASE.zip压缩包以及testnet.sh脚本放置同一目录下。
直接运行testnet.sh便可自动初始化默认四节点+单网关的环境,同时生成一键启动(start.sh)和关闭(shutdown.sh)的脚本。
运行start.sh便可启动测试网络,参照JD Chain Samples介绍,配置好网络环境参数,即可快速上手JD Chain SDK使用。
三、对于jdchain的理解
JD Chain有三类节点:Peer、网关和客户端。Peer节点是区块链主节点,参与共识、账本操作等;网关节点(GateWay)与Peer节点通信,负责区块链浏览器及消息传递;客户端与网关通信,可以进行写入或查询账本等操作。
1.peer节点
bin 相关命令操作目录,使用前请配置执行权限
keygen.sh 身份生成工具
ledger-init.sh 账本初始化工具
peer-startup.sh 节点启动脚本
peer-shutdown.sh 节点关闭脚本
manager-startup.sh 管理工具启动脚本
manager-shutdown.sh 管理工具关闭脚本
config 对应命令的配置目录
init
ledger.init
local.conf
bftsmart.config
keys 解压时不存在,会在执行keygen.sh脚本时自动创建
***.priv
.pub
.pwd
log4j2-peer.xml log4j2配置,可根据实际情况修改替换
`
ledger-binding.conf 解压时不存在,会在成功执行ledger-init.sh脚本后生成
docs 相关文档保存目录
libs 项目运行依赖第三方及非system依赖包保存路径
system 项目运行系统包保存路径
runtime 解压时不存在,存放运行时数据
manager 管理工具运行包
logs 日志
2.gateway节点
`JD Chain-gateway-${version}.zip,解压完后的安装包结构如下:
bin
startup.sh 启动脚本
shutdown.sh 停止脚本
config
gateway.conf 网关配置
log4j2-gw.xml log4j2配置,可根据实际情况修改替换
lib 运行时所需jar包路径
logs 日志
runtime 解压时不存在,存放运行时数据
四、组内分工
我们组将代码切分了四个模块并以抽签形式决定足内任务分配
本人分到了第三块的数据账本模块,但是如果后期需要其他模块的补充会在标明。