Full node
OS requirements
We highly recommend installing MyTonCtrl using the supported operating systems:
- Ubuntu 20.04
- Ubuntu 22.04
- Debian 11
Hardware requirements
You shouldn't run any type of node on your personal local machine for extended periods, even if it meets the requirements. Nodes actively use disks, which can lead to rapid wear and potential damage.
With validator
- 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)
- 64 TB/month traffic (100 TB/month on peak load)
To reliably handle peak loads, a connection of at least 1 Gbit/s is typically required, while the average load is expected to be around 100 Mbit/s.
Port forwarding
All types of nodes require a static external IP address, one UDP port forwarded for incoming connections, and all outgoing connections to be open—the node uses random ports for new outgoing connections. The node must also be visible to the outside world over the NAT.
You can accomplish this by contacting your network provider or renting a server to run a node.
You can find out which UDP port is open using the netstat -tulpn
command.
Recommended providers
The TON Foundation recommends the following providers for running a Validator:
Cloud Provider | Instance Type | CPU | RAM | Storage | Network | Public IP | Traffic |
---|---|---|---|---|---|---|---|
GCP | n2-standard-16 | 32 vCPUs | 128GB | 1TB NVMe SSD | 16 Gbps | Reserve a static external IP | 64 TB/month |
Alibaba Cloud | ecs.g6.4xlarge | 32 vCPUs | 128GB | 1TB NVMe SSD | Up to 10 Gbps | Bind an Elastic IP | 64 TB/month |
Tencent Cloud | M5.4XLARGE | 32 vCPUs | 128GB | 1TB NVMe SSD | Up to 10 Gbps | Associate an Elastic IP | 64 TB/month |
Vultr | bare metal Intel E-2388G | 16 Cores / 32 Threads | 128GB | 1.92TB NVMe SSD | 10 Gbps | Fixed IP address included with instance | 64 TB/month |
DigitalOcean | general purpose premium Intel | 32 vCPUs | 128GB | 1TB NVMe SSD | 10 Gbps | Fixed IP address included with instance | 64 TB/month |
Latitude | c3.medium.x86 | 16 Cores / 32 Threads | 128GB | 1.9TB NVMe SSD | 10 Gbps | Fixed IP address included with instance | 64 TB/month |
AWS | i4i.8xlarge | 32 vCPUs | 256GB | 2 x 3,750 AWS Nitro SSD (fixed) | Up to 25 Gbps | Bind an Elastic IP | 64 TB/month |
Note: Prices, configurations, and availability can change. It is recommended to always refer to the official documentation and pricing pages of the respective cloud provider before making any decisions.
Run a Node (video)
Please, check this video step-by-step tutorial to start promptly:
Run a node (text)
Switch to non-root user
This step is required to successfully install and use MyTonCtrl—don't ignore non-root user creation. Without this step, there will be no errors during installation, but MyTonCtrl will not work properly.
If you don't have a non-root user, you can create one with the following steps (otherwise, skip the first two steps and go to the third).
- Login as root and create new user:
sudo adduser <username>
- Add your user to the sudo group:
sudo usermod -aG sudo <username>
- Log into the new user (if you are using ssh, you will need to stop current session and reconnect with correct user)
ssh <username>@<server-ip-address>
Install the MyTonCtrl
Download and run the installation script from the non-root user account with sudo privileges:
- Ubuntu
- Debian
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
sudo bash install.sh
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
su root -c 'bash install.sh'
-d
- mytonctrl will download a dump of the latest blockchain state. This will reduce synchronization time by several times.-c <path>
- If you want to use not public liteservers for synchronization. (not required)-i
- Ignore minimum requirements, use it only if you want to check compilation process without real node usage.-m
- Mode, can bevalidator
orliteserver
.-t
- Disable telemetry.
To use testnet, -c
flag should be provided with https://ton.org/testnet-global.config.json
value.
Default -c
flag value is https://ton-blockchain.github.io/global.config.json
, which is default mainnet config.
Running the MyTonCtrl
- Run
MyTonCtrl
console from the local user account used for installation:
mytonctrl
- Check the
MyTonCtrl
status using thestatus
command:
status
In testnet status fast
command must be used instead of status
.
The following statuses should be displayed:
- mytoncore status: should display in green.
- local validator status: should also display in green.
- local validator out of sync: initially, a
n/a
string is displayed. As soon as the newly created validator connects with other validators, the number will be around 250k. As synchronization progresses, this number decreases. When it falls below 20, the validator is synchronized.
Example of the status command output:
For all nodes type Local Validator status section should appear. Otherwise, check troubleshooting section and check node logs.
Please wait until the Local validator out of sync
status is less than 20 seconds.
When a new node is started, even from a dump, it is important to wait up to 3 hours before the out of sync number begins to decrease. This delay occurs because the node must establish its place in the network and propagate its addresses through the DHT tables, among other processes.
Uninstall mytonctrl
Download script and run it:
sudo bash /usr/src/mytonctrl/uninstall.sh
Check mytonctrl owner
Run:
ls -lh /var/ton-work/keys/
Tips & tricks
List of available commands
- You can use
help
to get a list of available commands:
Check the MyTonCtrl logs
- To check MyTonCtrl logs, open
~/.local/share/mytoncore/mytoncore.log
for a local user or/usr/local/bin/mytoncore/mytoncore.log
for root.
Check the node logs
Check the node logs in case of failure:
tail -f /var/ton-work/log.thread*
Support
Contact technical support with @mytonctrl_help.