nuls-io / nuls-v2

NULS2.0 Node Wallet Implemented in Java
https://nuls.io
MIT License
117 stars 54 forks source link

构建全节点(Build full node) #312

Closed chenluyong closed 5 years ago

chenluyong commented 5 years ago

我在尝试构建全节点钱包,这能帮助我更好的了解NULS; 通过文档,我找到了 【Window 全节点钱包 v1.2.2 / Linux 全节点钱包 v2.0 Alpha3

我遇到了一些困扰我的问题希望能得到帮助。

  1. 是否有 RPC 接口文档?

  2. Win/Linux 全节点是否支持RPC接口调用?

  3. 对于非产块全节点而言 v0.1.2v2.0 会有什么差别?

chenluyong commented 5 years ago

我的环境: Linux d364ff069a14 4.15.0-47-generic #50~16.04.1-Ubuntu SMP Fri Mar 15 16:06:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

关于 Linux 全节点钱包的疑问

我根据社区教程成功运行 ./start.sh 脚本.

根据教程,我开始尝试启动 命令行 钱包

root@d364ff069a14:/cloud/nuls/bin/NULS-Wallet-linux64-alpha3# ./cmd 
JAVA_HOME:/cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2
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)

/cloud/nuls/bin/NULS-Wallet-linux64-alpha3/nuls.ncf
Service Manager URL: ws://127.0.0.1:7771

 __    __ __    __ __        ______          ______          ______  __       ______
/  \  /  /  |  /  /  |      /      \        /      \        /      \/  |     /      |
$$  \ $$ $$ |  $$ $$ |     /$$$$$$  |      /$$$$$$  |      /$$$$$$  $$ |     $$$$$$/
$$$  \$$ $$ |  $$ $$ |     $$ \__$$/       $$____$$ |      $$ |  $$/$$ |       $$ |
$$$$  $$ $$ |  $$ $$ |     $$      \        /    $$/       $$ |     $$ |       $$ |
$$ $$ $$ $$ |  $$ $$ |      $$$$$$  |      /$$$$$$/        $$ |   __$$ |       $$ |
$$ |$$$$ $$ \__$$ $$ |_____/  \__$$ |      $$ |_____       $$ \__/  $$ |_____ _$$ |_
$$ | $$$ $$    $$/$$       $$    $$/       $$       |      $$    $$/$$       / $$   |
$$/   $$/ $$$$$$/ $$$$$$$$/ $$$$$$/        $$$$$$$$/        $$$$$$/ $$$$$$$$/$$$$$$/

Module:cmd-client

WARNING: Illegal reflective access by net.sf.cglib.core.ReflectUtils$1 (file:/cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Modules/Nuls/libs/cglib-3.2.10.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)

随即出现了以下错误信息,并退出了程序.

2019-06-29 10:42:45.431  [main] ERROR - io.nuls.core.rpc.netty.bootstrap.NettyClient.createConnect(NettyClient.java:85):??ws?????ws://127.0.0.1:7771
2019-06-29 10:42:50.443  [main] ERROR - io.nuls.core.rpc.modulebootstrap.RpcModule.run(RpcModule.java:234):{"name":"cmd-client","version":"1.0"} initServer failed
java.lang.Exception: Failed to connect ws://127.0.0.1:7771
    at io.nuls.core.rpc.netty.channel.manager.ConnectManager.createConnect(ConnectManager.java:647)
    at io.nuls.core.rpc.netty.channel.manager.ConnectManager.getConnectByUrl(ConnectManager.java:632)
    at io.nuls.core.rpc.modulebootstrap.RpcModule.run(RpcModule.java:222)
    at io.nuls.core.rpc.modulebootstrap.NulsRpcModuleBootstrap.run(NulsRpcModuleBootstrap.java:87)
    at io.nuls.cmd.client.CmdClientBootstrap.main(CmdClientBootstrap.java:30)

我查看了本地端口的占用情况.

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:7790            0.0.0.0:*               LISTEN      13915/Connector 
tcp        0      0 0.0.0.0:7791            0.0.0.0:*               LISTEN      13915/Connector 
tcp        0      0 172.17.0.4:17558        0.0.0.0:*               LISTEN      12091/java      
tcp        0      0 0.0.0.0:7770            0.0.0.0:*               LISTEN      11400/Nulstar   
tcp        0      0 0.0.0.0:7772            0.0.0.0:*               LISTEN      13915/Connector 
tcp        0      0 0.0.0.0:7774            0.0.0.0:*               LISTEN      14066/Updater   
tcp        0      0 172.17.0.4:16064        0.0.0.0:*               LISTEN      11914/java   

发现 websocket:7771 端口,没有被占用。

我启动了 check-status 脚本,显示了以下结果。

==================RPC REDAY MODULE==================
account RPC NOT READY
block RPC NOT READY
nuls-chain RPC NOT READY
poc-consensus RPC NOT READY
nuls-cross-chain RPC NOT READY
ledger RPC READY
network RPC READY
protocol RPC NOT READY
smart-contract RPC NOT READY
transaction RPC NOT READY
==================REDAY MODULE==================
account STATE NOT READY
block STATE NOT READY
nuls-chain STATE NOT READY
poc-consensus STATE NOT READY
nuls-cross-chain STATE NOT READY
ledger STATE IS READY
network STATE IS READY
protocol STATE NOT READY
smart-contract STATE NOT READY
transaction STATE NOT READY
==================TRY RUNNING MODULE==================
account NOT TRY RUNNING
block NOT TRY RUNNING
nuls-chain NOT TRY RUNNING
poc-consensus NOT TRY RUNNING
nuls-cross-chain NOT TRY RUNNING
ledger TRY RUNNING
network NOT TRY RUNNING
protocol NOT TRY RUNNING
smart-contract NOT TRY RUNNING
transaction NOT TRY RUNNING
==================RUNNING MODULE==================
account STATE NOT RUNNING
block STATE NOT RUNNING
nuls-chain STATE NOT RUNNING
poc-consensus STATE NOT RUNNING
nuls-cross-chain STATE NOT RUNNING
ledger STATE IS RUNNING
network STATE NOT RUNNING
protocol STATE NOT RUNNING
smart-contract STATE NOT RUNNING
transaction STATE NOT RUNNING
==================NULS WALLET STATE==================
NULS WALLET NOT RUNNING

我是不是遗漏了什么?

chenluyong commented 5 years ago
root      4608     1  0 11:13 pts/1    00:00:00 Modules/Nulstar/Nulstar/0.1.0/Nulstar
root      4763     1 10 11:13 pts/1    00:00:07 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2/bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -Xms256m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+ParallelRefProcEnabled -XX:
root      4938     1 10 11:13 pts/1    00:00:06 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2/bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -Xms256m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+ParallelRefProcEnabled -XX:
root      5122     1 11 11:13 pts/1    00:00:07 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2/bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -Xms256m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+ParallelRefProcEnabled -XX:
root      5354     1 10 11:13 pts/1    00:00:07 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2/bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -Xms256m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+ParallelRefProcEnabled -XX:
root      5618     1  9 11:13 pts/1    00:00:06 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2/bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -Xms256m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+ParallelRefProcEnabled -XX:
root      5873     1  8 11:13 pts/1    00:00:05 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Libraries/JAVA/JRE/11.0.2/bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -Xms256m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+ParallelRefProcEnabled -XX:
root      7160  4608  0 11:13 pts/1    00:00:00 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Modules/Nulstar/Connector/0.1.0/Connector --adminport 7791 --allowednetworks 127.0.0.1/32 --clientport 7790 --commport 7772 --ip 127.0.0.1 --loglevel 4 --sslmode 0 --managerurl ws
root      7280  4608  0 11:13 pts/1    00:00:00 /cloud/nuls/bin/NULS-Wallet-linux64-alpha3/Modules/Nulstar/Updater/0.1.0/Updater --allowednetworks 127.0.0.1/32 --commport 7774 --ip 127.0.0.1 --loglevel 4 --sslmode 0 --managerurl ws://127.0.0.1:7771

我似乎启动了 websocket 的监听行为,可是在执行 start.sh 时没有接到任何错误信息。

chenluyong commented 5 years ago

已经配置 jdk

root@d364ff069a14:/cloud/nuls/bin/NULS-Wallet-linux64-alpha3# java -version
java version "11.0.3" 2019-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3+12-LTS, mixed mode)
niels1286 commented 5 years ago

在Beta2版本中是否还有此问题?

lijunzhou commented 5 years ago

不好意思,这么久才回复你的问题。 目前2.0正在开发测试阶段,所以版本更新很快。在8月12号发布beta3版本。 你可以通过调用nuls-v2仓库beta3分支或者develop分支下的package脚本完成构建,可以通过package -h 查看构建脚本的参数。现在构建脚本只支持linux和mac系统,window暂时不支持。 全节点钱包需要依赖JDK11。 至于RPC接口的调用和文档,你可以查看https://github.com/nuls-io/nuls-chainbox 这个仓库。 第3个问题两个版本有很大的差别,可以看成两个独立的系统。

chenluyong commented 5 years ago

好的,谢谢。