Aleo Miner

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


Report Page