Запустите собственный TON-прокси
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Цель этого документа - дать краткое представление о TON Sites, которые представляют собой веб-сайты, доступные через TON Network. TON Sites могут использоваться как удобная точка входа в другие TON Services. В частности, HTML-страницы, загружаемые с TON Sites, могут содержать ссылки на URI ton://...
, представляющие платежи, которые пользователь мож ет выполнить, нажав на ссылку, при условии, что на устройстве пользователя установлен кошелек TON.
С технической точки зрения TON Sites очень похожи на стандартные веб-сайты, но доступ к ним осуществляется не через Интернет, а через TON Network (это оверлейная сеть внутри Интернета). Более конкретно, они используют ADNL адрес (вместо более привычных адресов IPv4 или IPv6), и принимают HTTP-запросы через протокол RLDP (высокоуровневый протокол, построенный на основе ADNL, основного протокола TON Network) вместо обычного TCP/IP. Все шифрование обрабатывается ADNL, поэтому нет необходимости использовать HTTPS (т.е. TLS), если прокси-вход размещен локально на устройстве пользователя.
Для доступа к существующим сайтам и создания новых TON Sites необходимы специальные шлюзы между "обычным" интернетом и TON Network. По сути, доступ к TON Sites осуществляется с помощью HTTP->RLDP прокси, работающего локально на устройстве клиента, а их создание происходит с помощью обратного RLDP->HTTP-прокси, работающего на удаленном веб-сервере.
Подробнее о TON Sites, WWW и прокси
Запуск прокси-входа
Чтобы получить доступ к существующим TON Sites, вам нужно запустить на своем компьютере RLDP-HTTP Proxy.
- Загрузите rldp-http-proxy с TON Auto Builds.
Или Вы можете скомпилировать rldp-http-proxy самостоятельно, следуя этим инструкциям.
-
Скачать глобальную конфигурацию TON.
-
Запустите rldp-http-proxy
rldp-http-proxy/rldp-http-proxy -p 8080 -c 3333 -C global.config.json
В приведенном выше примере 8080
— это TCP-порт, который будет слушать localhost для входящих HTTP-запросов, а 3333
— это UDP-порт, который будет использоваться для всех исходящих и входящих действий RLDP и ADNL (т.е. для подключения к TON Sites через TON Network). global.config.json
— это имя файла глобальной конфигурации TON.
Если вы все сделали правильно, прокси-вход не завершит свою работу и будет продолжать работать в терминале. Теперь его можно использовать для доступа к TON Sites. Когда он больше не нужен, вы можете завершить его работу, нажав Ctrl-C
, или про сто закрыв окно терминала.
Ваш прокси-вход будет доступен по HTTP на localhost
, порт 8080
.
Запуск прокси-входа на удаленном компьютере
- Загрузите rldp-http-proxy с TON Auto Builds.
Или вы можете скомпилировать rldp-http-proxy самостоятельно, следуя этим инструкциям.
-
Скачать глобальную конфигурацию TON.
-
Скачайте generate-random-id с TON Auto Builds.
Или вы можете скомпилировать generate-random-id самостоятельно, следуя этим инструкциям.
- Создайте постоянный ANDL-адрес для вашего прокси-входа
mkdir keyring
utils/generate-random-id -m adnlid
Вы увидите что-то похожее на это
45061C1D4EC44A937D0318589E13C73D151D1CEF5D3C0E53AFBCF56A6C2FE2BD vcqmha5j3ceve35ammfrhqty46rkhi455otydstv66pk2tmf7rl25f3
Это ваш недавно сгенерированный постоянный ADNL-адрес в шестнадцатеричном и удобном для пользователя формате. Соответствующий приватный ключ сохранен в файл 45061...2DB
в текущей директории. Переместите ключ в директорию keyring
mv 45061C1* keyring/
- Запустите rldp-http-proxy
rldp-http-proxy/rldp-http-proxy -p 8080 -a <your_public_ip>:3333 -C global.config.json -A <your_adnl_address>
где <your_public_ip>
- это ваш публичный IPv4-адрес, а <your_adnl_address>
- это ADNL-адрес, сгенерированный в предыдущем шаге.
Пример:
rldp-http-proxy/rldp-http-proxy -p 8080 -a 777.777.777.777:3333 -C global.config.json -A vcqmha5j3ceve35ammfrhqty46rkhi455otydstv66pk2tmf7rl25f3
В приведенном выше примере 8080
— это TCP-порт, который будет слушать localhost для входящих HTTP-запросов, а 3333
— это UDP-порт, который будет использоваться для всех исходящих и входящих действий RLDP и ADNL (т.е. для подключения к TON Sites через TON Network). global.config.json
— это имя файла глобальной конфигурации TON.
Если вы все сделали правильно, прокси не завершит свою работу и будет продолжать работать в терминале. Теперь его можно использовать для доступа к TON Sites. Когда он больше не нужен, вы можете завершить его работу, нажав Ctrl-C
, или просто закрыв окно терминала. Вы также можете запустить его как службу Unix для постоянной работы.
Ваш прокси-вход будет доступен по HTTP на <your_public_ip>
, порт 8080
.
Доступ к TON Sites
Теперь предположим, что у вас на компьютере запущен экземпляр RLDP-HTTP Proxy, который слушает localhost:8080
для входящих TCP-соединений, как объяснялось [выше] (#running-an-entry-proxy-on-a-remote-computer).
Простой тест, чтобы убедиться, что все работает правильно, можно выполнить с помощью таких программ, как curl
или wget
. Например,
curl -x 127.0.0.1:8080 http://just-for-test.ton
пытается загрузить главную страницу (TON) Site just-for-test.ton
, используя прокси на 127.0.0.1:8080
. Если прокси запущен и работает, вы увидите что-то похожее
<html>
<head>
<title>TON Site</title>
</head>
<body>
<h1>TON Proxy Works!</h1>
</body>
</html>
Вы также можете получить доступ к TON Sites через их ADNL-адреса, используя поддельный домен <adnl-addr>.adnl
curl -x 127.0.0.1:8080 http://utoljjye6y4ixazesjofidlkrhyiakiwrmes3m5hthlc6ie2h72gllt.adnl/
в настоящее время загружает ту же веб-страницу TON.
В качестве альтернативы вы можете настроить localhost:8080
в качестве HTTP-прокси в вашем браузере. Например, если вы используете Firefox, перейдите в [Настройки] -> Общие -> Настройки сети -> Настройки -> Настроить доступ через прокси -> Ручная настройка прокси, и введите "127.0.0.1" в поле "HTTP-прокси" и "8080" в поле "Порт".
После того, как вы настроили localhost:8080
в качестве HTTP-прокси, который будет использоваться в вашем браузере, вы можете просто ввести нужный URI, например, http://just-for-test.ton
или http://utoljjye6y4ixazesjofidlkrhyiakiwrmes3m5hthlc6ie2h72gllt.adnl/
, в адресной строке вашего браузера и взаимодействовать с TON Site так же, как и с обычными веб-сайтами.