Validator Node
Minimal Hardware Requirements
- 16 cores CPU
- 128 GB RAM
- 1TB NVME SSD OR Provisioned 64+k IOPS storage
- 1 Gbit/s network connectivity
- public IP address (fixed IP address)
- 100 TB/month traffic on peak load
Typically you'll need at least a 1 Gbit/s connection to reliably accommodate peak loads (the average load is expected to be approximately 100 Mbit/s).
We draw special attention of validators to IOPS disk requirements, it is crucially important for smooth network operation.
Port Forwarding
All types of nodes require a static external IP address, one UDP port to be forwarded for incoming connections and all outgoing connections to be open - the node uses random ports for new outgoing connections. It's necessarily for the node to be visible to the outside world over the NAT.
It can be done with your network provider or rent a server to run a node.
It's possible to find out which UDP port is opened from the netstat -tulpn
command.
Prerequisite
Learn Slashing Policy
If the validator processed less than 90% of the expected number of blocks during a validation round, this Validator will be fined by 101 TON. Read more about slashing policy.
Run a Fullnode
Launch Full Node before follow this article.
Check that validator mode is enabled using status_modes
command. If it's not, refer mytonctrl enable_mode command.
Architecture
View the List of Wallets
Check out the list of available wallets in the MyTonCtrl console using the wl
command:
wl
During the installation of mytonctrl, the validator_wallet_001 wallet is created:
Activate the Wallets
-
Send the necessary number of coins to the wallet and activate it.
Recently (at the end of 2023), the approximate figures have been a minimum stake of around 340K TON and a maximum of about 1M TON.
Check current stakes with tonscan.com to understand necessary amount of coins.
Read more how maximum and minimum stakes calculated.
-
Use the
vas
command to display the history of transfers:vas [wallet name]
-
Activate the wallet using the
aw
command (wallet name
is optional, if no arguments provided it will activate all available)aw [wallet name]
Your Validator is Now Ready
mytoncore will automatically join the elections. It divides the wallet balance into two parts and uses them as a stake to participate in the elections. You can also manually set the stake size:
set stake 50000
set stake 50000
— this sets the stake size to 50k coins. If the bet is accepted and our node becomes a validator, the bet can only be withdrawn in the second election (according to the rules of the electorate).
Maintain Guidelines
If the validator processed less than 90% of the expected number of blocks during a validation round, this Validator will be fined by 101 TON.
Read more about slashing policy.
As a TON Validators, make sure you are follow these crucial steps to ensure network stability and to avoid slashing penalties in the future.
Essential Actions:
- Follow the @tonstatus turn on notifications and be ready to apply urgent updates if necessary.
- Ensure your hardware meets or exceeds minimal system requirements.
- We imperatively request you to use mytonctrl.
- In
mytonctrl
keep update due the notification and enable telemetry:set sendTelemetry true
- In
- Set up monitoring dashboards for RAM, Disk, Network, and CPU usage. For technical assistance, contact @mytonctrl_help_bot.
- Monitor the efficiency of your validator with dashboards.
- Check with
mytonctrl
viacheck_ef
. - Build dashboard with APIs.
- Check with
mytonctrl
allows to check effectiveness of validators via command check_ef
which outputs your validator efficiency data for the last round and for current round.
This command retrieves data by calling checkloadall
utility.
Ensure, that your efficiency is greater than 90% (for the full round period).
In case of low efficiency - take action to fix the problem. Contact technical support @mytonctrl_help_bot if necessary.
Validation and Effectiveness APIs
Please set up dashboards to monitor your validators using these APIs.
Penalized Validators Tracker
You can track penalized validators on each round with @tonstatus_notifications.
Validation API
https://elections.toncenter.com/docs - use this API to get information about current and past validation rounds (cycles) - time of rounds, which validators participated in them, their stakes, etc.
Information on current and past elections (for the validation round) is also available.
Efficiency API
https://toncenter.com/api/qos/index.html#/ - use this API to get information on the efficiency of validators over time.
This API analyses the information from the catchain and builds an estimate of the validator's efficiency. This API does not use the checkloadall utility, but is its alternative.
Unlike checkloadall
which works only on validation rounds, in this API you can set any time interval to analyze the validator's efficiency.
Workflow:
-
Pass ADNL address of your validator and time interval (
from_ts
,to_ts
) to API. For accurate result it makes sense to take a sufficient interval, for example from 18 hours ago the current moment. -
Retrieve the result. If your efficiency percentage field is less than 80%, your validator is not working properly.
-
It is important that your validator participates in validation and has the same ADNL address throughout the specified time period.
For example, if a validator participates in validation every second round - then you need to specify only those intervals when he participated in validation. Otherwise, you will get an incorrect underestimate.
It works not only for Masterchain validators (with index < 100) but also for other validators (with index > 100).
Support
Contact technical support @mytonctrl_help_bot. This bot for validators only and will not assist on questions for regular nodes.
If you have a regular node, then contact the group: @mytonctrl_help.