NodeRun

Validator

Benefits of operating a Shardeum validator

Earn SHM for securing the network. Contribute to the security, scalability and decentralization of Shardeum.

Minimum Hardware Requirements

  • 250 GB SSD storage
  • Quad core CPU less than 10 years old if self hosting
  • Dual core CPU works if hosted with newer Xeons / EPYC
  • 16 GB of ram, 4+ GB of virtual memory recommended
  • Hosting: 8 GB RAM + 8 GB Virtual Memory

Access the terminal interface for Shell CLI commands:

(Press at the same time)
Ctrl + Alt + T

Install package managers

We will use curl in this tutorial to download files:

sudo apt-get install curl

add Homebrew to your PATH:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"'
eval "$(/opt/homebrew/bin/brew shellenv)"

Update package managers

sudo apt update

Install docker and docker.io

sudo apt install docker.io

Check that docker is working with (should return version 20.10.12 or higher):

docker --version

Install docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Setup permissions for docker-compose:

sudo chmod +x /usr/local/bin/docker-compose

Check that docker-compose is working with (should return version 1.29.2 or higher):

docker-compose --version

Download and Install Validator

Run the following command:

curl -O https://raw.githubusercontent.com/shardeum/validator-dashboard/main/installer.sh && chmod +x installer.sh && ./installer.sh

The terminal will ask questions about your setup settings.

Give permission to collect validator data for bug reporting:

By running this installer, you agree to allow the Shardeum team to collect this data. (y/n)?:

Enter y to setup the web based dashboard:

Do you want to run the web based Dashboard? (y/n):

Set a password for dashboard access:

Set the password to access the Dashboard:

Add a custom session port for the web based dashboard or hit enter for port 8080:

Enter the port (1025-65536) to access the web based Dashboard (default 8080):

Add a custom external IP address or use an automatically detected IP address:

If you wish to set an explicit external IP, enter an IPv4 address (default=auto):

Add a custom internal IP address or use an automatically detected IP address:

If you wish to set an explicit internal IP, enter an IPv4 address (default=auto):

Set the first p2p port (default 9001):

To run a validator on the Sphinx Validator 1.X network, you will need to open two ports in your firewall.
This allows p2p communication between nodes.
Enter the first port (1025-65536) for p2p communication (default 9001):

Set the second p2p port (default 10001):

Enter the second port (1025-65536) for p2p communication (default 10001):

Add a custom path or install to root:

What base directory should the node use (defaults to ~/.shardeum):

Wait for the installation process to complete.

Port Forwarding

If you are behind a router and you are using ports 9001 and 10001 for p2p communication, make sure ports 9001 and 10001, are forwarded (be careful doing this since it will modify your firewall).

Router port forwarding example with AT&T:

https://www.att.com/support/article/u-verse-high-speed-internet/KM1010280/

More info on router port forwarding:

https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/

Open validator CLI

Make sure you are in the root directory by running:

cd .shardeum

Start the CLI by running the following shell script:

./shell.sh
Docker Errors

If you see docker permission error:

Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock:
Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/shardeum-dashboard/json":
dial unix /var/run/docker.sock:
connect:
permission denied

run:

sudo usermod -a -G docker $USER && newgrp docker

if that does not work, also try:

 
sudo service docker start

then try to start the shell script again.

Open validator GUI

Go to your web browser and go to:

https://localhost:8080/

You might see a warning page when trying to access this address in your web browser. Ignore this warning and continue to the validator dashboard. Another way to work around this warning:

Enter the password you set during the installation process.

loginPage.jpg

You should now see the “Overview” page for the Shardeum Validator Dashboard in your web browser:

overviewBetanet.jpg

Start validator

Go to the “Maintenance” page, then click the “Start Node” button in the top left white box:

startBetanet.jpg

if that does not work, you can also try running the following command on cli:

operator-cli start

Monitor validator

Go to “Performance” to see your node’s hardware performance here:

performanceBetanet.jpg

For more details about your node status run the following inside the CLI:

operator-cli status

Connect Wallet to Shardeum Testnet

[Connect to Shardeum Validator with your wallet by clicking the button linked here](ADD details)

Step 8: Get SHM from Betanet Faucet

Shardeum Discord SHM Faucet for Sphinx 1.X

Stake SHM to validator

GUI

After you start the validator, go to the “Settings” page. You will be asked to connect your wallet:

connectWalletBetanet.jpg

After you connect your wallet, you should see the following:

connectedWalletOptions.jpg

When you click "Add Stake", you will see the following:

connectedWalletAddStake.jpg

-Stake Wallet Address [wallet connected]
-Nominee Public Key [filled in automatically while validator is running]
-Stake amount (SHM) [empty and is in units ether not wei]

This example has filled in 10 SHM tokens to stake.

Stake the specified minimum amount to start earning rewards.(For testnet, its 10 SHM)

Once all fields are filled, click the “Stake” button.

Your wallet will ask you to sign the transaction stake your SHM.

Once the transaction is signed and complete, you have staked your SHM tokens successfully.

If your node status is on Standby and you have 10 SHM or more staked, your validator node is setup correctly.

The network will automatically add your validator to be active in the network.

The time to be added as an active validator will vary based on network load and validators in the network.

If you see your validator IP address as "0.0.0.0":

Go into the operator dashboard docker (may be different if you customized install location:

cd ~/.shardeum
./shell.sh

Get your node's external IP:

curl https://ipinfo.io/ip

The returned IP in the format of nnn.nnn.nnn.nnn is your EXTERNAL_IP.

Set the number above in place of EXTERNAL_IP:

export APP_IP="EXTERNAL_IP"

CLI

You can also stake and unstake from the Validator CLI if you are not able to access a web browser for the Validator GUI.

First, set your private key in your Validator CLI:

Be very careful with your private keys. We recommend you use a private key which has testnet tokens only to be safe.

Please note, this is not the recommended method for staking with the Shardeum validator. Mishandling of private key may result in loss of assets. Shardeum discards private key after the transaction is signed. Take precaution when extracting your private key.

export PRIV_KEY=<private_key>

Make sure your private key is stored in your Validator CLI by running:

echo $PRIV_KEY

Add stake with:

operator-cli stake 10

Check your stake amount with:

operator-cli stake_info <wallet_address>

Remove stake with:

operator-cli unstake

Validator

Version

It is necessary to keep your validator updated by checking the minimum version required and your current version periodically.

Run:

curl localhost:9001/nodeinfo

Update

  • Stop your validator before updating (you don't need to unstake though)
  • In your terminal, first exit from the container using
exit
cd ..
  • Run the following curl script
curl -O https://gitlab.com/shardeum/validator/dashboard/-/raw/main/installer.sh && chmod +x installer.sh && ./installer.sh

You might manually have to start the GUI afterwards with:

operator-cli gui start
  • Check your currect version from either CLI or GUI and make sure it is the latest version.

CLI And GUI

Version

Run:

operator-cli version

Update

Run:

operator-cli update

Commands

To see all CLI commands, run:

operator-cli help

Uninstall Validator

Useful if your validator is outdated and you want to clean your last installation.

You can delete the validator folder while in your root directory with:

rm -rf .shardeum