Перейти к содержанию
Learning Platform
Глоссарий Troubleshooting
Урок 10.02 · 20 мин
Средний
TON StorageADNLDHTDecentralized StorageTON

TON Storage: децентрализованное хранение

TON Storage — это децентрализованная файловая система, построенная на технологии, похожей на BitTorrent, но с интеграцией в блокчейн TON. Для разработчиков это способ хранить данные (метаданные NFT, медиафайлы, бэкапы) децентрализованно, не завися от AWS S3 или IPFS.

Блокчейн TON хранит состояние контрактов, но не предназначен для хранения файлов. Размещать изображения, видео или метаданные NFT прямо в ячейках (cells) непрактично — это дорого и медленно. TON Storage решает эту задачу: это децентрализованная система хранения файлов, встроенная в экосистему TON.

TON Storage использует торрент-подход — файлы разбиваются на части и хранятся на распределённых узлах. Но в отличие от классического BitTorrent, здесь используется собственный сетевой протокол TON — ADNL (Abstract Datagram Network Layer).


Основные концепции

Bag — контейнер файлов

Bag (пакет) — это базовая единица хранения в TON Storage. Один Bag может содержать один файл или целую директорию файлов. Каждый Bag идентифицируется уникальным Bag ID:

Bag ID = SHA256(torrent description)
       = 32 байта (256 бит)

Пример: a7f3b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1

Bag ID вычисляется как хеш описания торрента (torrent description) — структуры, содержащей список файлов, их размеры и хеши частей. Зная Bag ID, можно найти и скачать файлы из сети.

Storage Node — узел хранения

Storage Node — это узел в сети TON, который хранит части (pieces) файлов и отдаёт их по запросу. Каждый узел:

  • Имеет ADNL-адрес (256-битный абстрактный адрес в сети TON)
  • Подключён к DHT (Distributed Hash Table) для обнаружения
  • Отдаёт файлы по протоколу RLDP (Reliable Large Datagram Protocol) поверх ADNL

DHT — распределённая таблица

DHT (Distributed Hash Table) — это сервис обнаружения в сети TON. Он связывает Bag ID с адресами узлов, которые хранят этот Bag:

DHT: Bag ID -> список ADNL-адресов Storage Node

Пример:
  Bag ID a7f3b2... -> [
    ADNL: node1_256bit_address,
    ADNL: node2_256bit_address,
    ADNL: node3_256bit_address
  ]

Архитектура

TON Storage: загрузка и скачивание
Загрузка (upload)
Владелец файла
1. Создаёт torrent description
2. Bag ID = SHA256(description)
3. Разбивает на pieces
ADNL + DHT
TON DHT
Bag ID → [Node1, Node2, ...]
Скачивание (download)
Клиент
1. Знает Bag ID
2. Запрашивает DHT
3. Получает ADNL-адреса
4. Скачивает по ADNL/RLDP
5. Собирает файл из pieces

Процесс загрузки файла

  1. Владелец формирует torrent description — структуру с метаданными: список файлов, размеры, хеши каждой части (piece)
  2. Вычисляет Bag ID как SHA256 от description
  3. Разбивает файлы на pieces фиксированного размера
  4. Загружает pieces на один или несколько Storage Node через ADNL
  5. Регистрирует Bag ID в DHT, связывая его с адресами узлов

Процесс скачивания файла

  1. Клиент знает Bag ID (получил из NFT metadata, сообщения, веб-страницы)
  2. Обращается к DHT с запросом: “какие узлы хранят Bag ID X?”
  3. DHT возвращает список ADNL-адресов Storage Node
  4. Клиент подключается к узлам по ADNL и скачивает pieces через RLDP
  5. Проверяет хеши pieces и собирает исходные файлы

ADNL как транспорт

В отличие от классического BitTorrent, который работает поверх TCP/UDP с IP-адресами, TON Storage использует ADNL (Abstract Datagram Network Layer):

АспектBitTorrentTON Storage
АдресацияIP:portADNL-адрес (256 бит)
ОбнаружениеDHT (Kademlia)TON DHT
ТранспортTCP/uTPADNL + RLDP
ШифрованиеОпциональноВсегда (end-to-end)
Идентификатор файлаInfohash (SHA1)Bag ID (SHA256)

ADNL скрывает реальные IP-адреса узлов за абстрактными 256-битными адресами. Это обеспечивает end-to-end шифрование и определённую степень анонимности для участников сети.

NOTE

Сравнение с IPFS/Filecoin

TON Storage и IPFS решают одну задачу — децентрализованное хранение. IPFS использует Content-Addressing (CID), TON Storage — Bag ID. Filecoin добавляет экономические стимулы поверх IPFS. TON Storage интегрирован в экосистему TON и использует ADNL-сеть, тогда как IPFS работает поверх обычного интернета (libp2p). На практике IPFS значительно более распространён, а TON Storage остаётся нишевым решением внутри экосистемы TON.


Связь с NFT

Один из главных сценариев использования TON Storage — хранение контента NFT. Вместо размещения изображений и метаданных на централизованных серверах или IPFS, коллекции NFT могут ссылаться на TON Storage:

NFT контент через TON Storage
NFT Item
content_url = "tonstorage://a7f3b2c1..."
Bag ID в TON Storage
При отображении NFT
1. Извлечь Bag ID из content_url
2. Запросить DHT для получения Storage Nodes
3. Скачать изображение/метаданные через ADNL

Преимущества TON Storage для NFT:

  • Децентрализация: файл не зависит от одного сервера
  • Интеграция: весь стек (NFT контракт + DNS имя + хранение) внутри экосистемы TON
  • Постоянство: пока хотя бы один Storage Node хранит Bag, файл доступен

Кроме того, .ton домены (из предыдущего урока) могут хранить DNS-запись storage_bag_id, связывая имя домена с файлом в TON Storage.

NOTE

Зрелость технологии

TON Storage в production с апреля 2025: storage providers получают TON-incentives за хранение и быструю раздачу данных, а Bag-of-Cells контент адресуем через ADNL. На фоне IPFS TON Storage даёт нативную интеграцию с блокчейном (DNS, NFT, payments), но экосистемно пока меньше распространён. Понимание устройства важно для полной картины TON.


Итоги

КомпонентРоль
BagКонтейнер файлов, идентифицируется Bag ID (SHA256)
Bag IDУникальный идентификатор Bag, 32 байта
Storage NodeУзел, хранящий pieces файлов, доступен по ADNL
DHTРаспределённая таблица: Bag ID -> список Storage Nodes
ADNLСетевой транспорт: абстрактная адресация, шифрование
RLDPПротокол передачи больших данных поверх ADNL

TON Storage создаёт децентрализованный слой хранения файлов внутри экосистемы TON. Торрент-подход обеспечивает распределённость, ADNL — шифрование и абстрактную адресацию, а интеграция с NFT и DNS делает хранение частью единого стека. В следующем уроке мы разберём TON Proxy и TON Sites — как ADNL-сеть используется для создания веб-сайтов, устойчивых к цензуре.


Частые ошибки

  1. Используют TON Storage для часто изменяемых данных: система оптимизирована для статического контента, а не для баз данных.
  2. Забывают о стоимости хранения: хранение больших файлов требует депозита TON для оплаты нод хранения.
  3. Не создают резервные копии критичных данных: децентрализованное хранение не гарантирует доступность, если все ноды с файлом офлайн.
  4. Путают Bag ID и хеш файла: Bag ID идентифицирует коллекцию файлов (torrent), а не отдельный файл.

Проверка знанийKnowledge check
Как клиент находит Storage Nodes, хранящие нужный файл, если он знает только Bag ID?
ОтветAnswer
Клиент обращается к TON DHT (Distributed Hash Table) с запросом по Bag ID. DHT возвращает список ADNL-адресов Storage Nodes, которые хранят pieces этого Bag. Затем клиент подключается к этим узлам через ADNL и скачивает файл по частям через протокол RLDP.

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 4