NodeCore Operations

From Veriblock Wiki
Jump to: navigation, search

See: Main_Page, 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

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 openjdk-14-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

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: