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


NGdust

New member
Сообщения
1
Реакции
0
Запустил rldp-http-proxy, слуаште все норм)
Но при curl -x 127.0.0.1:8080 http:\\test.ton не получаю страницу(((
есть с флагом -i перед url, то выводит 502 Bad Gateway
 

Alex B

New member
Сообщения
9
Реакции
12
Запустил rldp-http-proxy, слуаште все норм)
Но при curl -x 127.0.0.1:8080 http:\\test.ton не получаю страницу(((
есть с флагом -i перед url, то выводит 502 Bad Gateway
Вчера обновили VM: https://github.com/ton-blockchain/ton/commit/e27fb1e09c7332d4eea0eb4f89ff0b7275257c10
Обновление достаточно большое, есть упоминания DNS.

Похоже они этим обновлением все и сломали, пускай оно и не затронуло ADNL прокси. Никакой сайт ни с какого прокси на данный момент не открывается.

Если запусти прокси с флагом -v 4, то можно увидеть кучу ошибок:
158
 

clode

New member
Сообщения
5
Реакции
0
Каким образом ты запустил ./rldp-http-proxy -p 8080 -c 3333 -C ton-global-lite-client.config.json? у меня игнориться эта команда
 

clode

New member
Сообщения
5
Реакции
0
Во-первых, на винде так просто не собрать. Собирать надо из-под линукс. Еще я пробовал собрать .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
подскажите пж, почему не rldp-http-proxy -p 8080 -c 3333 -C ton-global-lite-client.config.json не срабатывает/ curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused выдает
 

F_F

Moderator
Команда форума
Сообщения
84
Реакции
29
подскажите пж, почему не rldp-http-proxy -p 8080 -c 3333 -C ton-global-lite-client.config.json не срабатывает/ curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused выдает
Запустите с опцией -v 3. Это даст более подробный вывод логов.
 
Последнее редактирование:

F_F

Moderator
Команда форума
Сообщения
84
Реакции
29
Мой опыт по вышеупомянутой инструкции, original и original. Поправьте меня где я не прав.

0. Скачивание и компиляция.
На данном этапе мы имеем полную скомпилированные компоненты TON. В моем случае исходники были скопированы в папку /home/ton/ton/, а скомпилировано в /home/ton/build/

Мои команды для компиляции (При условии, что у вас установлены все необходимые компоненты):
Bash:
cd ~/
git clone --recursive https://github.com/ton-blockchain/ton.git
mkdir ~/build
cd ~/build
cmake ~/ton
make

1. Создание TON сайта.
Наши тесты мы будем делать в папке ~/test_dir/. Подготовим папку для ключа нашего сайта:
Bash:
cd ~/test_dir/
mkdir keyring

Создадим ADNL адрес для нашего сайта. Мы получим название файла нашего ключа для сайта (627D...4193) и ADNL адрес (vrh2...gkof):
Bash:
cd ~/test_dir/keyring/
/home/ton/build/utils/generate-random-id -m adnlid

627D33E4C5823D0473F7B5A1E388E5BCFFE19EA9A86CCF05A287B13D3A344193 vrh2m7eywbd2bdt6622dy4i4w6p7ym6vgugztyfukd3cpj2grazgkof

Запускаем rldp-http-proxy скачав перед этим ton-global-lite-client.config.json:
Bash:
cd ~/test_dir/
wget https://test.ton.org/ton-global-lite-client.config.json
/home/ton/build/rldp-http-proxy/rldp-http-proxy -a <your-public-ip>:3333 -L '*' -C ton-global-lite-client.config.json -A vrh2m7eywbd2bdt6622dy4i4w6p7ym6vgugztyfukd3cpj2grazgkof -v 3
, где <your-public-ip> - ваш публичный ip адрес, по которому доступен ваш сервер.


Установим apache2 от имени администратора и закроем доступ к нему по обычному интернету:
Bash:
apt-get install apache2
echo "Listen 127.0.0.1:80" > /etc/apache2/ports.conf
systemctl restart apache2

2. Регистрация субдомена.
Предположим, что мы хотим арендовать субдомен у домена temp.ton (в данный момент субдомен можно арендовать только под этим доменом). Нам нужно узнать адрес смарт-контракта от домена temp.ton:
Код:
> dnsresolve temp.ton -1

arguments:  [ CS{Cell{0012746f6e0074656d7000} bits: 0..72; refs: 0..0} -1 123660 ]
result:  [ 72 C{946199E3AB61AD64D7492C91031886902BC986AE6B2B809141CB615AEFC454B6} ]
remote result (not to be trusted):  [ 72 C{946199E3AB61AD64D7492C91031886902BC986AE6B2B809141CB615AEFC454B6} ]
Result for domain 'temp.ton' category -1
raw data: x{BA938003217AEADED81CF291B84D968F2D06462EFF640689F1F34A123195F0FD96696F3_}

category #-1 : (dns_next_resolver
  resolver:(addr_std
    anycast:nothing workchain_id:0 address:x190BD756F6C0E7948DC26CB47968323177FB20344F8F9A50918CAF87ECB34B79))
        next resolver 0:190BD756F6C0E7948DC26CB47968323177FB20344F8F9A50918CAF87ECB34B79 = EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN
, где EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN - адрес нужного нам смарт-контракта от домена temp.ton.


Так же мы можем узнать сколько секунд будет продолжаться аренда домена, цену на аренду этого домена, цену за каждый бит хранимых данных, цена за каждую ячейку хранимых данных:
Код:
> runmethod EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN getstdperiod
arguments:  [ 67418 ]
result:  [ 700000 ]
remote result (not to be trusted):  [ 700000 ]

> runmethod EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN getppr
arguments:  [ 109522 ]
result:  [ 100000000 ]
remote result (not to be trusted):  [ 100000000 ]

> runmethod EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN getppb
arguments:  [ 113123 ]
result:  [ 100 ]
remote result (not to be trusted):  [ 100 ]

> runmethod EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN getppc
arguments:  [ 108994 ]
result:  [ 25000 ]
remote result (not to be trusted):  [ 25000 ]

Теперь нам нужно выбрать какой субдомен мы будем использовать. Для примера возьмем субдомен test, и таким образом наш полный адрес будет выглядеть test.temp.ton. Посмотрим, свободен ли данный субдомен:
Код:
> dnsresolve test.temp.ton 1

arguments:  [ CS{Cell{000a7375623200} bits: 0..40; refs: 0..0} 1 123660 ]
result:  [ 0 () ]
remote result (not to be trusted):  [ 0 () ]
domain 'test.temp.ton' not found

Если субдомен занят, мы можем посмотреть кода он освободиться по времени unixtime (при условии, что его не продлят). Если результат равен нулю, значит домен свободен:
Код:
> runmethod EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN getexpiration "test"

arguments:  [ CS{Cell{0006737562} bits: 0..40; refs: 0..0} 110574 ]
result:  [ 0 ]
remote result (not to be trusted):  [ 0 ]

Теперь нам нужно создать запрос на регистрацию нашего домена:
Bash:
/home/ton/build/crypto/fift -I /home/ton/ton/crypto/fift/lib:/home/ton/ton/crypto/smartcont -s auto-dns.fif EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN add 'test' 700000 owner kQCa5bUcmWbN2JKVu-2-2RNUf51J2Mh7nsLPs1J8rgqa3MzG cat 1 adnl vrh2m7eywbd2bdt6622dy4i4w6p7ym6vgugztyfukd3cpj2grazgkof
, где EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN - адрес смарт-контракта от домена temp.ton, test- наш субдомен, 700000 - время аренда нашего субдомена в секундках, kQCa5bUcmWbN2JKVu-2-2RNUf51J2Mh7nsLPs1J8rgqa3MzG - адрес нашего кошелька, vrh2m7eywbd2bdt6622dy4i4w6p7ym6vgugztyfukd3cpj2grazgkof - ADNL адрес нашего сайта.


Подпишем запрос нашим кошельком:
Bash:
/home/ton/build/crypto/fift -I /home/ton/ton/crypto/fift/lib:/home/ton/ton/crypto/smartcont -s wallet.fif wallet_001 EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN 1 1.7 -B dns-msg-body.boc
, где wallet_001 - название нашего кошелька (файл wallet_001.pk должен лежать в директории, откуда мы выполняем команду), EQAZC9dW9sDnlI3CbLR5aDIxd_sgNE-PmlCRjK-H7LNLeUXN - адрес смарт-контракта от домена temp.ton, 1 - seqno, 1.7 - количество грамм (отправляем больше, сдача нам придет обратно), dns-msg-body.boc - файл который мы получили при предыдущей команде.


И отправим финальный запрос в сеть:
Код:
> sendfile wallet-query.boc
Готово. Если вы все сделали правильно, то с вашего кошелька спишутся 1.7 GRM, а через какое то время придет чуть меньше. Результат команды dnsresolve test.temp.ton 1 в lite-client будет уже:
Код:
> dnsresolve test.temp.ton 1

arguments:  [ CS{Cell{000a7465737400} bits: 0..40; refs: 0..0} 1 123660 ]
result:  [ 40 C{1424265152FABFF9AB66A3DF22CA57A2FE0B1BF73D888D97760691CFA2F2A71D} ]
remote result (not to be trusted):  [ 40 C{1424265152FABFF9AB66A3DF22CA57A2FE0B1BF73D888D97760691CFA2F2A71D} ]
Result for domain 'test.temp.ton' category 1
raw data: x{AD01627D33E4C5823D0473F7B5A1E388E5BCFFE19EA9A86CCF05A287B13D3A34419300}

category #1 : (dns_adnl_address adnl_addr:x627D33E4C5823D0473F7B5A1E388E5BCFFE19EA9A86CCF05A287B13D3A344193 flags:0)
        adnl address 627D33E4C5823D0473F7B5A1E388E5BCFFE19EA9A86CCF05A287B13D3A344193 = VRH2M7EYWBD2BDT6622DY4I4W6P7YM6VGUGZTYFUKD3CPJ2GRAZGKOF

Так же наш сайт будет доступен через http-rldp прокси:
183
 
Последнее редактирование:

Сверху