Difference between revisions of "NodeCore Operations"

From Veriblock Wiki
Jump to: navigation, search
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
See: [[Main_Page]], [[HowTo_run_NodeCore]], [[ReleaseNotes]]
+
See: [[Main_Page]], [[NodeCore_QuickStart]], [[HowTo_run_NodeCore]], [[ReleaseNotes]]
  
 
__TOC__
 
__TOC__
Line 10: Line 10:
 
=== Hardware ===
 
=== Hardware ===
  
* At least 4GB of memory
+
* At least 12GB of memory recommended
 
* 2 CPU Cores
 
* 2 CPU Cores
* SSD drive (much disk activity on nodecore.dat file)
+
* SSD drive (much disk activity on block files)
* 50GB data drive (10GB/month of nodecore)
+
* 75GB free space (As of 8/30/2021, data directory is 41G)
 
* OS = Windows, Linux, Mac
 
* OS = Windows, Linux, Mac
  
Line 23: Line 23:
  
 
Starting with v0.4.6 VeriBlock officially supports OpenJDK 8 - 14 on Ubuntu, CentOS, Windows 10, and Mac OS X with backwards compatibility for Oracle Java
 
Starting with v0.4.6 VeriBlock officially supports OpenJDK 8 - 14 on Ubuntu, CentOS, Windows 10, and Mac OS X with backwards compatibility for Oracle Java
 +
 +
Note that Java 15 and 16 are not currently supported.
  
 
==== CentOS - OpenJDK 8 ====
 
==== CentOS - OpenJDK 8 ====
Line 32: Line 34:
 
</pre>
 
</pre>
  
...you can resolve the issue by using the Zulu build of OpenJDK 11 per the following instructions:
+
You can resolve the issue by using the Zulu build of OpenJDK 11 per the following instructions:
  
 
https://www.linuxuprising.com/2019/04/install-latest-openjdk-12-11-or-8-in.html
 
https://www.linuxuprising.com/2019/04/install-latest-openjdk-12-11-or-8-in.html
Line 42: Line 44:
 
<pre>
 
<pre>
 
#install Java on Ubuntu:
 
#install Java on Ubuntu:
sudo apt-get install default-jre
+
sudo apt install default-jre
 
</pre>
 
</pre>
  
Line 59: Line 61:
  
 
Sample linux script:
 
Sample linux script:
 +
 +
# Check for latest package release at https://explore.veriblock.org/api/stats/download
  
 
<pre>
 
<pre>
mkdir veriblock-0.4.8
+
mkdir veriblock-0.4.12
cd veriblock-0.4.8
+
cd veriblock-0.4.12
wget https://github.com/VeriBlock/nodecore-releases/releases/download/v0.4.8/veriblock-nodecore-all-0.4.8.tar.gz
+
wget https://github.com/VeriBlock/nodecore-releases/releases/download/v0.4.12/veriblock-nodecore-all-0.4.12.tar.gz
tar zxvf veriblock-nodecore-all-0.4.8.tar.gz
+
tar zxvf veriblock-nodecore-all-0.4.12.tar.gz
cd nodecore-0.4.8/bin
+
cd nodecore-0.4.12/bin
 
./nodecore
 
./nodecore
 
</pre>
 
</pre>
Line 72: Line 76:
  
 
=== Windows ===
 
=== Windows ===
 +
 +
For best usage, Java 14 is recommended because it supports all NodeCore Suite applications. (The GUI Wallet needs Java 14)
 +
 +
Here is a direct link to Java 14 via AdoptOpenJDK:
 +
 +
https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_x64_windows_hotspot_14.0.2_12.msi
 +
 +
After Java is installed:
  
 
<pre>
 
<pre>
Line 126: Line 138:
 
See: [[NodeCore_QuickStart]]
 
See: [[NodeCore_QuickStart]]
  
=== Update NodeCore ===
+
===Update NodeCore===
 +
 
 +
Keep the data directory in a separate folder, such that you do not need to move any files each time you update.
  
To make it easy to update NodeCore we recommend that you store your data directory separate from the default installation.
+
1. Download new NC
The default data directory for NodeCore is '''nodecore-<version>/bin/'''
 
  
Using the startup flags you can specify a different disk location for this directory.
+
2. Stop old NC (either with CTRL+C or stopnodecore from the NC_CLI)
  
If you create '''/home/user/VeriBlock''' you can then copy your '''mainnet''' or '''testnet''' folder into that location along with your '''nodecore.properties''' and then when you wish to update, you simply stop your existing NodeCore instance, and re-start the new one with '''./nodecore -d /home/user/VeriBlock'''
+
3. Start new NC with -d parameter to specify the data directory. This is the directory that contains your "mainnet" folder.
 +
If mainnet folder is "C:\Users\My User\Desktop\VeriBlock\mainnet", then use "C:\Users\My User\Desktop\VeriBlock" for your data directory.
  
Additionally you can use the '''-c''' flag to specify the path to your '''nodecore.properties''' if it is located outside of your data directory.
+
<pre>
 +
#Windows
 +
nodecore.bat -d "C:\Users\My User\Desktop\VeriBlock"
  
On Windows, you will likely have spaces in your directory name so you can start with '''nodecore.bat -d "C:\Users\My User\Desktop\VeriBlock"''' with the path encased in quotes.
+
#Linux
 +
./nodecore -d /home/user/VeriBlock
 +
</pre>
  
 
== Operational stats ==
 
== Operational stats ==

Latest revision as of 13:29, 11 April 2022

See: Main_Page, NodeCore_QuickStart, HowTo_run_NodeCore, ReleaseNotes

Overview

This page explains operations for NodeCore. For more detail, see: HowTo_run_NodeCore

Requirements

Hardware

  • At least 12GB of memory recommended
  • 2 CPU Cores
  • SSD drive (much disk activity on block files)
  • 75GB free space (As of 8/30/2021, data directory is 41G)
  • OS = Windows, Linux, Mac

For best peering performance, ensure that ports 7500-7501 are open to the internet.

If running a pool, ensure that 8500 and 8501 are open to any machines you want to mine with (if running a public pool, ensure 8500 and 8501 are open to the internet).

Software

Starting with v0.4.6 VeriBlock officially supports OpenJDK 8 - 14 on Ubuntu, CentOS, Windows 10, and Mac OS X with backwards compatibility for Oracle Java

Note that Java 15 and 16 are not currently supported.

CentOS - OpenJDK 8

If you experience an error running NodeCore on CentOS:

VERIBLOCK CANNOT FUNCTION WITHOUT THE SECP256K1 ELLIPTICAL CURVE

You can resolve the issue by using the Zulu build of OpenJDK 11 per the following instructions:

https://www.linuxuprising.com/2019/04/install-latest-openjdk-12-11-or-8-in.html

How to Install

Linux

#install Java on Ubuntu:
sudo apt install default-jre

For best peering results, allow incoming connections to port 7500/7501. If running a public pool, allow incoming connections to port 8500/8501. If you want to connect remote CLIs or PoP miners, you will have to allow incoming connections on port 10500/10501 from the machines you plan to connect from

#start nodecore
cd <NC_Directory>/nodecore-<version>/bin

#run NC (could run multiple ways, such as in a screen)
cd <NC_Directory>/nodecore-<version>/bin
screen -S nodecore './nodecore'

Sample linux script:

  1. Check for latest package release at https://explore.veriblock.org/api/stats/download
mkdir veriblock-0.4.12
cd veriblock-0.4.12
wget https://github.com/VeriBlock/nodecore-releases/releases/download/v0.4.12/veriblock-nodecore-all-0.4.12.tar.gz
tar zxvf veriblock-nodecore-all-0.4.12.tar.gz
cd nodecore-0.4.12/bin
./nodecore

NOTE: If you wish to limit the amount of memory that NodeCore uses to a smaller number, change the -Xmx6G option in bin/nodecore to -Xmx4G (for 4G)

Windows

For best usage, Java 14 is recommended because it supports all NodeCore Suite applications. (The GUI Wallet needs Java 14)

Here is a direct link to Java 14 via AdoptOpenJDK:

https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_x64_windows_hotspot_14.0.2_12.msi

After Java is installed:

cd /<NC_Directory>/nodecore-<version>/bin
nodecore.bat

NOTE: If you wish to limit the amount of memory that NodeCore uses to a smaller number, change the -Xmx6G option in bin/nodecore.bat to -Xmx4G (for 4G)

How to run

Start

NOTE: Starting with version 0.4.6, you can run ./nodecore -d USER to store the data in ~/VeriBlock to make future upgrades easier, or specify your own datadir with ./nodecore -d /path/to/datadir

Run the startup command (either nodecore for linux, or nodecore.bat for windows)

To run NodeCore in a loop:

Linux

while true
do
    ./nodecore
    read -t 30
    echo Restarting NodeCore...
done

Windows:

:execute
call nodecore.bat

timeout /t 30 > NUL
echo Restarting NodeCore...
goto execute

Stop

Best option is to connect to NodeCore with the NC_CLI run "stopnodecore" (see: NodeCore_CommandLine#stopnodecore), and wait 10-30 seconds for NodeCore to gracefully shut down.

One can also use CTRL+C for graceful shutdown.

Options

Can pass in a data directory: -d ~/data

Install NodeCore

See: NodeCore_QuickStart

Update NodeCore

Keep the data directory in a separate folder, such that you do not need to move any files each time you update.

1. Download new NC

2. Stop old NC (either with CTRL+C or stopnodecore from the NC_CLI)

3. Start new NC with -d parameter to specify the data directory. This is the directory that contains your "mainnet" folder. If mainnet folder is "C:\Users\My User\Desktop\VeriBlock\mainnet", then use "C:\Users\My User\Desktop\VeriBlock" for your data directory.

#Windows
nodecore.bat -d "C:\Users\My User\Desktop\VeriBlock"

#Linux
./nodecore -d /home/user/VeriBlock

Operational stats

  • Full resync --> varies greatly based on network
  • Restart --> less than 2 minutes (constant)
  • nodecore.dat file --> 10GB / month
  • Memory usage --> less than 4GB (can increase by setting xmx, and Java will take max amount allowed). Allow higher memory when running an application node, such as for a pool.

Random

Make sure antivirus and firewall are not blocking NodeCore

  • NC uses a large nodecore.dat file --> want to exclude this file from anti-virus monitoring
  • NC has much network activity (ports 10500, 7500, 8501) --> If networking issues then troubleshoot firewall

Windows: