TON Node Deployment

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1 servicesAll 1306 services
TON Node Deployment
Medium
from 1 business day to 3 business days
FAQ
Blockchain Development Services
Blockchain Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1229
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1166
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    863
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1075
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    829

Deploying a TON Node

TON (The Open Network) is technically interesting with dynamic sharding and infinite sharding. Architecturally it differs strongly from Ethereum: no EVM, there's TVM (TON Virtual Machine), smart contracts in FunC/Tact, and node synchronization requires understanding the hierarchy of masterchain + workchain + shardchain.

Why run your own node: reduce latency when working with TON API, remove dependency on public endpoints (tonapi.io, toncenter.com), get access to full data for indexing, or participate in the network as validator (requires 100,000+ TON for staking).

Types of TON Nodes

Full node — downloads and verifies all blocks, stores current state. Sufficient for most tasks: data reading, sending transactions, monitoring.

Archive node — full node + entire history of states. Needed for indexing historical data. Requires much more disk space (several terabytes).

Lite node — doesn't verify all blocks, trusts full/archive nodes. Suitable for lightweight clients.

Validator node — full node with right to create blocks. Requires stake and constant uptime.

System Requirements

Node Type CPU RAM Disk Network
Full node 8+ cores 16 GB 500 GB NVMe SSD 100 Mbps
Archive node 16+ cores 32-64 GB 4+ TB NVMe 1 Gbps
Validator 16+ cores 64 GB 1 TB NVMe 1 Gbps (stable)

NVMe is mandatory — SATA SSD won't handle I/O load during sync. HDD excluded.

Deployment via mytonctrl

MyTonCtrl is the official installer from TON Foundation. Ubuntu 20.04/22.04.

# Update system
apt update && apt upgrade -y

# Install mytonctrl
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
chmod +x install.sh
bash install.sh -m full   # -m full for full node, -m validator for validator

Installation compiles TON from source — takes 30-60 minutes depending on CPU.

After installation:

# Run interactive CLI
mytonctrl

# Inside mytonctrl
> status          # synchronization status
> getmasterchaininfo  # masterchain information
> getstatus       # general node status

Initial sync of full node — from several hours to several days depending on internet speed and disk I/O.

Configuration and Files

Configuration files after installation:

  • /var/ton-work/db/config.json — main node config
  • /var/ton-work/db/keyring/ — node keys
  • /var/ton-work/log — logs

Real-time logs:

journalctl -u validator -f
# or
tail -f /var/ton-work/log

Important parameters in config.json:

  • liteservers — list of lite server endpoints for connection
  • validator.adnl_id — ADNL address of node in TON P2P network

Checking Synchronization

# In mytonctrl
> status

# Output includes:
# Masterchain block: 12345678  (current node block)
# Network block: 12345700      (actual network block)
# Sync status: synchronizing   (or 'synced')

Node is considered synced when difference between local and network block < 10-20 blocks.

Lite Server for Applications

To connect your applications to the node you need Lite Server. Add to config.json:

{
  "liteservers": [
    {
      "@type": "liteserver.desc",
      "id": {
        "@type": "pub.ed25519",
        "key": "YOUR_LITE_SERVER_PUBLIC_KEY"
      },
      "port": 43678
    }
  ]
}

Key generation:

generate-random-id -m keys -n liteserver

Connection via @ton/ton (JavaScript SDK):

import { LiteClient, LiteRoundRobinEngine, LiteSingleEngine } from 'ton-lite-client';

const engine = new LiteSingleEngine({
  host: `tcp://YOUR_SERVER_IP:43678`,
  publicKey: Buffer.from('YOUR_LITE_SERVER_PUBLIC_KEY', 'base64'),
});

const client = new LiteClient({ engine });
const masterInfo = await client.getMasterchainInfo();

Configuration for Validator Node

Validator requires several additional steps beyond basic setup:

# In mytonctrl
> new_key                    # generate validator key
> add_validator_key KEY_HASH  # add key

# Replenish validator wallet
> send AMOUNT               # need minimum ~100k TON for staking

# Participate in elections
> participate_in_elections

TON conducts elections every ~36 hours. Validator must send application with stake amount. Upon successful validation — receives reward, on downtime or errors — slashing.

Monitoring

# Prometheus metrics from mytonctrl
> setup_monitoring

# Or via custom script
python3 /usr/src/mytonctrl/mytoncore/mytoncore.py --cli "getstatus" | \
  python3 -c "import sys, json; data=json.load(sys.stdin); print(data['masterchainblocktime'])"

Key alerts:

  • Node not synced > 5 minutes
  • For validator: missed > 2 consecutive rounds
  • RAM > 80% (memory leaks in validator process — known issue)

Typical Issues

Out of disk space during sync. TON actively writes to disk. Minimum 500 GB free space before starting sync.

ADNL connectivity. TON uses non-standard P2P protocol ADNL. Port UDP 30303 (by default) must be open. Check: sudo ufw allow 30303/udp.

Compilation failures. TON compiles from C++ source. Requires cmake >= 3.16, clang-14+ or gcc-10+. On older Ubuntu — install manually.

Validator downtime slashing. If validator node crashes during validation round — possible slashing. Set up monitoring with SMS/phone alerts, not just email.

Deployment timeline: full node — 1 day (installation + sync). Validator node with monitoring setup and elections participation — 2-3 days.