Self Hosting
Install a validator
Install a Shardeum Validator from scratch
Update Exisiting Validator
Update your validator to the latest version
Validator Dashboard
Setup your Validator Dashboard
Validator CLI commands
Learn more about Validator CLI commands
Get Testnet SHM
Get Testnet SHM to add stake to your validator
Uninstall Validator
Uninstall your Shardeum Validator
The instructions on this page are primarily written for Ubuntu/Linux operating systems. If you are using a different operating system you will need to adapt the commands and steps accordingly. The core concepts remain the same, but package installation methods and system commands may differ.
For true decentralization and censorship resistance, it's crucial to minimize reliance on cloud providers. Self-hosting your Shardeum validator on personal hardware offer several advantages:
- Enhanced network security and resilience
- Reduced risk of centralized points of failure
- Greater control over your node's operation and data
Shardeum nodes are versatile and can run on various personal hardware platforms:
- Desktop computers
- Laptops
- Dedicated servers
While it's possible to run a validator on your everyday computer, it is generally recommended to use a dedicated machine for optimal performance and security. This approach ensures your validator operates consistently without interfering with your daily computing tasks.
By choosing to self-host, you're not just running a validator – you're actively contributing to the robustness and decentralization of the Shardeum network.
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:
Install the Shardeum Validator
Install package managers
We will use curl in this tutorial to download files:
Update package managers
Install docker and docker.io
Check that docker is working with (should return version 20.10.12 or higher):
Download and Install Validator
Using cURL
To use the installer script, run the following command in your terminal:
The terminal will ask questions about your setup settings.
Give permission to collect validator data for bug reporting:
Enter y to setup the web based dashboard:
Set a password for dashboard access:
Add a custom session port for the web based dashboard or hit enter for port 8080:
Add a custom external IP address or use an automatically detected IP address:
Add a custom internal IP address or use an automatically detected IP address:
Set the first p2p port (default 9001):
Set the second p2p port (default 10001):
Add a custom path or install to root:
Wait for the installation process to complete.
Using Docker
If you prefer to set up the validator directly using Docker, follow these steps:
Replace YOUR_NEW_PASSWORD with a secure password of your choice.
This will start the validator with the default ports, 8080 for the dashboard GUI, and 9001
and 10001
for the validator P2P ports. To change the default ports the validator uses, set the following environment variables. In this example:
- The dashboard GUI port is set to 10080.
- The validator P2P ports are set to 11001 (internal) and 12002 (external).
To change the password for the dashboard GUI, run the set-password.sh
script located in the ~/shardeum
directory:
Open validator GUI
Go to your web browser and go to:
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.
You should now see the “Overview” page for the Shardeum Validator Dashboard in your web browser:
Start validator
Click the “Start Node” button in the top right white box:
if that does not work, you can also try running the following command on cli:
Set password for logging into the GUI
Monitor validator
Go to “Performance” to see your node’s hardware performance here:
For more details about your node status run the following inside the CLI:
Connect Wallet to Shardeum Testnet
Connect to Shardeum Validator with your wallet by configuring the network with the network details here.
Get SHM from ITN Faucet
Claim testnet tokens from Shardeum Discord SHM Faucet.
Stake SHM to validator
GUI
After you start the validator, you will be asked to connect your wallet:
After you connect your wallet, click on the "Add Stake" button, you will see the following:
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.
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.
Open validator CLI:
Make sure you are in the root directory by running:
Start the CLI by running the following shell script:
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.
Make sure your private key is stored in your Validator CLI by running:
Add stake with:
Check your stake amount with:
Remove stake with:
Validator
Version
It is necessary to keep your validator updated by checking the minimum version required and your current version periodically.
Run:
Update
- Stop your validator before updating (you don't need to unstake though)
- In your terminal, first exit from the container using
- Run the following curl script
You might manually have to start the GUI afterwards with:
- Check your currect version from either CLI or GUI and make sure it is the latest version.
CLI And GUI
Version
Run:
Update
Run:
Commands
To see all CLI commands, run:
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: