开源区块链-链(NULS ChainBox)搭建和测试

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 简介:NULS ChainBox是一个基于NULS2.0区块链底层运行环境构建的一套区块链应用快速开发平台。它可以帮助区块链应用开发者快速构建自己的区块链应用,而无需关心复杂的底层逻辑。它包含一套友好的开发流程,开发工具以及若干的模块开发模板。

简介:
NULS ChainBox是一个基于NULS2.0区块链底层运行环境构建的一套区块链应用快速开发平台。它可以帮助区块链应用开发者快速构建自己的区块链应用,而无需关心复杂的底层逻辑。它包含一套友好的开发流程,开发工具以及若干的模块开发模板。

NULS2.0底层运行环境基于微服务架构,支持多语言模块接入,开发者还可使用ChainBox提供的各种开发模板无需关心如何与NULS2.0模块通信,只需专注于业务的实现。
github地址:https://github.com/lijunzhou/nuls-engine
1.环境准备:
macOS、centos7+、ubuntu 14+或者其他linux内核的操作系统,服务器最低标准4核8G
安装 Git (推荐yum安装)
安装命令

yum -y install git
git --version

安装Maven

yum -y install wget
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

安装JDK11
我这边使用的我自己的阿里云提供服务
jdk11下载

https://pan.baidu.com/s/1rpS9DZ5PIlKpp3OGSxlodQ

maven和jdk配置在系统参数中

JAVA_HOME=/var/java/jdk11 #这个是jdk解压后mv之后的名称
JRE_HOME=$JAVA_HOME/lib
export JAVA_HOME JRE_HOME
export MAVEN_HOME=/var/local/apache-maven-3.3.9 #这个是maven解压之后的路径
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH

2.获取NULS ChainBox程序
打开终端,执行以下命令

git clone https://github.com/lijunzhou/nuls-engine.git chainbox

3.构建加密邮件模块
执行命令进入chainbox/example目录

cd chainbox/example   #进入示例文件夹

执行命令构建模块

./package    #执行构建脚本(模板提供)

看到以下输出后,说明构建完成

============ PACKAGE FINISH  ===============

4.集成加密邮件模块
回到chainbox根目录

cd ..

执行命令,集成加密模块到NULS2.0运行环境中

./tools -p example

看到以下输出后,说明集成成功

============ PACKAGE FINISH  ===============

完成后在chainbox目录下会生成NULS-WALLET文件夹,此文件夹包含了集成了加密邮件模块的NULS2.0运行程序
5.修改区块链配置
进入NULS-WELLET文件夹,打开.default-config.ncf修改配置文件(如果同目录下有nuls.ncf,请修改nuls.ncf),请修改以下几项:
minNodeAmount=2 改为 0,修改后确保1个节点也能出块。

#最小链接节点数,当链接到的网络节点低于此参数时,会持续等待
minNodeAmount=0

去掉多余的出块种子地址,修改后确保在1个节点运行时也能10秒钟出一个块。

#种子节点出块地址
seedNodes=tNULSeBaMkrt4z9FYEkkR9D6choPVvQr94oYZp

6.启动节点程序
配置完成后,在NULS-WALLET目录执行以下命令

./start-mykernel

看到以下内容说明模块正在启动中

LOG PATH    : ~/NULS-WALLET/Logs
DATA PATH   : ~/NULS-WALLET/data
CONFIG FILE : ~/NULS-WALLET/nuls.ncf
DEBUG       : 0
JAVA_HOME   : /Library/java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

====================
NULS-WALLET STARING
====================

可通过以下命令检查模块启动情况

./check-status 

看到以下内容表示节点模块已全部启动成功

==================MODULE PROCESS====================
account PROCESS IS START
block PROCESS IS START
consensus PROCESS IS START
ledger PROCESS IS START
network PROCESS IS START
transaction PROCESS IS START
==================RPC REDAY MODULE==================
account RPC READY
block RPC READY
consensus RPC READY
ledger RPC READY
network RPC READY
transaction RPC READY
======================REDAY MODULE==================
account STATE IS READY
block STATE IS READY
consensus STATE IS READY
ledger STATE IS READY
network STATE IS READY
transaction STATE IS READY
================TRY RUNNING MODULE==================
account TRY RUNNING
block TRY RUNNING
consensus TRY RUNNING
ledger TRY RUNNING
network TRY RUNNING
transaction TRY RUNNING
===================RUNNING MODULE===================
account STATE IS RUNNING
block STATE IS RUNNING
consensus STATE IS RUNNING
ledger STATE IS RUNNING
network STATE IS RUNNING
transaction STATE IS RUNNING
==================NULS WALLET STATE=================
==========================
NULS WALLET IS RUNNING
==========================

7.导入种子节点出块地址
现在种子节点已经启动,我们需进入命令行导入默认的种子出块地址,让节点开始出块
首先进入命令行

./cmd 

导入出块地址

nuls>>> import b54db432bba7e13a6c4a28f65b925b18e63bcb79143f7b894fa735d5d3d09db5 #通过私钥导入种子节点地址,此私钥生成的地址必须与第5步第2条的地址相同
Please enter the password (password is between 8 and 20 inclusive of numbers and letters), If you do not want to set a password, return directly.
Enter your password:**********  #设置导入地址的密码,此密码与第4步第3条记录的密码必须一致
Please confirm new password:********** #重复上一步输入的密码
tNULSeBaMkrt4z9FYEkkR9D6choPVvQr94oYZp #导入地址成功,验证此地址是否与第4步第2条的配置项完全一致

8.使用加密邮件
准备2个账户,用于测试发送和接收邮件,下方两个地址是测试环境创世块中定义的地址,账户中有一定数量的资产供测试使用。

nuls>>> import 477059f40708313626cccd26f276646e4466032cabceccbf571a7c46f954eb75
Please enter the password (password is between 8 and 20 inclusive of numbers and letters), If you do not want to set a password, return directly.
Enter your password:**********
Please confirm new password:**********
tNULSeBaMnrs6JKrCy6TQdzYJZkMZJDng7QAsD

nuls>>> import 8212e7ba23c8b52790c45b0514490356cd819db15d364cbe08659b5888339e78
Please enter the password (password is between 8 and 20 inclusive of numbers and letters), If you do not want to set a password, return directly.
Enter your password:**********
Please confirm new password:**********
tNULSeBaMrbMRiFAUeeAt6swb4xVBNyi81YL24

9.测试

绑定邮箱地址
请求地址:http://127.0.0.1:9999/mail/createMailAddress
请求参数:
{
 "address":"tNULSeBaMrbMRiFAUeeAt6swb4xVBNyi81YL24",
 "password":"nuls123456",
 "mailAddress":"zqy13917449434@163.com"
}
发送邮件
请求地址:http://127.0.0.1:9999/mail/sendMail
请求参数:
{
    "senderAddress": "asd@nuls.io",
    "password": "nuls123456",
    "mailAddress": "zqy13917449434@163.com",
    "title": "haha",
    "content": "gogo"
}
查看邮件
请求地址:http://127.0.0.1:9999/mail/viewMail
请求参数:
{
    "password": "nuls123456",
    "address": "tNULSeBaMrbMRiFAUeeAt6swb4xVBNyi81YL24",
    "hash": "84708459a981f95999f91809acf99f81001ad268617634de8256ed56385468b0"
}

10.解决启动start-mykernel报错的问题
image
将上面红色框内的jdk地址改成本地jdk地址(本图片中是已经解决后的)
11.解决启动cmd报错的问题
image
将上面红色框内的jdk地址改成本地jdk地址(本图片中是已经解决后的)
12.后期会将钱包和区块链浏览器推出来,请关注更新
如果有问题请评论中体现,看到会给大家解决。

相关文章
|
13天前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
44 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
1月前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
51 2
|
1月前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
1月前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
4月前
|
传感器 物联网 测试技术
未来科技浪潮中的领航者:区块链、物联网与虚拟现实的融合与创新探索自动化测试之美——以Selenium为例
【8月更文挑战第30天】本文深入探讨了当前最前沿的技术趋势——区块链、物联网和虚拟现实,并分析了它们各自的发展脉络及相互之间的融合可能性。我们将通过具体应用场景描绘这些技术如何塑造未来社会的面貌,同时提供代码示例以加深理解。文章旨在为读者揭示这些技术背后的巨大潜力,以及它们将如何影响我们的工作和生活方式。
|
4月前
|
物联网 测试技术 持续交付
软件测试的艺术与科学:探索自动化测试框架未来技术的融合与创新:探索区块链、物联网和虚拟现实的交汇点
【8月更文挑战第30天】在软件开发的海洋中,测试是确保航行安全不可或缺的灯塔。本文将带领读者揭开软件测试神秘的面纱,深入理解自动化测试框架的重要性和实现方法。通过实际案例,我们将一起探索如何构建高效、可靠的自动化测试系统,从而保障软件质量,提升开发效率。
|
4月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
138 1
|
4月前
|
运维 Kubernetes 监控
|
6月前
|
NoSQL 关系型数据库 MySQL
软件测试之【基于开源商城系统fecmall功能测试项目实例】
软件测试之【基于开源商城系统fecmall功能测试项目实例】
399 0
软件测试之【基于开源商城系统fecmall功能测试项目实例】
|
5月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
137 0