Инструкция по настройке и созданию TON Sites

admin

Administrator
Команда форума
Сообщения
650
Реакции
190
Пошаговая инструкция по настройке прокси для доступа к 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 репозитории. Чтобы скомпилировать 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
 
Последнее редактирование:

PipeLine

New member
Сообщения
18
Реакции
3
Каким образом будут регистрироваться имена?
 

admin

Administrator
Команда форума
Сообщения
650
Реакции
190
Каким образом будут регистрироваться имена?
Вероятней всего будет сервис регистрации имён TON Name Service (по аналогии с Ethereum), где будет браться определённое количество Gram за регистрацию домена ton на год
 

admin

Administrator
Команда форума
Сообщения
650
Реакции
190
Обновлена документация по созданию сайтов TON


4. Создание сайтов TON
~~~~~~~~~~~~~~~~~~~~~

Если вы хотите создать сайт в сети TON, вам нужно запустить RLDP-HTTP Proxy на вашем сервере вместе с обычным программным обеспечением веб-сервера, таким как Apache или Nginx.

Мы предполагаем, что вы уже знаете, как настроить обычный веб-сайт, и что вы уже настроили его на своем сервере, принимая входящие HTTP-соединения через TCP-порт <your-server-ip>: 80 и определение необходимого TON Network domain name, скажем, example.ton, в качестве основного доменного имени или алиаса для вашего веб-сайта в конфигурации вашего веб-сервера.

После этого вам сначала нужно сгенерировать постоянный адрес ADNL для вашего сервера:

mkdir keyring

util/generate-random-id -m adnlid

Вы увидите что-то вроде

45061C1D4EC44A937D0318589E13C73D151D1CEF5D3C0E53AFBCF56A6C2FE2BD vcqmha5j3ceve35ammfrhqty46rkhi455otydstv66pk2tmf7rl25f3

Это ваш созданный постоянный адрес ADNL в шестнадцатеричной и удобной для пользователя форме. Закрытый ключ хранится в файле 45061 ... 2DB в текущем каталоге. Переместите его в каталог ключей:

mv 45061C1* keyring/

После этого выполните

rldp-http-proxy -a <your-server-ip>:3333 -L '*' -C ton-global.config.json -A <your-adnl-address>

(с <your-adnl-address>, равным 'vcqm ... 35f3' в этом примере) в фоновом режиме (вы можете сделать это сначала в терминале, но если вы хотите, чтобы ваш сайт TON работал постоянно, вам необходимо использовать опции -d и -l <log-file>).

Если все работает правильно, прокси-сервер RLDP-HTTP будет принимать входящие HTTP-запросы из сети TON через RLDP / ADNL, работающий через UDP-порт 3333 (конечно, вы можете использовать любой другой UDP-порт, если хотите) с IPv4-адресом <ваш- server-ip> (в частности, если вы используете брандмауэр, не забудьте разрешить rldp-http-proxy принимать и отправлять UDP-пакеты с этого порта), и он будет перенаправлять эти HTTP-запросы, адресованные всем хостам (если вы хотите пересылать только определенные хосты, измените -L '*' на -L <ваше имя хоста>) на порт TCP 80 на 127.0.0.1, то есть на ваш обычный веб-сервер.

Вы можете посетить сайт TON http://<your-adnl-address>.adnl в примере как http://vcqmha5j3ceve35ammfrhqty46rkhi455otydstv66pk2tmf7rl25f3.adnl из браузера, работающего на клиентском компьютере и проверить действительно ли ваш сайт TON доступен публично.

Если вы хотите, вы можете зарегистрировать домен TON DNS, например «example.ton», и создать для этого домена запись, указывающую на постоянный ADNL-адрес вашего сайта TON. Затем прокси-серверы RLDP-HTTP, работающие в режиме клиента будут резолвить http://example.ton как точку к вашему адресу ADNL и сайт TON будет доступен. Процесс регистрации доменов TON DNS описан в отдельном документе.
 

MikaHerz

New member
Сообщения
16
Реакции
3
Для доступа к TON сайтам необходимы специальные шлюзы между Интернетом и сетью TON. Доступ к TON сайтам осуществляется с помощью HTTP-> RLDP-прокси, работающего локально на клиентской машине, и они создаются с помощью обратного RLDP-> HTTP-прокси, работающего на удаленном веб-сервере. TON сайты будут похожи на сайты в луковой сети TOR onion, но будет присутствовать и внутренняя интеграция со службами и приложениями TON.
 

mcstl

New member
Сообщения
2
Реакции
3
ошибка с библиотеками, у вас td разнесено по разным папкам, а в include просто идет папка ./td/ таким образом при вызове команды make которая у вас пропущенна в первом шаге, возникает ошибка "fatal error: td/actor/actor.h: No such file or directory" о которой всю неделю пишут на github. а как решение предлагается переименовать папку одного инклюда, в файлах, после чего скорей всего возникнет проблема со следующей либой etc.
 

admin

Administrator
Команда форума
Сообщения
650
Реакции
190
ошибка с библиотеками, у вас td разнесено по разным папкам
Выше перевод документа с официального сайта TON. Значит ошибка в документе и у них.
Будем рады если вы опишете весь процесс без ошибки
 

mcstl

New member
Сообщения
2
Реакции
3
я почему то думал что вы непосредственно связанны с разработчиками.
в общем собрать получилось таким образом, хотя прокси занимает очень много места и на дешевом сервере это не поставить к сожалению. плюс под конец я начал получать другую ошибку
Код:
[ 0][t 6][1581855436.923583031][Status.h:264][!proxymain]       
Unexpected Status 
[Error : 400 : INVALID_CONFIG: can't parse config Can't find field "liteservers"] 
in file /opt/ton/rldp-http-proxy/rldp-http-proxy.cpp at line 753
последовательность комманд которые я использовал на Debian10:
Код:
apt update -y && apt dist-upgrade -y
apt install -y build-essential cmake clang-6.0 openssl libssl-dev zlib1g-dev gperf wget git -y
cd /opt/
git clone --recursive https://github.com/ton-blockchain/ton
cd ./ton/ && mkdir build && cd build
cmake /opt/ton/ -DCMAKE_BUILD_TYPE=Release
cmake --build . --target rldp-http-proxy
apt update && apt install -y openssl
cd /usr/local/bin/ && wget https://test.ton.org/ton-global.config.json
 

admin

Administrator
Команда форума
Сообщения
650
Реакции
190
я почему то думал что вы непосредственно связанны с разработчиками
Официального форума не существует.
Наш форум независимый и держится на энтузиастах TON :)

в общем собрать получилось таким образом
Спасибо (y)
 

Colin Ritman

New member
Сообщения
2
Реакции
0
Если вы хотите, вы можете зарегистрировать домен TON DNS, например «example.ton», и создать для этого домена запись, указывающую на постоянный ADNL-адрес вашего сайта TON. Затем прокси-серверы RLDP-HTTP, работающие в режиме клиента будут резолвить http://example.ton как точку к вашему адресу ADNL и сайт TON будет доступен. Процесс регистрации доменов TON DNS описан в отдельном документе.

Есть более подробная информация по регистрации доменов в TON DNS?
Как это происходит сейчас? Можно любой адрес присвоить?
 

F_F

Moderator
Команда форума
Сообщения
78
Реакции
29
Есть более подробная информация по регистрации доменов в TON DNS?
Как это происходит сейчас? Можно любой адрес присвоить?
В данный момент эта тема сильно сырая и на данный момент любой может зарегать любой домен)
Нужно немного подождать когда все уляжется)
 

Alex B

New member
Сообщения
9
Реакции
12
Интересная штука. Но работает на данный момент достаточно плачевно. По официальному гайду прокси никак не получалось собрать, огромное спасибо mcstl за последовательность команд, завелось с первого раза.

Примечательно, что половина заявленных функций в прокси отсутствует, например, есть такой флаг -P all, который должен включать режим обычного HTTP прокси. Но через него мне не удалось получить доступ к обычным сайтам.
155
Как получить домен .ton тоже пока не ясно. Флаг чтобы указать домен есть, однако, у меня не получалось зайти на сайт на этом домене.
 

Alex B

New member
Сообщения
9
Реакции
12

Alex B

New member
Сообщения
9
Реакции
12
Сайт увидел. Через ton web proxy не отображается картинка
Глянул я этот прокси, очень он мне не понравился, не умеет ничего открывать кроме index файла. От этого и картинка не отображалась.
Благо у меня сегодня свободный день, за 2 часа сделал свою реализацию: ton.alex-b.me 😆


Мой сайт можно глянуть по ссылке:
https://ton.alex-b.me/?url=uomt2htdol3l5x2pq3ia2kxsfcwige4zwxt4witjtve4imkv2e5uqrz.adnl
 

clode

New member
Сообщения
5
Реакции
0
я почему то думал что вы непосредственно связанны с разработчиками.
в общем собрать получилось таким образом, хотя прокси занимает очень много места и на дешевом сервере это не поставить к сожалению. плюс под конец я начал получать другую ошибку
Код:
[ 0][t 6][1581855436.923583031][Status.h:264][!proxymain]      
Unexpected Status
[Error : 400 : INVALID_CONFIG: can't parse config Can't find field "liteservers"]
in file /opt/ton/rldp-http-proxy/rldp-http-proxy.cpp at line 753
последовательность комманд которые я использовал на Debian10:
Код:
apt update -y && apt dist-upgrade -y
apt install -y build-essential cmake clang-6.0 openssl libssl-dev zlib1g-dev gperf wget git -y
cd /opt/
git clone --recursive https://github.com/ton-blockchain/ton
cd ./ton/ && mkdir build && cd build
cmake /opt/ton/ -DCMAKE_BUILD_TYPE=Release
cmake --build . --target rldp-http-proxy
apt update && apt install -y openssl
cd /usr/local/bin/ && wget https://test.ton.org/ton-global.config.json
Подскажите, как сбилдить исходник cpp, который вместе в CMakefiles.txt находится в папке rldp-http-proxy? Через cmake --build не получается чето ничего, я на винде
 

Alex B

New member
Сообщения
9
Реакции
12
Подскажите, как сбилдить исходник cpp, который вместе в CMakefiles.txt находится в папке rldp-http-proxy? Через cmake --build не получается чето ничего, я на винде
Во-первых, на винде так просто не собрать. Собирать надо из-под линукс. Еще я пробовал собрать .exe, но там есть отличия в кодовй базе и ничего рабочего не вышло.

Чтобы собрать или запустить под windows, нужно установить WSL2: https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-install и скачать из майкрософт стора дистрибутив линукса (я качал Ubuntu)
Лично я все так делал, там достаточно просто.

Если не получается самому сбилдить, можешь скачать уже собранную проксю:
Bash:
apt install -y openssl libssl-dev zlib1g-dev
wget https://ton.alex-b.me/ton-proxy.tar.bz2
tar -xvf ton-proxy.tar.bz2
cd ton-proxy
./run-proxy.sh
Запускать также из-под WSL2
 
Сверху