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

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

🏠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版本起,已支持的共识协议包括:BFTSMART,RAFT,MQ。本文对于这三种共识协议的测试网络分别进行说明。更为详细的安装步骤参考 官方安装文档

🏠准备

👉软件下载

访问 软件下载地址,下载如下安装包

解压文件 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/

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

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

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
测试技术
Fast网络速度测试工具
Fast是由Netflix提供的网络速度测试工具,可快速测量用户的下载、上传速度及延迟。其全球可用、无广告干扰,并支持多种设备。测试自动进行,结果以Mbps显示。此外,用户可通过“Show more info”查看上传速度和延迟(含缓冲膨胀)。Fast以其简单快捷的特点,帮助用户了解网络性能并解决潜在问题,是评估网速的理想选择。
1953 0
Fast网络速度测试工具
|
传感器 算法 数据安全/隐私保护
基于GA遗传优化的三维空间WSN网络最优节点部署算法matlab仿真
本程序基于遗传算法(GA)优化三维空间无线传感网络(WSN)的节点部署,通过MATLAB2022A实现仿真。算法旨在以最少的节点实现最大覆盖度,综合考虑空间覆盖、连通性、能耗管理及成本控制等关键问题。核心思想包括染色体编码节点位置、适应度函数评估性能,并采用网格填充法近似计算覆盖率。该方法可显著提升WSN在三维空间中的部署效率与经济性,为实际应用提供有力支持。
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
1452 75
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
530 16
|
机器学习/深度学习 自然语言处理 API
阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
DeepSeek R1是基于Transformer架构的先进大规模深度学习模型,2025年1月20日发布并开源,遵循MIT License。它在自然语言处理等任务上表现出色,高效提取特征,缩短训练时间。阿里云推出的满血版方案解决了服务器压力问题,提供100万免费token,云端部署降低成本,用户可快速启动体验。虽然回答速度有待提升,但整体表现优异,备受关注。
596 8
|
存储 运维 监控
2025年4月深度评测:10款最值得部署的网络监控软件
真正卓越的运维不仅仅是对当前问题的解决,更在于对未来的预测和防范。 OpManager 的预测报表功能可以为用户提供有关未来存储需求增长方式的直观展示,帮助用户进行基于需求的容量规划,从而避免成本浪费。
647 0
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
538 10
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
敏捷开发 Devops 测试技术
自动化测试中的持续集成与持续部署
在现代软件开发实践中,自动化测试是确保软件质量和快速迭代的关键。本文将探讨自动化测试如何与持续集成(CI)和持续部署(CD)流程相结合,以提高开发效率和软件质量。我们将分析CI/CD管道中自动化测试的最佳实践,以及如何克服实施过程中的挑战。
384 6
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
306 1