Skip to main content

Full Node

OS requirements

We highly recommend installing MyTonCtrl using the supported operating systems:

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Debian 11

Hardware requirements

Node usage on personal local machine

You shouldn't run any type of node on your personal local machine for long, even if it is satisfy the requirements. Nodes actively use disks and can damage them fast.

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)
  • 16 TB/month traffic on peak load
Be ready for peak loads

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).

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.

info

It's possible to find out which UDP port is opened from the netstat -tulpn command.

The TON Foundation recommends the following providers for running a Validator:

Cloud ProviderInstance TypeCPURAMStorageNetworkPublic IPTraffic
GCPn2-standard-1632 vCPUs128GB1TB NVMe SSD16 GbpsReserve a static external IP16 TB/month
Alibaba Cloudecs.g6.4xlarge32 vCPUs128GB1TB NVMe SSDUp to 10 GbpsBind an Elastic IP16 TB/month
Tencent CloudM5.4XLARGE32 vCPUs128GB1TB NVMe SSDUp to 10 GbpsAssociate an Elastic IP16 TB/month
Vultrbare metal Intel E-2388G16 Cores / 32 Threads128GB1.92TB NVMe SSD10 GbpsFixed IP address included with instance16 TB/month
DigitalOceangeneral purpose premium Intel32 vCPUs128GB1TB NVMe SSD10 GbpsFixed IP address included with instance16 TB/month
Latitudec3.medium.x8616 Cores / 32 Threads128GB1.9TB NVMe SSD10 GbpsFixed IP address included with instance16 TB/month
AWSi4i.4xlarge16 vCPUs128GB1 x 3,750 AWS Nitro SSD (fixed)Up to 25 GbpsBind an Elastic IP16 TB/month
info

Note: Prices, configurations, and availability may vary. It is advisable to always check 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

danger

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 non-root user, you can create this with the following steps (otherwise skip first two steps and go to the third).

  1. Login as root and create new user:
sudo adduser <username>
  1. Add your user to the sudo group:
sudo usermod -aG sudo <username>
  1. 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:

wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
sudo bash ./install.sh -d -c <CONFIG_URL>
  • -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 be validator or liteserver.

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.

Run the mytonctrl

  1. Run MyTonCtrl console from the local user account used for installation:

    mytonctrl
  2. Check the MyTonCtrl status using the status command:

    status

In testnet status fast command must be used instead of status.

The following statuses should be displayed:

  • mytoncore status: Should be in green.
  • local validator status: Should also be 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:

status

Make sure you have same output for status

For all nodes type Local Validator status section should appear. Otherwise, check troubleshooting section and check node logs.

Wait until Local validator out of sync becomes less than 20 seconds.

When new node have been started, even from dump, it's needed to wait up to 3 hours before out of sync number starts to go down. This is due to the fact that node still needs to establish it’s place in network, propagate it’s addresses via DHT tables etc.

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:

Help command

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.

logs

Check the node logs

Check the node logs upon failure:

tail -f /var/ton-work/log.thread*