SPACEMESH CLI /// v2.09
Давно не обновлял. Гайд в принципе рабочий, только файлы ноды и майнера актуальные с гитхаба скачать надо. Сам перестал держать.
Устанавливаем ноду Spacemesh для участия в тестнете devnet-208.
Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.
- Краткое описание ивента: несколько слов про ивент, условия участия.
- Требования к железу: рекомендуемые технические параметры сервера.
- Установка
- Майнер: устанавливаем программное обеспечение;
Spacemesh - блокчейн, использующий новый протокол консенсуса race-free.
Проект Spacemesh стремится создать безопасный и масштабируемый блокчейн, состоящий из большого количества "нод", в роли которых выступают обычные домашние ПК.
Spacemesh спроектирован таким образом, чтобы быть устойчивым к ASIC-майнингу и не давать преимущества тем персонажам, которые могут позволить себе арендовать выделенный сервер.
Команда достигает этого используя новый протокол консенсуса и оптимизируя ПО для наиболее эффективного использования Spacemesh на домашних ПК.
На данный момент тестнет, как ивент, не запущен. Просто открытый тест.
Blog | Docs | GitHub | WebSite | Twitter | Discord
Официальные требования: 2 CPU x 4 GB RAM x 100 GB SSD - Ubuntu 20.04.
Субъективные наблюдения: 2 CPU x 4 GB RAM x 100 GB SSD - Ubuntu 20.04.
Приступаем к установке майнера:
# обновляем 'базу данных', обновляем дистрибутив $ sudo apt-get update && sudo apt-get upgrade -y
# скачиваем необходимые зависимости $ sudo apt install curl unzip wget -y
# удаляем старый 'go' $ rm -rf /usr/local/go
# устанавливаем 'go' одной командой $ wget https://golang.org/dl/go1.16.7.linux-amd64.tar.gz && \ tar -C /usr/local -xzf go1.16.7.linux-amd64.tar.gz && \ rm go1.16.7.linux-amd64.tar.gz && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin">> ~/.bash_profile; \ source ~/.bash_profile && \ go version
# создаём папку 'spacemesh' $ mkdir $HOME/spacemesh && cd $HOME/spacemesh
# скачиваем архив 'go-spacemesh' $ wget -P $HOME/spacemesh/ https://storage.googleapis.com/go-spacemesh-release-builds/v0.2.5-beta.1/Linux.zip
# наводим красоту одной командой $ cd $HOME/spacemesh/ && \ unzip $HOME/spacemesh/Linux.zip && \ rm -fv $HOME/spacemesh/Linux.zip && \ rm -Rfv $HOME/spacemesh/__MACOSX && \ mv $HOME/spacemesh/Linux/* $HOME/spacemesh/ && \ rm -Rfv $HOME/spacemesh/Linux/ && \ mv go-spacemesh node && \ mv smrepl* wallet && cd
# выдаём права на исполнение $ chmod +x $HOME/spacemesh/node $HOME/spacemesh/wallet
# перемещаем все нужные файлы в '/usr/bin/' $ mv $HOME/spacemesh/node /usr/bin/ && \ mv $HOME/spacemesh/wallet /usr/bin/ && \ mv $HOME/spacemesh/libgpu-setup.so /usr/bin/
# создаём сервис 'spaced' $ sudo tee <<EOF >/dev/null /etc/systemd/system/spaced.service [Unit] Description=Spacemesh Node After=network-online.target [Service] User=$USER ExecStart=/usr/bin/node -c=$HOME/spacemesh/config.json Restart=always RestartSec=10 LimitNOFILE=10000 [Install] WantedBy=multi-user.target EOF
# включаем сервис 'spaced' $ sudo systemctl daemon-reload && \ sudo systemctl enable spaced && \ sudo systemctl restart spaced
# смотрим логи $ sudo journalctl -u spaced -f
Отлично, логи побежали. Останавливаем логи сочетанием клавиш Ctrl + C.
Открываем клиент для взаимодействия с кошельком.
# открываем клиент $ wallet
Если у вас остался кошелёк со старых тестнетов, то загружаем его в любой удобный каталог и "открываем" его через клиент, как обычно:
Если кошелька нет, то создаём его.
# первым делом, создаём кошелёк (выполнять в клиенте) $ wallet create
Обязательно скачиваем себе на компьютер файл с ключом по указанному пути. Это единственный способ восстановить кошелёк.
# посмотрим информацию о кошельке (выполнять в клиенте) $ account info
# проверяем статус синхронизации (выполнять в клиенте) $ status node
Ждём конца синхронизации, когда Synced станет true.
# выходим из клиента $ quit
Настраиваем смешинг. Первым делом необходимо отредактировать конфиг по пути $HOME/spacemesh/config.json.
На сотой строке начинается блок, отвечающий за смешинг:
smeshing-coinbase - наш тестовый спейсмеш-адрес, на который будут приходить награды.
smeshing-opts-datadir - указываем папку $HOME/spacemesh/post.
Выглядеть должно следующим образом:
Сохраняем изменения и настраиваем аккаунт для получения наград в клиенте.
# открываем клиент $ wallet
# настраиваем адрес для наград (выполнять в клиенте) $ smesher set-rewards-address
# выходим из клиента $ quit
Теперь перезапускаем сервис, чтобы изменения вступили в силу.
# перезапуск 'spaced' $ sudo systemctl restart spaced
# смотрим логи $ sudo journalctl -u spaced -f
Сочетанием клавиш Ctrl + C выходим из логов и проверяем статус смешинга:
# открываем клиент $ wallet
# статус смешинга $ smesher status
Первые награды капнут через несколько часов.
Их можно лицезреть в эксплорере:
# останавливаем сервис 'spaced' $ sudo systemctl stop spaced
# удаляем старые файлы одной командой $ rm -Rvf /usr/bin/node /usr/bin/wallet \ /usr/bin/libgpu-setup.so $HOME/spacemesh/config.json \ $HOME/spacemesh/gpu-setup-test $HOME/spacemesh/post
# скачиваем архив с новыми исполняемыми файлами $ wget -P $HOME/spacemesh/ https://storage.googleapis.com/go-spacemesh-release-builds/v0.2.5-beta.1/Linux.zip
# наводим красоту одной командой $ cd $HOME/spacemesh && \ unzip $HOME/spacemesh/Linux.zip && \ rm -fv $HOME/spacemesh/Linux.zip && \ rm -Rfv $HOME/spacemesh/__MACOSX && \ mv $HOME/spacemesh/Linux/* $HOME/spacemesh/ && \ rm -Rfv $HOME/spacemesh/Linux/ && \ mv go-spacemesh node && \ mv smrepl* wallet && cd
# выдаём права на исполнение $ chmod +x $HOME/spacemesh/node $HOME/spacemesh/wallet
# перемещаем все нужные файлы в '/usr/bin/' $ mv $HOME/spacemesh/node /usr/bin/ && \ mv $HOME/spacemesh/wallet /usr/bin/ && \ mv $HOME/spacemesh/libgpu-setup.so /usr/bin/
# включаем сервис 'spaced' $ sudo systemctl daemon-reload && \ sudo systemctl enable spaced && \ sudo systemctl restart spaced
# смотрим логи $ sudo journalctl -u spaced -f
Через минут 15 начнётся синхронизация. Проверять можно через клиент кошелька:
$ wallet $ status node
Также, после окончания синхронизации не забудьте убедиться, что смешинг включён и активен. Необходимо будет настроить конфиг заново, как мы делали в пункте Smeshing.
Если вы вдруг разочаровались в проекте и хотите удалить его с сервера, то можно просто разрушить/удалить сервер из личного кабинета хостинга.
Это сработает, если на сервере нет других важных нод. В случае, если вы хотите оставить сервер, но удалить конкретную ноду - приступаем к её удалению:
# останавливаем и отключаем сервис 'spaced' $ sudo systemctl stop spaced && sudo systemctl disable spaced
# удаляем папку с исполняемыми файлами 'spacemesh' одной командой $ rm -Rvf $HOME/spacemesh /usr/bin/node /usr/bin/wallet \ /usr/bin/libgpu-setup.so
мамичу за то, что родила такого гения.
@how_to_node - канал, где я выкладываю свои гайды.