Руководство по TON Sites

Как разместить сайт на домене .ton

Два способа разместить сайт на имени .ton — TON Storage или собственный сервер, — адреса, по которым он открывается, и значения терминов этого сайта.

Read in English

Как разместить TON-сайт

Статический сайт в TON Storage

Сервер не нужен
  1. Положите сайт в папку с файлом index.html и создайте из неё bag с помощью tonutils-storage или официального storage daemon. Скопируйте Bag ID, который он выведет.
  2. Держите bag в раздаче: оставьте узел хранения запущенным или заплатите провайдеру хранения. Bag, который никто не раздаёт, не открывается.
  3. На dns.ton.org вставьте Bag ID в поле Site вашего имени и отметьте Hosting on TON Storage — не отдельную строку Storage: её шлюз не читает. Сайт откроется по адресу ваше-имя.ton.website.

Собственный сервер

Любое веб-приложение · публичный IP (или режим туннеля в прокси) · открытый UDP на порту, записанном в config.json
  1. Запустите сайт на сервере по адресу http://127.0.0.1:80 — подойдёт любой веб-сервер или приложение.
  2. Запустите рядом tonutils-reverse-proxy и подпишите в кошельке изменение DNS, которое он покажет: ./tonutils-reverse-proxy-linux-amd64 --domain your-name.ton
  3. Откройте ваше-имя.ton.website. Прокси должен оставаться запущенным; без --domain сайт всё равно открывается по ADNL-адресу: <адрес>.adnl.website.

Чтобы привязать имя позже или направить на тот же сервер ещё одно имя, укажите в его поле Site на dns.ton.org ADNL-адрес, который выводит прокси. Запуск в виде службы, режим туннеля, заголовки запроса, которые добавляет прокси, — в README прокси и в документации TON.

Три адреса

ton.website
Основной адрес. alice.ton открывается как alice.ton.website, поддомен вида blog.alice.ton — как blog.alice.ton.website, а имя пользователя Telegram alice.t.me — как alice-tg.ton.website. Поддомены открываются только здесь — см. вопросы ниже.
ton.run
Короткий псевдоним для имён .ton и имён пользователей Telegram: alice.ton.run. Поддомены здесь не обслуживаются.
adnl.website
Открывает сервер по его ADNL-адресу, вообще без имени .ton: <адрес>.adnl.website. Удобно для сайта, у которого ещё нет имени.

Словарь

TON Site (TON-сайт)
Сайт, который работает через сеть TON, а не через обычный интернет. Имя .ton указывает на него DNS-записью site.
ADNL
Уровень адресации и транспорта сети TON. ADNL-адрес обозначает сервер, на котором работает TON-сайт; на одном сервере может быть много имён.
TON Storage
Сеть обмена файлами в TON. Сайт может быть статическим набором файлов в ней, а не работающим сервером.
Bag ID
Идентификатор набора файлов в TON Storage. В записи site может стоять Bag ID вместо ADNL-адреса; такой сайт открывается, только пока хотя бы один узел раздаёт этот bag.
запись site
DNS-запись, благодаря которой имя .ton открывается как сайт. Это единственная запись, которую шлюз читает, чтобы открыть сайт.
next_resolver
DNS-запись, которая передаёт поддомены имени (например, nft.minter.ton) другому контракту.
поддомен второго уровня
Имя вида blog.alice.ton, которое разрешается через next_resolver родительского имени.
RLDP
Протокол, по которому TON-сайты передают HTTP поверх ADNL.
общий хост
Сервер, на котором в этом каталоге 20 и более имён, — обычно это парковочные страницы и страницы «домен продаётся». Они включаются и отключаются вместе и стоят в списке после самостоятельных сайтов.

Общие термины блокчейна — кошелёк, jetton, NFT, DNS-элемент — в словаре tonscan.info (на английском).

Вопросы и ответы

Почему сайт не открывается?

Шлюз только передаёт запросы: если сервер сайта выключен или никто не раздаёт его bag в TON Storage, передавать нечего. На странице ошибки написано, что именно увидел шлюз. Каталог каждую неделю заново проверяет все сайты из списка, поэтому сайт, который долго не отвечает, из него исчезает.

Почему первая загрузка медленная?

При первом запросе сайт нужно найти в сети TON и установить соединение — по измерениям это 5–12 секунд. После этого страница кэшируется и загружается как обычный сайт.

Как добавить свой сайт в каталог?

Ничего отправлять не нужно: еженедельное сканирование читает имена TON DNS из блокчейна и добавляет те, что отвечают настоящей страницей. Чтобы выбрать рубрику, добавьте на страницу <meta name="ton2web:category" content="blog"> (значения: defi, wallet, game, nft, shop, media, tool, docs, social, blog, personal).

Открываются ли поддомены вида blog.alice.ton?

Да, на ton.website: blog.alice.ton открывается как blog.alice.ton.website. Владелец имени .ton может выдавать имена под ним, и у каждого своя запись site. Каждому поддомену нужен отдельный сертификат, поэтому шлюз находит их сам: раз в неделю читает из блокчейна все коллекции поддоменов, раз в день опрашивает каждый поддомен с записью site и добавляет сертификат тем, что отвечают. Новый поддомен обычно начинает открываться в течение недели после запуска. Сколько их сейчас (на английском).

Сколько стоит хостинг?

Программы бесплатны. Сервер стоит как небольшой VPS; статическому сайту в TON Storage сервер не нужен — нужно только, чтобы кто-то раздавал bag. Имя .ton покупается на аукционе на dns.ton.org, оплата в GRAM.

Где посмотреть, кому принадлежит имя и когда его нужно продлить?

На странице каждого сайта здесь указаны владелец имени и срок продления на момент еженедельного сканирования. Актуальные данные, прежние владельцы, аукционы и все DNS-записи — на tonscan.info, обозревателе блокчейна; ссылка на него есть на странице каждого сайта.