Aleo Miner
@CryptoWatermelon | https://t.me/CryptoWatermelon
Введение
Для запуска узла понадобится сервер, соответствующий следующим требованиям:
- 4 CPU | 16 RAM | 128 GB HDD | Ubuntu 20.04 | Поддержка IPv4
Арендовать можно на любом понравившемся сервисе. Лично я рекомендую воспользоваться услугами WebTropia, SmartApe.
Для подключения к серверу через SSH и работы с ним будем использовать MobaXterm. Гайд по MobaXterm.
Запуск майнера
# Обновляем пакеты. Подробнее: https://clck.ru/Vcu4Z $ sudo apt-get update ----------------------------------------------------------------------- # Устанавливаем необходимые пакеты. Подробнее: https://clck.ru/Vcu4Z $ sudo apt-get install git curl jq ufw pkg-config build-essential libssl-dev clang -y ----------------------------------------------------------------------- # Устанавливаем язык программирования Rust с помощью скрипта. $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Задаём настройку, чтобы rust-приложения запускались в текущей Bash оболочке. Подробнее: https://clck.ru/Vcu32 $ source $HOME/.cargo/.env ----------------------------------------------------------------------- # Копируем репозиторий, содержащий код AleoSDK с GitHub проект и переходим в скачанную папку. Подробнее: https://clck.ru/Vcu5g С помощью AleoSDK мы сгенерируем кошелёк, куда будут поступать награды за майнинг. $ git clone https://github.com/AleoHQ/aleo && cd aleo ----------------------------------------------------------------------- # Локально устанавливаем приложение (крейст) AleoSDK на сервер. Подробнее: https://clck.ru/VcuAb $ cargo install --path . ----------------------------------------------------------------------- # Генерируем кошелёк, который будем использовать для получения наград за майнинг. Файл с данными кошелька будет создан в домашней директории (по умолчанию /root). $ aleo account new > $HOME/aleoAccount.txt && cd # Выводим на экран данные кошелька. Подробнее: https://clck.ru/LTRnm $ cat aleoAccount.txt # Сохраняем адрес кошелька в переменную для удобства. Подробнее: https://clck.ru/VdpUf Не забудьте заменить YOUR_ADDRESS на ваш адрес, сгенерированный ранее. $ echo 'export ADDRESS="YOUR_ADDRESS"' > ~/.profile && source ~/.profile

# Клонируем репозиторий, содержащий код майнера. Переходим в скачанную папку.
$ git clone https://github.com/AleoHQ/snarkOS && cd snarkOS
-----------------------------------------------------------------------
# Локально устанавливаем приложение.
$ cargo install --path . --locked
-----------------------------------------------------------------------
# Открываем порты, необходимые для работы майнера и его мониторинга с помощью улитки ufw. Подробнее: https://clck.ru/H6wvS
$ sudo ufw allow 3030/tcp
$ sudo ufw allow 4131/tcp
-----------------------------------------------------------------------
# Создаём сервис (запускаем майнер). Подробнее: https://clck.ru/Vdou7
$ sudo tee <<EOF >/dev/null /etc/systemd/system/aleo.service
[Unit]
Description=Aleo Miner
After=network-online.target
[Service]
User=$USER
ExecStart=$HOME/snarkOS/target/release/snarkos --is-miner --miner-address $ADDRESS
Restart=always
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
# Управление сервисом.
$ sudo systemctl start aleo # Запуск сервиса.
$ sudo systemctl stop aleo # Остановка сервиса.
$ sudo systemctl daemon-reload # Перезагрузка сервиса.
$ sudo journalctl -u aleo -f # Просмотр логов.
-----------------------------------------------------------------------
# Команды для мониторинка ноды. Список всех команд: https://clck.ru/VdtnT
# Общая информация о ноде:
$ curl -s -0 --data-binary '{"jsonrpc": "2.0", "id":"documentation", "method": "getnodeinfo", "params": [] }' -H 'content-type: application/json' localhost:3030/ | jq
# Статистика ноды:
$ curl -s -0 --data-binary '{"jsonrpc": "2.0", "id":"documentation", "method": "getnodestats", "params": [] }' -H 'content-type: application/json' localhost:3030/ | jq
# Количество пиров:
$ curl -s -0 --data-binary '{"jsonrpc": "2.0", "id":"documentation", "method": "getpeerinfo", "params": [] }' -H 'content-type: application/json' localhost:3030/ | jq
# Получить текущую высоту синхронизации ноды.
$ curl -s -0 --data-binary '{"jsonrpc": "2.0", "id":"documentation", "method": "getblockcount", "params": [] }' -H 'content-type: application/json' localhost:3030/ | jq
# Высоту основной сети можно посмотреть в explorer: https://www.aleo.network/
-----------------------------------------------------------------------
# Обновление ноды
# Останавливаем работу ноды.
$ sudo systemctl stop aleo
# Переходим в скачанную папку репозитория и скачиваем актуальную версию кода. Подробней: https://clck.ru/Vdujb
$ cd $HOME/snarkOS && git fetch
# Проверяем историю изменений кода и ищем хэш последнего обновления. Подробней: https://clck.ru/PQ3CX
$ git log

# Переключаемся на актуальную версию кода. Подробней: https://clck.ru/ $ git checkout <COMMIT_HASH> # Не забываем заменить хэш коммита на свой. # Удаляем старое приложение. Подробнее: https://clck.ru/Vdure $ rm $HOME/snarkOS/target/release/snarkos # Устанавливаем новое приложение. $ cargo install --path . --locked # Чистим файлы, содержащие сведения о прошлых сетях. $ cd $HOME/.snarkOS/ && ls | grep -v config.toml | xargs rm -rfv # Снова запускаем сервер. $ sudo systemctl start aleo