【软件工程与实践】(1)jdchain的安装部署、大致理解、组内分工

2021SC@SDUSC

一、下载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安装包
安装包获取途径:

扫描二维码关注公众号,回复: 14959565 查看本文章

下载编译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 解压时不存在,存放运行时数据

四、组内分工

jdchain的代码模块

我们组将代码切分了四个模块并以抽签形式决定足内任务分配
本人分到了第三块的数据账本模块,但是如果后期需要其他模块的补充会在标明。

猜你喜欢

转载自blog.csdn.net/weixin_45932150/article/details/120526948