Это гайд, как с помощью утилиты для командной строки (CLI) взаимодействовать с основными функциями протокола Tornado, когда основные сайты по каким-либо причинам недоступны, либо на выбранной вами сети нету работающих релееров, ну или вам просто удобнее работать в консоли. Почти все материалы этого туториала предназначены для людей, обладающих минимальными навыками работы с компьютером.
Простой вариант для пользователей Windows:
Шаг первый: скачивание CLI с git
Перейдите на страницу репозитория tornado-cli и скачайте последнюю версию архивом, как показано ниже:
Откройте в проводнике папку, куда скачался архив, и разархивируйте его.
Шаг второй: подготовка к работе
Откройте консоль (cmd) от имени администратора и введите в открытой консоли команду: cd <путь к папке tornado-cli>
Путь можете скопировать прямо из проводника, если в нём есть пробелы - надо заключить весь путь в кавычки, вот так: cd "путь"
. Действия наглядно показаны на гифке ниже:
Заключительный шаг: использование 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
Если вы хотите вывести без релеера, с использованием приватного ключа, сначала удостоверьтесь в двух важных вещах:
- Приватный ключ конкретно от того кошелька (адреса), куда вы планируете выводить средства
- На адресе, куда вы выводите средства, достаточно базовой валюты сети (например, 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
, как на скриншоте ниже:
Шаг третий: установка CLI с git
Перейдите на страницу репозитория tornado-cli и скачайте последнюю версию архивом, как показано ниже:
Откройте в проводнике папку, куда скачался архив, и разархивируйте его (как уже делали с архивом NVM). Далее снова откройте консоль от имени администратора (предыдущее окно использовать не надо - некоторые команды в нём могут быть недоступны).
Введите в открытой консоли команду: cd <путь к папке tornado-cli>
Путь можете скопировать прямо из проводника, если в нём есть пробелы - надо заключить весь путь в кавычки, вот так: cd "путь"
. Действия наглядно показаны на гифке ниже:
Далее надо установить сами зависимости - сделать это можно командой ниже:
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 по ссылке ниже.