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

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

Однако, если вы знаете с git, NodeJS и так далее, нажмите - тут краткое руководство
  1. Установите любой git-клиент, например, тут
  2. Установите последнюю версию NVM отсюда
  3. Откройте консоль с правами администратора (Powershell, cmd - неважно)
  4. git clone https://git.tornado.ws/tornadocash/tornado-cli
  5. nvm install 14.21.3
  6. Установите node-gyp dependencies [Не обязательно]
  7. npm install

Теперь вы можете работать с tornado-cli, как описано в документации

Шаг первый: установка 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 по ссылке ниже, однако они на английском. Для тех, кому надо просто вывести средства без особых сложностей, ниже будет короткий туториал.

https://git.tornado.ws/tornadocash/tornado-cli#goerli-mainnet-binance-smart-chain-gnosis-chain-polygon-network-arbitrum-avalanche

Легкий гайд - как выводить с помощью CLI

Сначала подготовьте свою приватную ноту и адрес, на который будете выводить средства. Так же может понадобиться секретный ключ (приватный ключ) конкретно от того кошелька (адреса), куда выводится note.

Откройте терминал (консоль) в папке CLI и скопируйте следующую команду: node cli.js withdraw <your note> <your address> --relayer <relayer link>
ИЛИ (если вы хотите вывести без релеера или его нет на вашей сети)
node cli.js withdraw <your note> <your address> --private-key <private key>

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

node cli.js withdraw tornado-eth-0.1-5-0xf73dd6833ccbcc046c44228c8e2aa312bf49e08389dadc7c65e6a73239867b7ef49c705c4db227e2fadd8489a494b6880bdcb6016047e019d1abec1c7652 0x8589427373D6D84E98730D7795D8f6f8731FDA16 --relayer https://goerli-relay.example.org

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

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

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

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

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

Если вас не устраивает RPC по умолчанию, которые указаны в config.js, вы можете выбрать любую RPC себе по вкусу на сайте chainlist.org или в списке RPC в документации CLI


Оригинал создан Gozzy, исправил, обновил, улучшил и перевёл - Theo.


1 Like