Edit me

[TOC]

环境搭建

NULS的环境搭建需要使用到JAVA和maven两个工具,java直接下载java包dmg格式安装即可,maven下载开源包: wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz 解压到usr/local目录下,然后在/etc/profile文件中添加环境变量:

JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/"

CLASS_PATH="$JAVA_HOME/lib"

PATH=".:$PATH:$JAVA_HOME/bin"
export M3_HOME=/usr/local/apache-maven-3.5.3
export PATH=$PATH:$M3_HOME/bin

需要注意的是,JVAV版本需要是1.8版本,更高版本会因为API不一致导致无法编译成功,maven版本则需要3.3版本以上才可以。

代码下载

从github上下载代码:https://github.com/nuls-io/nuls 按照说明编译代码:

$ mvn clean package
$ cd node/target
$ tar zxvf nuls-node.tar.gz
$ cd bin

然后下载客户端:https://github.com/nuls-io/nuls-client 客户端的运行需要安装npm,brew install npm,系统会自动帮你安装 编译客户端: 进入目录,运行npm install,这个过程中需要安装一个electron-packager的依赖,通常下载不了,需要配置代理才能正常安装:

ChandlerPandeMacBook-Pro:nuls-client chandler$ npm config set proxy http://127.0.0.1:1089
ChandlerPandeMacBook-Pro:nuls-client chandler$ npm config set http-proxy http://127.0.0.1:1089
ChandlerPandeMacBook-Pro:nuls-client chandler$ npm install

Linux环境搭建

安装npm,node

sudo apt install nodejs-legacy npm

安装后因为版本过低导致程序无法正常运行, mac下的版本:

ChandlerPandeMacBook-Pro:Downloads chandler$ node -v
v9.10.1
ChandlerPandeMacBook-Pro:Downloads chandler$ npm -v
5.6.0

linux需要升级到最新版本,下载最新的9.10.1版本然后解压到usr/local目录下,修改/etc/profile文件

export JAVA_HOME=/usr/local/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

export M3_HOME=/usr/local/apache-maven-3.5.3
export PATH=$PATH:$M3_HOME/bin

export NODE_HOME=/usr/local/node-v9.10.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin
chandler@ubuntu:~/Downloads$ node -v
v9.10.1
chandler@ubuntu:~/Downloads$ npm -v
5.8.0

此时如果用sudo运行命令会失败,需要用sudo建立软连接:

sudo ln -s /usr/local/node-v9.10.1-linux-x64/bin/node /usr/bin/node
sudo ln -s /usr/local/node-v9.10.1-linux-x64/bin/npm /usr/bin/npm

配置完成后运行npm install安装依赖,Linux下有几个依赖特别难下载,我们需要手动安装

1. phantomjs

进入官网下载http://phantomjs.org/download.html 下载后解压到usr/local下,并建立软链接,需要注意,这里必须使用1.9.8版本:

chandler@ubuntu:~/Downloads$ sudo mv phantomjs-1.9.8-linux-x86_64 /usr/local/
chandler@ubuntu:~/Downloads$ sudo ln -s /usr/local/phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
chandler@ubuntu:~/Downloads$ phantomjs -v
1.9.8

2. accessibility-developer-tools
git clone --recursive https://github.com/GoogleChrome/accessibility-developer-tools.git
sudo npm install -g grunt-cli
cd accessibility-developer-tools/
npm install
3. electron-v1.8.4-linux-x64.zip

这个是web的框架工具,因为很大,下载多次才能成功。 可以直接从https://github.com/electron/electron/releases下载对应版本 然后解压到nuls-client/node_modules/electron/dist/目录下即可。

运行测试

在两台机器上运行相同的nuls代码,然后其中一台运行nuls-client 修改network-impl/src/main/java/io/nuls/network/param/DevNetworkParam.java文件中的IP地址:

InetSocketAddress address0 = new InetSocketAddress("10.211.55.4", port);
//InetSocketAddress address1 = new InetSocketAddress("192.168.1.103", port);
//InetSocketAddress address2 = new InetSocketAddress("192.168.1.131", port);
InetSocketAddress address3 = new InetSocketAddress("10.211.55.5", port);

错误报告:

客户端报错:
ERROR in ./src/renderer/router/index.js
  Module not found: Error: Can't resolve '../../renderer/pages/index/Home.vue' in '/home/chandler/nuls-client/src/renderer/router'
   @ ./src/renderer/router/index.js 13:10-67
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js
  
  ERROR in ./src/renderer/router/index.js
  Module not found: Error: Can't resolve '../../renderer/pages/users/EditorPassword.vue' in '/home/chandler/nuls-client/src/renderer/router'
   @ ./src/renderer/router/index.js 25:10-77
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js
  
  ERROR in ./src/renderer/router/index.js
  Module not found: Error: Can't resolve '../../renderer/pages/wallet/Index.vue' in '/home/chandler/nuls-client/src/renderer/router'
   @ ./src/renderer/router/index.js 79:10-69
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js
  
  ERROR in ./src/renderer/main.js
  Module not found: Error: Can't resolve './app.vue' in '/home/chandler/nuls-client/src/renderer'
   @ ./src/renderer/main.js 2:0-28
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js

解决办法,将文件名改成首字母大写。

服务端log错误

主机IP地址为55.4的机器报错误

2018-04-04 16:54:01.471 [[node connection]] ERROR io.nuls.core.utils.log.Log - io.nuls.network.service.impl.netty.NettyClient.start(NettyClient.java:48):-------------NettyClient start error: Connection refused: /10.211.55.4:8004

将两个IP地址颠倒一下,就可以消除这个错误。


Tags: