Целью этой статьи является подробное ознакомление с TON Sites, доступ к которым осуществляется через блокчейн TON. TON Sites могут использоваться в качестве удобной точки входа для других TON Services. В частности, HTML-страницы, загруженные с TON Sites, могут содержать ссылки ton://, представляющие платежи, которые могут быть выполнены пользователем при условии, что на устройстве пользователя установлен TON Wallet.
С технической точки зрения TON Sites похожи на обычные веб-сайты, но доступ к ним осуществляется через сеть Telegram Open Network, которая представляет собой оверлейную сеть внутри Интернета, а не через Интернет. Более конкретно, у сайтов есть адрес ADNL (вместо более привычного адреса IPv4 или IPv6), и TON Sites принимают запросы HTTP через протокол RLDP (который является протоколом RPC более высокого уровня, основанным на ADNL, главном протоколе сети TON) вместо обычного TCP/IP протокола. Все шифрование обрабатывается ADNL, поэтому нет необходимости использовать HTTPS.
Для доступа к существующим TON Sites и для создания новых сайтов TON необходимы специальные шлюзы между классическим Интернетом и сетью TON. По сути, доступ к сайтам TON осуществляется с помощью HTTP -> RLDP-прокси, работающего локально на клиентской машине, и они создаются с помощью обратного RLDP -> HTTP-прокси, работающего на удаленном веб-сервере.
1. Компиляция RLDP-HTTP прокси
RLDP-HTTP Proxy — это утилита, специально разработанная для доступа к TON Sites и для создания сайтов TON. Его текущая (альфа) версия является частью общего исходного кода TON Blockchain, доступного в официальном GitHub репозитории. Чтобы скомпилировать RLDP-HTTP прокси, следуйте инструкциям. Двоичный файл прокси будет расположен как
rldp-http-proxy/rldp-http-proxy
в каталоге сборки. В качестве альтернативы, вы можете захотеть создать только Proxy, а не все проекты TON Blockchain. Это можно сделать, вызвав
cmake --build. --ttarget rldp-http-proxy
в каталоге сборки.
2. Запуск RLDP-HTTP прокси для доступа к TON Sites (TON Web)
Чтобы получить доступ к существующим TON-сайтам, вам нужен работающий экземпляр RLDP-HTTP Proxy на вашем компьютере. Это может быть вызвано следующим образом:
rldp-http-proxy / rldp-http-proxy -p 8080 -c 3333 -C ton-global.config.json
или
rldp-http-proxy / rldp-http-proxy -p 8080 -a <your_public_ip>: 3333 -C ton-global.config.json
где <your_public_ip> — ваш общедоступный IPv4-адрес на вашем домашнем компьютере. Конфигурационный файл ton-global.config.json
можно скачать по адресу https://test.ton.org/ton-global.config.json
wget https://test.ton.org/ton-global.config.json
В приведенном выше примере 8080 — это порт TCP, который будет прослушиваться на локальном узле для входящих HTTP-запросов, а 3333 — это UDP порт, который будет использоваться для всех исходящих и входящих операций RLDP и ADNL, то есть для подключения к TON Sites через TON Network.
Если вы все сделали правильно, прокси не прекратит работу, но продолжит работу в терминале. Теперь его можно использовать для доступа к TON Sites. Когда вам это больше не нужно, можете остановить его нажав Ctrl-C или просто закрыв окно терминала.
3. Доступ к TON Sites
Предположим, что у вас есть запущенный RLDP-HTTP Proxy, работающий на вашем компьютере и прослушивающий localhost: 8080 для входящих TCP-соединений, как описано выше.
Простой тест, что все рабочие свойства могут быть выполнены с использованием таких программ как Curl или WGet. К примеру:
curl -x 127.0.0.1:8080 http://test.ton
пытается загрузить главную страницу (TON) сайта test.ton
, используя прокси 127.0.0.1: 8080
. Если прокси запущен и работает, вы увидите что-то вроде
Код:
<HTML>
<H2> TON Blockchain Test Network & mdash; файлы и ресурсы </ H2>
<H3> Новости </ H3>
<UL>
...
</ HTML>
потому что TON Site test.ton
в настоящее время настроен как зеркало веб-сайта https://test.ton.org
Кроме того, вы можете настроить localhost: 8080
в качестве HTTP-прокси в вашем браузере. Например, если вы используете Firefox, зайдите в [Setup] -> General -> Network Settings -> Settings -> Configure Access Proxy -> Manual Proxy configuration и введите «127.0.0.1» в поле «HTTP Proxy», и «8080» в поле «Port».
После того как вы настроили localhost: 8080
в качестве HTTP-прокси для использования в вашем браузере, вы можете просто ввести требуемый URI, такой как http://test.ton
в адресной строке вашего браузера и взаимодействовать с TON Web так же, как с обычными веб-сайтами.
4. Создание TON Sites
Если вы хотите создать сайт в сети TON, вам нужно запустить RLDP-HTTP Proxy на вашем сервере вместе с обычным программным обеспечением веб-сервера, таким как Apache или Nginx.
Мы предполагаем, что вы уже знаете, как настроить обычный веб-сайт, и что вы уже настроили его на своем сервере, принимая входящие HTTP-соединения через TCP-порт <your-server-ip>: 80 и определение необходимого TON Network domain name, скажем, example.ton, в качестве основного доменного имени или алиаса для вашего веб-сайта в конфигурации вашего веб-сервера.
После этого вы выполняете
rldp-http-proxy -a <ваш-сервер-ip>: 3333 -L example.ton -C ton-global.config.json
в фоновом режиме (вы можете сначала попробовать это в терминале, но если вы хотите, чтобы ваш сайт TON работал постоянно, вам придется также использовать опции -d и -l <log-file>).
Если все работает правильно, RLDP-HTTP прокси будет принимать входящие HTTP-запросы из сети TON через RLDP/ADNL, работающие через UDP-порт 3333 (конечно, вы можете использовать любой другой UDP-порт, если хотите) с IPv4-адресом <ваш- server-ip> (в частности, если вы используете firewall не забудьте разрешить rldp-http-proxy принимать и отправлять UDP-пакеты с этого порта), и он будет перенаправлять эти HTTP-запросы, адресованные хосту example.ton
к TCP-порту 80 на 127.0.0.1, т. е. к обычному веб-серверу.
Вы можете зайти на TON Site http://example.ton
из браузера, запущенного на клиентском компьютере, как описано выше и проверить, действительно ли ваш TON сайт публично доступен.