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

cryptobro

New member
Сообщения
23
Реакции
10
Ниже описан процесс сборки тестового клиента 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 установлен.
[email protected]:~# which openssl
/usr/bin/openssl
[email protected]:~# 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:
[email protected]:~/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
 
Сверху