国货之光——jdchain1.6.5测试网络部署

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

🏠JD Chain

JD Chain是京东数科开源的区块链平台目标是实现一个面向企业应用场景的通用区块链框架系统能够作为企业级基础设施为业务创新提供高效、灵活和安全的解决方案。

JD Chain通过节点实现信息之间的交互不同类型的节点可以在同一物理服务器上部署运行。JD Chain 中定义了三种不同类型的节点

1、客户端节点Client通过 JD Chain 的 SDK 进行区块链操作的上层应用
2、网关节点Gateway提供网关服务的节点用于连接客户端和共识节点
3、共识节点Peer共识协议参与方会产生一致性账本。

一个简单的部署模型如下
在这里插入图片描述
本文对于JD Chain测试网络的部署进行了记录希望能帮到需要的朋友本文基于jdchain1.6.5。
jdchain从1.6.3版本起已支持的共识协议包括BFTSMARTRAFTMQ。本文对于这三种共识协议的测试网络分别进行说明。更为详细的安装步骤参考 官方安装文档

🏠准备

👉软件下载

访问 软件下载地址下载如下安装包
在这里插入图片描述
解压文件 jdchain-peer-1.6.5.RELEASE.zip 进入解压后文件bin目录下对脚本文件添加可执行权限

chmod 777 ./*

👉初始化配置参数说明

要搭建一个区块链网络首先要对其初始化参数进行设置初始化参数说明如下图所示后面的所有部署都要用到初始化配置。初始化参数生成后才能进行初始化进而才能启动各个节点。
在这里插入图片描述
不管使用哪种共识协议部署的总体流程如下
在这里插入图片描述

🏠采用BFT-SMaRt共识协议

👉配置生成

BFT-SMaRt共识协议最少需要4个共识节点我们就以4个共识节点为例。在上面提到的bin目录下执行如下命令生成初始化配置

./jdchain-cli.sh testnet config --algorithm ED25519 --ledger-name mytestnet --password 123456 --peer-zip ../../jdchain-peer-1.6.5.RELEASE.zip --gw-zip ../../jdchain-gateway-1.6.5.RELEASE.zip --consensus BFTSMART --peer-size 4 --init-hosts 127.0.0.1 --peer-hosts 127.0.0.1 --peer-consensus-ports 10080,10082,10084,10086 --peer-manage-ports 7080,7081,7082,7083 --init-ports 8809,8819,8829,8839 --gw-port 8086 --output /home/jdchain/nodes/

执行上述指令输出如下
在这里插入图片描述
成功创建账本初始化配置文件会在/home/jdchain/nodes/目录下生成4个peer文件夹peer0、peer1、peer2、peer3一个网关gw文件夹。后续操作请确保上诉地址端口未被占用。

👉初始化

这里的初始化主要是共识节点的初始化。初始化配置生成后分别进入/home/jdchain/nodes中4个peer*/bin目录下最好分别开四个客户端修改shell脚本可执行权限依次执行初始化脚本

ledger-init.sh

按照提示操作等待所有初始化脚本启动之后有一个按任意键继续的提示所有节点都需要点击一下确认键如下图
在这里插入图片描述
节点间在初始化过程中会尝试相互连接指令执行有先后所以可忽略初始化过程中的连接错误日志。
要注意忽略不等于关掉客户端比如xshell客户端或者Crtl+C杀掉当前的执行程序而是保持当前客户端不动任由其报错然后新开一个客户端比如xshell客户端再进入下一个peer目录进行上面的初始化过程。有多少个peer节点就重新开启多少个客户端待所有节点都初始化完成后每个客户端都会输出如下
在这里插入图片描述
成功执行后会在peer*/config目录下生成ledger-binding.conf文件表示账本初始化完成。

👉启动

依次进入peer*/bin目录下修改shell脚本可执行权限执行

peer-startup.sh

启动peer节点。
进入gw/bin目录下修改shell脚本可执行权限执行

startup.sh

启动网关。

访问 服务器IP地址:8086 查看区块链浏览器。输入用户名jdchain密码jdchain会看到区块链浏览器首页
在这里插入图片描述
至此采用BFT-SMaRt共识协议的JD Chain部署运行完成。

🏠采用Raft共识协议

采用Raft共识协议部署JD Chain测试网络只有在初始化配置生成的时候有所不同后面两步即初始化和启动的过程与上面完全一样。这里只给出配置生成的命令。由于采用Raft共识协议支持单节点我们以单节点模式为例

./jdchain-cli.sh testnet config --algorithm ED25519 --ledger-name rafttestnet --password 123456 --peer-zip ../../jdchain-peer-1.6.5.RELEASE.zip --gw-zip ../../jdchain-gateway-1.6.5.RELEASE.zip --consensus RAFT --peer-size 1 --init-hosts 127.0.0.1 --peer-consensus-ports 10080 --peer-manage-ports 7080 --init-ports 8809 --gw-port 8086 --output /home/jdchain/raftnodes/

🏠采用MQ共识协议

采用MQ共识协议首先要保证MQ服务可用这里以RabbitMQ为例单节点的配置生成的命令如下

./jdchain-cli.sh testnet config --algorithm ED25519 --ledger-name mqtestnet --password 123456 --peer-zip ../../jdchain-peer-1.6.5.RELEASE.zip --gw-zip ../../jdchain-gateway-1.6.5.RELEASE.zip --mq rabbitmq://amqp://127.0.0.1:5672 --consensus MQ --peer-size 1 --init-hosts 127.0.0.1 --peer-consensus-ports 10080 --peer-manage-ports 7080 --init-ports 8809 --gw-port 8086 --output /home/jdchain/mqnodes/

后面的初始化和启动过程跟上面两小节的步骤完全相同这里就不再赘述。

作者这水平有限有不足之处欢迎留言指正

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6