Ended Events
August 23, 2021

Porta /// v1.2

Running a validator node in Padlock, will earn you 100 $KIAN tokens per week. Payouts will be on a weekly basis.

As the project moves towards Mainnet, the rewards will shift to accommodate community members at a larger scale.

Medium | Docs | GitHub | WebSite | Twitter | Discord | Telegram

HW: 4 CPU x 4 GB RAM x 50 GB SSD (для успешного билда ноды, затем можно снизить до 1 CPU x 2 GB RAM)
ОS: Ubuntu 20.04

Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.
# обновляем 'базу данных', обновляем дистрибутив
$ sudo apt-get update && sudo apt-get upgrade -y
# скачиваем необходимые зависимости
$ sudo apt-get install curl git clang curl libssl-dev llvm libudev-dev jq -y
# устанавливаем 'rust' и проверяем его установку одной командой
$ curl https://getsubstrate.io -sSf | bash -s -- --fast && \
. $HOME/.cargo/env && rustup show
# скачиваем и устанавливаем ноду
$ git clone https://github.com/porta-network/porta-node.git
$ cd $HOME/porta-node && cargo build --release
# устанавливаем переменную имени валидатора одной командой
# не забудьте изменить <nickname> на ваш никнейм без кавычек 
# например, "export NICKNAME="cyberomanov"" 
$ echo "export NICKNAME="<nickname>"" >> $HOME/.bash_profile && source $HOME/.bash_profile
# создаём сервисный файл 'portad'
$ sudo tee <<EOF >/dev/null /etc/systemd/system/portad.service
[Unit]
Description=Porta Node
After=network-online.target
[Service]
User=$USER
ExecStart=$HOME/porta-node/target/release/porta \
--chain $HOME/porta-node/chain-spec-padlock.json \
-d data/$NICKNAME --name "$NICKNAME" --validator \
--port 30337 --ws-port 9949 --rpc-port 9937 \
--ws-external --rpc-cors all --rpc-methods=unsafe
Restart=always
RestartSec=3
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
# запускаем сервисный файл 'portad' одной командой
$ sudo systemctl daemon-reload && \
sudo systemctl enable portad && \
sudo systemctl restart portad
# проверяем логи
$ journalctl -u portad -f

Если ваш лог похож на мой - всё прошло удачно.
Можно приступать к созданию кошелька.

Устанавливаем расширение polkadot.js. И создаём кошелёк, если ещё не имеете.
Переходим на сайт console.porta.network и подключаем расширение.

Должен будет отобразиться как минимум 1 аккаунт из разрешения:

Создаём 2-ой аккаунт с названием "CONTROLLER". Сохраняем мнемонику, скачиваем json-файл (загрузка начнётся автоматически):

Аккаунт, импортированный из polkadot.js, будет играть роль "STASH".
Роль "контроллёра" будет играть, соответственно, только что созданный адрес.

После создания "контроллёра", нам нужно запросить токены на наш основной адрес (импортированный из polkadot.js).

Для этого копируем адрес и запрашиваем токены в дискорде:

После того, как баланс перестал быть нулевым - отправляем часть токенов на оплату комиссий на аккаунт "контроллёра".

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

После всех манипуляций аккаунты должны выглядеть примерно так:

Приступаем к соданию валидатора.

Переходим во вкладку Staking и создаём "Stash":

Выбираем соответствующие аккаунты и сумму для селф-бонда:

Подтверждаем транзакцию:

И ждём появления своего стэша:

Теперь возвращаемся к терминалу и выполняем команду в одну строку:

$ curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' \
http://127.0.0.1:9937 | jq .result | sed 's/"//g'

Копируем вывод, начинающийся с "0x...", он понадобится для связки ноды и валидатора.

Возможно, какое-то время вместо вывода будет "null" - просто пробуйте заново, через пару минут заработает.

Возвращаемся к нашему стейку и заполняем "Session Key":

Вставляем наш вывод из терминала:

После успешной транзакции, начинаем валидацию. Нажимаем "Validate":

Выбираем процент комиссии и нажимаем "Validate":

Отлично, теперь вы сможете найти себя в "Waiting":

Чтобы стать активным валидатором, нужно подождать следующей эры.

Чтобы настроить имя ноды в консоли, нажимаем на своём стэш-аккаунте настройки, затем "Set on-chain identity":

И настраиваем свою личность:

Чтобы участвовать в программе наград, необходимо заполнить форму:

Stash account - основной адрес ноды. Тот, куда вы запрашивали токены.
BSC address - адрес кошелька в Binance Smart Chain (Metamask подойдёт).

Чтобы перенести ноду на другую машину - просто установите её на новом сервере. Затем начните синхронизацию и перепривяжите новые ключи в консоли:

Через некоторое время (скорее всего), ваш валидатор перестанет валидировать и нужно будет заново задать значение комиссии и "пересоздать" валидатора, как мы уже делали ранее.

Бэкапа, как такового, нет. Главное - иметь мнемонику и json-файлы от stash-аккаунта и controller-аккаунта.

Имея их, можно будет восстановить ноду на любом сервере.

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

Это сработает, если на сервере нет других важных нод. В случае, если вы хотите оставить сервер, но просто удалить порту, то приступим к её удалению:

# останавливаем сервис ноды
$ sudo systemctl stop portad && sudo systemctl disable portad
# удаляем папку 'porta-node'
$ rm -Rv $HOME/porta-node /data/
# удаляем файл сервиса и перезагружаем демона одной командой
$ sudo rm -v /etc/systemd/system/portad.service && \
sudo systemctl daemon-reload

мамичу за то, что родила такого гения.

nodes.guru за альтернативный гайд.

@how_to_node - канал, где я выкладываю свои гайды.

Полезные ресурсы.

Крипто-кошельки автора гайда.