How To Deploy A VeChain Node (Thor Solo Node)

How To Deploy A VeChain Node (Thor Solo Node)
How to Deploy a Vechain Node

Running a VeChain node allows you to earn extra income while supporting the network's security and performance. Our guide will cover everything you need to know about VeChain nodes, node rewards, and, most importantly, how to set up your node on VeChain.

Disclaimer: All information in this post is only relevant at the time of writing. Please regularly refer to VeChain docs for the latest updates, and don't forget to do your own research (DYOR).

What is a Vechain Node?

A Vechain node is a device that participates in the VeChain network. VeChain nodes handle various tasks within the blockchain, including validating and storing transactions.

There are different types of nodes on the VeChainThor network. Vechain Authority Masternode (AM) and full node are the most popular. Economic Node and X-Node are also essential parts of VeChain.

Authority Masternode

The masternode concept is nothing new, especially if you're familiar with Dash node installation. VeChain Authority Masternodes are validator nodes, meaning that these nodes are responsible for validating and signing blocks on VeChain. AMs run VeChainThor full node software and store all the network's transaction data.

In return for their contributions, authority nodes get 30% of all VTHO from transaction or gas fees in a block. The number of authority nodes is fixed at 101. So, the only way to be part of this group is to join the waiting list and wait until an open slot (an authority node is disqualified).

Economic Node and X-Node

Economic node and X-node are both staking nodes on the VeChainThor blockchain. They play an important role in securing and validating the network, and they receive rewards in the form of VTHO for their contributions.

Economic nodes require a minimum stake of 1 million VET, while X-nodes require a minimum stake of 600,000 VET. X-nodes also have a maturity date, meaning the VET staked will be locked for a certain period. The maturity date for X-nodes varies depending on the type of node:

  • VeThor X-Node: 60 days
  • Thunder X-Node: 156 days
  • Mjolnir X-Node: 90 days

Rewards and Benefits:

Economic nodes receive a share of the daily VTHO generated by the VeChainThor node bonus pool. The bonus pool is distributed to all eligible node token stakeholders in proportion to their stake.

X-Nodes receive the same rewards as economic nodes, plus an additional reward from the Foundation X Reward Pool. The Foundation X Reward Pool is a special pool that contains 5 billion VET. The Thor Power generated by this pool is divided among all eligible X-Nodes.

In addition to rewards, X-Nodes also receive a number of other benefits, such as whitelisting for VeChain ICOs, priority access to VeChain ecosystem events and resources, and increased voting power in VeChain governance.

Run a Node on Vechain
Run a Node on Vechain

Thor Solo Node Setup Requirements

To set up a Thor solo node, make sure you meet the following prerequisites:

Hardware

  • CPU: A 4-core CPU is usually sufficient. Adding more cores is always a plus if you want a higher speed to perform power-intensive tasks.
  • RAM: At least 4GB of RAM. If you plan to provide long-term support to the network, you can consider adding extra RAM.
  • Storage: SSD or NVME with at least 100 GB of available disk space (to store the blockchain data) and extra gigabytes (if you want to go for the longer run). The more, the better.

Operating System

  • Linux: Ubuntu 16.04 or higher
  • Windows: Windows 7 or higher (64-bit version).
  • Go 1.17+ and C compiler. To install Go, follow this link.

Network Connectivity

  • A stable internet connection with sufficient bandwidth to download and synchronize the blockchain.

How to Set up a VeChain Node: Running a Local Thor Solo Node

  • Install Go 1.17+ and C compiler before processing further.
  1. Create Thor Binary
  • Clone repository:
git clone https://github.com/vechain/thor
  • Build Thor:
cd thor
make

If there is no error, you will see a thor binary under the bin directory.

  1. Command and Sub-command

Thor provides various command-line options. Run the following command to check out:

./bin/thor -h

The most important ones noted in Vechain Docs are:

  • --api-cors '*': This option allows you to specify a list of domains from which cross-origin requests to the API will be accepted.
  • --api-addr value: You can set the API service listening address with this option. By default, it's set to 'localhost:8669.'
  • --api-call-gas-limit value: This option lets you limit the amount of gas for contract calls. The default is 50,000,000.
  • --api-backtrace-limit value: It allows you to set a limit on the distance between the 'position' and the best block for subscription APIs. The default is 1,000.
  • --verbosity value: This sets the level of detail in the logs (ranging from 0 to 9). The default is 3.

Thor also provides sub-commands to control how the node functions and stores blockchain data. You can use them like this:

  • To create a new block when there are pending transactions:
./bin/thor solo --on-demand
  • To save blockchain data to disk (by default, it's stored in memory):
./bin/thor solo --persist
  • Combining both options to make them work together:

./bin/thor solo --persist --on-demand

If you're not running Thor on the same computer as your development environment and want to allow remote connections, you need to specify an API listening address using the --api-addr command-line option. For example, to make Thor accept connections from any remote source, you can use:

./bin/thor solo --on-demand --api-addr 0.0.0.0:8669

  1. Increasing Verbosity

By default, Thor provides moderate information (verbosity level 3), which may not be enough for debugging. To get more detailed information, you can use the --verbosity command-line option. For instance:

./bin/thor solo --on-demand --verbosity 4

  1. Managing Master Key

Thor has specific commands for managing the master key of the node. You can use the master-key command-line option to interact with it:

# print the master address
./bin/thor master-key # export master key to keystore
./bin/thor master-key --export > keystore.json # import master key from keystore
cat keystore.json | ./bin/thor master-key --import
  1. Using RESTful API

Thor offers a RESTful API alongside the usual RPC interface. You can access the API in your web browser using this address:http://127.0.0.1:8669/doc/swagger-ui/

If Thor is running on a different host, specify that host's IP and use the --api-addr command-line option when starting Thor.

  1. Running Thor

Now you can run Thor in solo mode by using this command:

./bin/thor solo --on-demand

Thor can also be run on the test or main network by specifying:

--network test # for the test network
--network main # for the main network

You can even create a custom network by using a custom-genesis JSON file.

For development, it's recommended to run Thor with these flags to allow all remote connections:

./bin/thor solo --on-demand --api-addr 0.0.0.0:8669 --gas-limit 10000000000000 --api-call-gas-li

Note: You can run a solo node as a Docker container with this command:

docker run -p 127.0.0.1:8669:8669 vechain/thor:latest solo --api-cors '*' --api-addr 0.0.0.0:8669