Розгортання ноди TON

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розгортання ноди TON
Середній
від 1 дня до 3 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1308
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1221
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    921
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1149
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    611
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    886

Розгортування ноди TON

TON (The Open Network) — технічно цікавий блокчейн з динамічним шардингом та нескінченим шардингом. Архітектурно він сильно відрізняється від Ethereum: немає EVM, є TVM (TON Virtual Machine), смарт-контракти на FunC/Tact, а синхронізація ноди вимагає розуміння ієрархії masterchain + workchain + shardchain.

Зачем запускати власну ноду: зменшити latency при роботі з TON API, знімити залежність від публічних endpoint'ів (tonapi.io, toncenter.com), отримати доступ до повних даних для індексації, або участь у мережі як validator (вимагає 100 000+ TON для staking).

Типи нод TON

Full node — скачує та верифікує всі блоки, зберігає поточний стан. Достатня для більшості завдань: читання даних, відправка транзакцій, мониторинг.

Archive node — full node + вся історія станів. Потрібна для індексації історичних даних. Вимагає значно більше дискового простору (кілька терабайт).

Lite node — не верифікує всі блоки, довіряє full/archive нодам. Підходить для легких клієнтів.

Validator node — full node з правом створювати блоки. Вимагає stake та постійний uptime.

Системні вимоги

Тип ноди CPU RAM Диск Мережа
Full node 8+ ядер 16 ГБ 500 ГБ NVMe SSD 100 Мбіт/с
Archive node 16+ ядер 32-64 ГБ 4+ ТБ NVMe 1 Гбіт/с
Validator 16+ ядер 64 ГБ 1 ТБ NVMe 1 Гбіт/с (стабільна)

NVMe обов'язковий — SATA SSD не справиться з навантаженням I/O при синхронізації. HDD виключений.

Розгортування через mytonctrl

MyTonCtrl — офіційний інсталлятор від TON Foundation. Ubuntu 20.04/22.04.

# Оновлення системи
apt update && apt upgrade -y

# Установка mytonctrl
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
chmod +x install.sh
bash install.sh -m full   # -m full для full node, -m validator для валідатора

Установка компілює TON з початкового коду — займає 30-60 хвилин залежно від процесора.

Після установки:

# Запуск інтерактивного CLI
mytonctrl

# Всередині mytonctrl
> status          # статус синхронізації
> getmasterchaininfo  # інформація про masterchain
> getstatus       # загальний статус ноди

Першоначальна синхронізація full node — від кількох годин до кількох днів залежно від швидкості інтернету та I/O дисків.

Конфігурація та файли

Конфігураційні файли після установки:

  • /var/ton-work/db/config.json — основний конфіг ноди
  • /var/ton-work/db/keyring/ — ключі ноди
  • /var/ton-work/log — логи

Логи в реальному часі:

journalctl -u validator -f
# або
tail -f /var/ton-work/log

Важливі параметри в config.json:

  • liteservers — список lite server endpoint'ів для з'єднання
  • validator.adnl_id — ADNL адреса ноди в P2P мережі TON

Перевірка синхронізації

# У mytonctrl
> status

# Вивід включає:
# Masterchain block: 12345678  (поточний блок ноди)
# Network block: 12345700      (актуальний блок мережі)
# Sync status: synchronizing   (або 'synced')

Нода вважається синхронізованою коли різниця між локальним та мережевим блоком < 10-20 блоків.

Lite Server для програм

Для підключення своїх програм до ноди потрібен Lite Server. У config.json додаємо:

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

Генерація ключів:

generate-random-id -m keys -n liteserver

Підключення через @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();

Настройка для validator ноди

Validator вимагає кілька додаткових кроків крім базової установки:

# У mytonctrl
> new_key                    # генерація validator ключа
> add_validator_key KEY_HASH  # додавання ключа

# Поповнення кошельку валідатора
> send AMOUNT               # потрібно мінімум ~100k TON для staking

# Участь в elections
> participate_in_elections

TON проводить elections кожні ~36 годин. Validator повинен відправити заявку з залоговою сумою. При успішній валідації — отримує награду, при downtime або помилках — slashing.

Мониторинг

# Prometheus метрики з mytonctrl
> setup_monitoring

# Або через кастомний скрипт
python3 /usr/src/mytonctrl/mytoncore/mytoncore.py --cli "getstatus" | \
  python3 -c "import sys, json; data=json.load(sys.stdin); print(data['masterchainblocktime'])"

Ключові алерти:

  • Нода не синхронізована > 5 хвилин
  • Для валідатора: пропущені > 2 consecutive раунди
  • RAM > 80% (утечки пам'яті в validator процесі — відома проблема)

Типові проблеми

Out of disk space під час синхронізації. TON активно пише на диск. Мінімум 500 ГБ вільного місця до початку синхронізації.

ADNL connectivity. TON використовує нестандартний P2P протокол ADNL. Порт UDP 30303 (за умовчанням) повинен бути відкритий. Перевірити: sudo ufw allow 30303/udp.

Compilation failures. TON компілюється з C++ початкового коду. Вимагає cmake >= 3.16, clang-14+ або gcc-10+. На старих Ubuntu — установити вручну.

Validator downtime штрафи. Якщо validator нода падає під час валідаційного раунду — можливий slashing. Настроїти мониторинг з алертами по SMS/телефону, не тільки email.

Терміни розгортування: full node — 1 день (установка + синхронізація). Validator node з настройкою мониторингу та участю в elections — 2-3 дні.