Сборка и запуск TON Light Client под macOS

cryptobro

New member
Сообщения
24
Реакции
6
Ниже описан процесс сборки тестового клиента TON Light Client на примере macOS 10.14.5

Ссылка на ПО тестовой сети с официального сайта TON: https://test.ton.org/download.html

1. Необходимо скачать и установить архив с исходниками. Всегда скачиваете последнюю версию, так как обновления идут часто. Скачать здесь
2. В вашей системе должны быть установлены последние версии make, cmake, OpenSSL, g++ или clang
3. Распакуйте исходники в папку ~/lite-client (или другую на ваш выбор). Рядом создайте папку ~/liteclient-build и из этой папки вызывайте команды:

Код:
cmake ~/lite-client
cmake --build . --target test-lite-client
Также необходимо собрать интерпретатор языка Fift, для этого вызываем:

Код:
cmake --build . --target fift
4. Скачайте config файл для подключения к тестовой сети (в нём находится ip адрес) и положим его в папку с собранным клиентом
5. Запускаем TON Light Client командой:

Код:
./test-lite-client -C ton-lite-client-test1.config.json

Если при запуске клиента передать ему папку с помощью опции -D, то он будет складывать в неё последний блок мастерчейна:

Код:
./test-lite-client -C ton-lite-client-test1.config.json -D ~/ton-db-dir


Доступные команды

  • help — вывод списка всех команд
  • quit — выход
  • time — текущее время на сервере
  • status — состояние подключения и локальной базы данных
  • last — обновляет состояние блокчейна загружая последний блок
  • sendfile <filename> — позволяет загрузить локальный файл в блокчейн TON
  • getaccount <address> — показывает текущее состояние аккаунта с указанным адресом
  • privkey <filename> — загружает приватный (закрытый) ключ из локального файла
За подготовку материала спасибо пользователю deNULL
 
Последнее редактирование модератором:

k1m0

New member
Сообщения
3
Реакции
0
Подскажите, пожалуйста. Собираю lite-client на Ubuntu 18.04, получаю в консоли такую ошибку. В чем может быть причина? Как пофиксить сборку?

/root/lite-client/tdutils/td/utils/tests.cpp: In member function 'virtual td::Status td::RegressionTesterImpl::verify_test(td::Slice, td::Slice)':
/root/lite-client/tdutils/td/utils/tests.cpp:37:59: error: 'sha256' was not declared in this scope
auto hash = PSTRING() << format::as_hex_dump<0>(Slice(sha256(result)));
^~~~~~
tdutils/CMakeFiles/tdutils.dir/build.make:1334: recipe for target 'tdutils/CMakeFiles/tdutils.dir/td/utils/tests.cpp.o' failed
make[3]: *** [tdutils/CMakeFiles/tdutils.dir/td/utils/tests.cpp.o] Error 1
CMakeFiles/Makefile2:1768: recipe for target 'tdutils/CMakeFiles/tdutils.dir/all' failed
make[2]: *** [tdutils/CMakeFiles/tdutils.dir/all] Error 2
CMakeFiles/Makefile2:101: recipe for target 'CMakeFiles/test-lite-client.dir/rule' failed
make[1]: *** [CMakeFiles/test-lite-client.dir/rule] Error 2
Makefile:164: recipe for target 'test-lite-client' failed
make: *** [test-lite-client] Error 2
 

Vasay

New member
Сообщения
2
Реакции
0
/root/lite-client/tdutils/td/utils/tests.cpp:37:59: error: 'sha256' was not declared in this scope

Подозреваю, что у Вас не стоит пакет OpenSSL


п.с. "/root/" надеюсь, у Вас это не рабочая машина? Я бы не стал запускать софт непонятного происхождения от root.
 

k1m0

New member
Сообщения
3
Реакции
0
Привет, Vasay! Спасибо за ответ. Собираю lite-client в docker контейнере, поэтому в логах проскакивает root :)
OpenSSL установлен.
root@274313e0cea7:~# which openssl
/usr/bin/openssl
root@274313e0cea7:~# openssl version -a
OpenSSL 1.1.0g 2 Nov 2017
built on: reproducible build, date unspecified
platform: debian-amd64
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/x86_64-linux-gnu/engines-1.1\""
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"

Другие зависимости вроде тоже установлены
cmake ./lite-client
-- Found ccache
-- Found ZLIB: /usr/include /usr/lib/x86_64-linux-gnu/libz.so
-- Found Readline: /usr/include /usr/lib/x86_64-linux-gnu/libreadline.so
-- Configuring done
-- Generating done
-- Build files have been written to: /root

Возможно нужна более свежая версия OpenSSL?
 

k1m0

New member
Сообщения
3
Реакции
0
Да. :oops:
root@b0a553287c96:~/liteclient-build# apt list libssl-dev -a
Listing... Done
libssl-dev/bionic-updates,bionic-security,now 1.1.0g-2ubuntu4.3 amd64 [installed]
libssl-dev/bionic 1.1.0g-2ubuntu4 amd64
 

runnerr

New member
Сообщения
1
Реакции
0
Под MacOS тон-клинет скомпилировался, а вот fift фиг.
(Хотя первая выложенная версия все же как-то скомпилилась)

cmake --build . --target fift
Scanning dependencies of target fift
[100%] Building CXX object crypto/CMakeFiles/fift.dir/fift/fift-main.cpp.o
[100%] Linking CXX executable fift
ld: can't open output file for writing: fift, errno=21 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [crypto/fift] Error 1
make[2]: *** [crypto/CMakeFiles/fift.dir/all] Error 2
make[1]: *** [crypto/CMakeFiles/fift.dir/rule] Error 2
make: *** [fift] Error 2
 

Jadarya

New member
Сообщения
2
Реакции
0
Ошибка установки lite client:
error: 'td:Ed25519' has not been declared
60
 
Сверху