Гайд по Tornado CLI: установка и использование

Это гайд, как с помощью утилиты для командной строки (CLI) взаимодействовать с основными функциями протокола Tornado, когда основные сайты по каким-либо причинам недоступны, либо на выбранной вами сети нету работающих релееров, ну или вам просто удобнее работать в консоли. Почти все материалы этого туториала предназначены для людей, обладающих минимальными навыками работы с компьютером.

Простой вариант для пользователей Windows:

Шаг первый: скачивание CLI с git

Перейдите на страницу репозитория tornado-cli и скачайте последнюю версию архивом, как показано ниже:

Откройте в проводнике папку, куда скачался архив, и разархивируйте его.

Шаг второй: подготовка к работе

Откройте консоль (cmd) от имени администратора и введите в открытой консоли команду: cd <путь к папке tornado-cli>
Путь можете скопировать прямо из проводника, если в нём есть пробелы - надо заключить весь путь в кавычки, вот так: cd "путь". Действия наглядно показаны на гифке ниже:

Перейти в директорию, куда установлен tornado-cli

Заключительный шаг: использование CLI

Описание практически всех функций есть в самой программе или в документации на git по ссылке ниже, однако они на английском.

Для тех, кому надо просто сделать депозит или вывести средства без особых сложностей, ниже будет короткий туториал:

Депозит

Сначала подготовьте приватный ключ своего кошелька. Получить приватный ключ из seed-фразы можно тут, а вот гайд, как скопировать приватный ключ своего кошелька в MetaMask.

Для депозита в открытой консоли введите следующую команду: tornado-cli.exe deposit <currency> <amount> <chain id> --private-key <private key>
Разумеется, все значения параметров в <> надо будет заменить на реальные, к примеру:

tornado-cli.exe deposit BNB 0.1 56 --private-key 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Узнать chain ID (третий параметр) для вашей сети можно на сайте chainlist.org. Для Ethereum mainnet это 1, для Binance Smart Chain (BSC) - 56.

Программа выведет в консоль созданную приватную ноту, скопируйте её и сохраните в безопасном месте. Убедитесь, что депозит прошёл успешно - можете проверить актуальность note командой compliance.

Вывод

Сначала подготовьте свою приватную ноту и адрес, на который будете выводить средства. Приватный ключ кошелька не потребуется.

Откройте терминал (консоль) в папке CLI и скопируйте следующую команду: tornado-cli.exe withdraw <your note> <your address>
В этом случае релеер выберется автоматически.

Разумеется, все значения параметров в <> надо будет заменить на реальные, к примеру:

tornado-cli.exe withdraw tornado-eth-0.1-5-0xf73dd6833ccbcc046c44228c8e2aa312bf49e08389dadc7c65e6a73239867b7ef49c705c4db227e2fadd8489a494b6880bdcb6016047e019d1abec1c7652 0x8589427373D6D84E98730D7795D8f6f8731FDA16

Если вы хотите вывести без релеера, с использованием приватного ключа, сначала удостоверьтесь в двух важных вещах:

  1. Приватный ключ конкретно от того кошелька (адреса), куда вы планируете выводить средства
  2. На адресе, куда вы выводите средства, достаточно базовой валюты сети (например, ETH на Ethereum Mainnet или BNB на BSC), чтобы заплатить комиссию за вывод.

Когда вы запустите команду, дерево событий будет загружено и SNARK-доказательство сгенерировано, вы увидите окно подтверждения транзакции, примерно такое:

Если вас устраивает комиссия сети и комиссия релеера, введите Y и нажмите “Enter”.
После отправки транзакции в блокчейн в консоль будет выведена ссылка на транзакцию в обозревателе блоков вашей сети:

Важная информация

Если вас не устраивает RPC по умолчанию, которые указаны в config.js, вы можете выбрать любую RPC себе по вкусу на сайте chainlist.org.
Если вас не устраивает автоматический выбор релеера, вы можете ввести команду tornado-cli.exe listRelayers <chain id> и выбрать релеера себе по вкусу.

Аудиторам и дотошным пользователям: как верифицировать исполняемый файл

Как понять, что файл tornado-cli.exe действительно содержит только исходный код CLI без вредоносных дополнений? На самом деле, довольно просто: .exe-файл собирается с помощью npm-пакета pkg, который позволяет создавать детерминированные исполняемые файлы с воспроизводимым содержимым (как IPFS, при запуске одинаковых команд на одинаковых исходниках итоговый исполняемый файл будет совпадать полностью и иметь такой же хеш).

В скрипте createDeterministicExecutable.js вы можете посмотреть процесс генерации исполняемого файла и даже пересоздать его, а с помощью скрипта verifyExecutable.js вы можете сверить хеш исполняемого файла, находящегося в актуальной версии репозитория, и свежесобранного из исходников .exe-файла.

Запустить проверку: npm run verifyExe, однако сначала надо будет скачать NodeJS и установить зависимости.

Вариант сложнее: Linux, Mac и запуск с помощью NodeJS на Windows

Шаг первый: установка NVM

Чтобы с легкостью установить NodeJS требуемой версии и легко решать проблемы с зависимостями, понадобится универсальный менеджер пакетов Node с открытым исходным кодом под названием NVM.

Установка на Windows

Зайдите на страницу релизов NVM на github и скачайте архив с последней версией программы - всё как на скриншоте ниже. Название файла должно быть nvm-setup.zip.

Далее, требуется распаковать архив в любую удобную вам папку - для распаковки .zip подойдёт любой встроенный разархиватор на вашей системе. Далее, откройте итоговую папку и запустите исполняемый файл nvm-setup.exe, если после запуска выдало предупреждение о том, что приложение из ненадежного источника - подтверждайте запуск ещё раз.

Ошибка установки: файл из неизвестного источника

Далее, соглашаетесь со стандартными путями установки и следуете инструкциям в окошке установки приложения.

После завершения установки откройте нижнюю панель Windows, найдите иконку (или строку) поиска, введите Poweshell или cmd и запустите от имени администратора. Когда окошко консоли откроется, введите команду ниже и затем нажмите Enter:

nvm -v

Если после выполнения команды вывело версию NVM, которую вы установили (аналогично скриншоту ниже), то всё отлично - переходите к следующему пукнту.

Установка на Linux

На линуксе установить NVM очень просто, всего парой команд через стандартный терминал вашей операционной системы. Откройте терминал, далее введите, в зависимости от того, что у вас установлено по умолчанию - curl или wget:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

ИЛИ

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

Когда NVM установится, добавьте его в быстрый доступ (PATH) этой командой:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" 

Затем вводите:

nvm -v

Если в ответе выводится корректная версия NVM, которую вы скачали с сайта - всё отлично.

Шаг второй: установка NodeJS

Теперь вам надо установить NodeJS версии 14.21.3, чтобы CLI-приложение работало корректно. Для этого введите в ещё открытом окне консоли следующие команды:

nvm install 14.21.3
nvm use 14.21.3

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

node -v

Вывод в консоли должен быть v14.21.3, как на скриншоте ниже:
Выбор нужной версии NodeJS

Шаг третий: установка CLI с git

Перейдите на страницу репозитория tornado-cli и скачайте последнюю версию архивом, как показано ниже:

Откройте в проводнике папку, куда скачался архив, и разархивируйте его (как уже делали с архивом NVM). Далее снова откройте консоль от имени администратора (предыдущее окно использовать не надо - некоторые команды в нём могут быть недоступны).

Введите в открытой консоли команду: cd <путь к папке tornado-cli>
Путь можете скопировать прямо из проводника, если в нём есть пробелы - надо заключить весь путь в кавычки, вот так: cd "путь". Действия наглядно показаны на гифке ниже:

Перейти в директорию, куда установлен tornado-cli

Далее надо установить сами зависимости - сделать это можно командой ниже:

npm install

Если всё установилось успешно (даже с предупреждениями), можно продолжать, если же возникла какая-то ошибка, связанная с разрешениями (permissions) - перезапустите терминал ещё раз с правами администратора (или, если на Linux, добавьте sudo перед npm).

Если команда npm install завершилась с ошибкой

Скачивание node-gyp и зависимостей

Сначала в открытом терминале (консоли) запустите команду: npm i -g node-gyp

Инструкция для Windows
Установите последнюю версию Python 3 с официального сайта (просто нажать большую кнопку Download, запустить скачавшийся исполняемый файл и следовать всем инструкциям установщика).

Далее установите последнюю версию Microsoft Visual Studio Build Tools (для компиляции С++): перейти по этой ссылке и загрузка начнётся автоматически. Когда файл с названием vs_BuildTools.exe будет загружен, просто запустите его и в окне установке выберите пункт Desktop Development with C++.

Инструкция для Linux

Просто откройте терминал и запустите команду: sudo apt-get install -y build-essentials, Python должен быть установлен в системе по умолчанию.

Заключительный шаг: использование CLI

Описание практически всех функций есть в самой программе или в документации на git по ссылке ниже.

2 Likes