Пошаговая инструкция по настройке прокси для доступа к TON Sites и созданию новых TON Sites
Перевод на русский язык (от форума tontalk.org)
Целью этой статьи является подробное ознакомление с 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
https://github.com/ton-blockchain/ton. Чтобы скомпилировать 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 сайт публично доступен
Оригинал статьи на английском:
https://test.ton.org/TonSites-HOWTO.txt
Добавлено через 2 минуты 15 секунд
Документация TON DNS. Регистрация ton доменов
На официальном сайте добавлена
https://ton.org/DNS-HOWTO.txt по регистрации .ton доменов в блокчейне Telegram Open Netowork.
Цель этого документа - дать краткое введение в TON DNS, сервис для перевода понятных человеку доменных имен (таких как test.ton или mysite.temp.ton) в адреса смарт контракта TON, адреса ADNL. используемые службами, работающими в сети TON (например, узлами TON) и т. д.
Доменные имена
TON DNS использует знакомые доменные имена, состоящие из строки в кодировке UTF-8 длиной до 126 байт, с различными разделами доменного имени, разделенными точками (.). Нулевые символы (т.е. нулевые байты) и, в более общем смысле, байты в диапазоне 0..32 не допускаются в доменных именах. Например, test.ton и mysite.temp.ton являются допустимыми доменами TON DNS. Основное отличие от обычных доменных имен состоит в том, что домены TON DNS чувствительны к регистру; перед выполнением поиска TON DNS можно преобразовать все домены в нижний регистр, чтобы получить нечувствительность к регистру при желании.
В настоящее время только домены, оканчивающиеся на .ton, распознаются как допустимые домены TON DNS. Это может измениться в будущем. Однако обратите внимание, что плохая идея определять домены первого уровня, совпадающие с доменами первого уровня, уже существующими в Интернете, такими как .com или .to, потому что тогда можно зарегистрировать домен TON google.com, разверните там сайт TON, создайте скрытую ссылку на страницу этого сайта TON со своего другого невинно выглядящего сайта TON и украдите файлы cookie google.com у ничего не подозревающих посетителей.
Внутренне TON DNS преобразует доменные имена следующим образом. Во-первых, доменное имя разбивается на его компоненты, разделенные точечными символами .. Затем нулевые символы добавляются к каждому компоненту, и все компоненты объединяются в обратном порядке. Например, google.com становится com\0google\0.
Резолвинг TON DNS
Домен TON DNS резолвится следующим образом. Во-первых, корневой DNS смарт-контракт определяется путем проверки значения параметра конфигурации #4 в последнем состоянии мастерчейна. Этот параметр содержит 256-битный адрес корневого смарт-контракта DNS внутри мастерчейна.
Затем вызывается специальный метод get dnsresolve (id метода 123660) для смарт-контракта корневого DNS с двумя параметрами. Первый параметр - это CellSlice с
8n битами данных, содержащими внутреннее представление разрешаемого домена, где
n - длина внутреннего представления в байтах (не более 127). Второй параметр - это 16-разрядное целое число со знаком, содержащее обязательную
категорию. Если категория равна нулю, то запрашиваются все категории.
Регистрация новых TON доменов
Предположим, у вас есть новый сайт TON с недавно созданным адресом ADNL, например, vcqmha5j3ceve35ammfrhqty46rkhi455otydstv66pk2tmf7r l25f3. Конечно, конечный пользователь может набрать
http://vcqmha5j3ceve35ammfrhqty46rkh...mf7rl25f3.adnl, чтобы зайти на ваш сайт TON из браузера с помощью прокси-сервера RLDP-HTTP в режиме клиента, но это не очень удобно. Вместо этого вы можете зарегистрировать новый домен, скажем, mysite.temp.ton с записью dns_adnl_address в категории 1, содержащей адрес ADNL vcq ... 25f3 вашего сайта TON. Затем пользователь получит доступ к вашему сайту TON, просто набрав mysite.temp.ton в браузере.
Как правило, вам необходимо связаться с владельцем домена более высокого уровня и попросить его добавить запись для вашего поддомена в его смарт-контракт распознавателя DNS. Тем не менее, TestNet цепочки блоков TON имеет специальный интеллектуальный контракт для средства разрешения проблем для temp.ton, который позволяет любому автоматически регистрировать любые дочерние домены temp.ton, которые еще не зарегистрированы, при условии, что небольшая плата (в тестовых граммах) выплачивается этот умный контракт. В нашем случае нам сначала нужно узнать адрес этого умного контракта, например, с помощью Lite Client:
Также в документации вы узнаете о том как резолвятся домены TON DNS, как использовать LiteClient и TonLib для резолвинга доменов TON DNS, как зарегистрировать домен в TON
Полная подробная статья на английском
https://ton.org/DNS-HOWTO.txt
Добавлено через 2 минуты 53 секунды
Библиотека на JS для генерации мнемоник
Tonweb Mnemonic
Мнемонический код для генерации детерминированных ключей в Telegram Open Network. Интерфейс библиотеки аналогичен библиотеке bitcoinjs / bip39 (мнемоника для биткойнов). Это библиотека для браузера, поддержка NodeJS будет в ближайшее время.
Установка
npm install tonweb-mnemonic
Сборка
npm install
npx webpack --mode=none
Github:
https://github.com/toncenter/tonweb-mnemonic