IRIS: вознаграждаемый тестнет Bifrost 2
cyberomanovУбедитесь, что имеете GitHub аккаунт старше, чем 2019/10/19.
РЕГИСТРАЦИОННАЯ ФОРМА
- Регистрируемся на Keybase.io. Для этого качаем приложение по ссылке для ПК. Устанавливаем, как обычную программу. Я буду показывать на примере windows-приложения.
2. Создаём аккаунт:
3. Вводим телефон и подтверждаем кодом из СМС.
4. Вводим свой никнейм от GitHub. Нас попросят создать файл "keybase.md" с уникальным текстом:
5. Жмём "Create gist now". Нас перебросят на GitHub, вставляем свой текст, называем файл "keybase.md" и меняем доступ на "Public gist":
Получили файл по типу: https://gist.github.com/romanoffmnogoznaet/4b7f8e46a97a0e8b687b1826304849e4
6. Возвращаемся в приложение, нажимаем "Check for it":
Супер, привязали GitHub к keybase.io:
7. Теперь создаём "PGP key":
Почту желательно указать из GitHub.
8. Заполняем форму и жмём "Let the math begin":
9. Ждём окончание процесса. Теперь в настройках жмём "Open keybase.io in web browser".
10. Переходим в свой профиль, жмём на "PGP key", копируем "fingerprint" и "64-bit". Сохраните их куда-нибудь.
11. Заполняем форму регистрации в тестнете.
Почту желательно указать из Github, PGP Fingerprint состоит из 16 символов.
АРЕНДА СЕРВЕРА И ЗАПУСК СЕССИИ В MOBAXTERM
Минимальные требования к оборудованию:
2 CPU
6GB RAM
256GB HDD
Ubuntu 16.04 и выше
- Арендуем сервер, записываем IP, пароль и логин от VPS.
Я лично покупаю здесь: vdsina.
При регистрации по моей ссылке 10% скидка на стоимость всех услуг.
2. Открываем MobaXterm и создаём сессию.
После чего двойным щелчком мыши открываем свою сессию, вводим логин и пароль.
Пароль не будет отображаться, так и должно быть.
Отлично, авторизовались!
УСТАНОВКА НОДЫ
Команды выполняем по одной.
После каждой команды жмём "Enter".
- Создаём пользователя:
sudo adduser <your_own_username>
Вводим свои данные. Пароль снова не отображается, не пугайтесь.
2. Добавляем пользователю права администратора и заходим в учётную запись:
usermod -aG sudo <your_own_username> su -l <your_own_username>
3. Устанавливаем "GO":
cd /usr/local sudo wget https://golang.org/dl/go1.15.7.linux-amd64.tar.gz (попросят ввести пароль, вводим пароль от учётной записи) sudo apt -y install tar sudo tar -C /usr/local -xzf go1.15.7.linux-amd64.tar.gz
4. Настраиваем переменные окружения:
export PATH=$PATH:/usr/local/go/bin mkdir -p $HOME/go/bin echo "export GOPATH=$HOME/go" >> ~/.bashrc source ~/.bashrc echo "export GOBIN=$GOPATH/bin" >> ~/.bashrc source ~/.bashrc echo "export PATH=$PATH:$GOBIN" >> ~/.bashrc source ~/.bashrc
5. Проверим версию "GO" командой:
go version
6. Устанавливаем пару модулей (git, make, gcc, tmux, curl, jq):
sudo apt update sudo apt -y install git make gcc tmux curl jq
7. Устанавливаем "Iris":
cd $HOME git clone --branch v1.0.0-rc0 https://github.com/irisnet/irishub cd irishub make install CGO_ENABLED=0
8. Начнётся установка ноды. Проверяем версию после окончания установки:
iris version
9. Создаём ноду:
iris init <key_base_nickname>-<pgp_id_16> --chain-id=bifrost-2
Например, в моём случае команда выглядит так:
10. Скачиваем необходимые файлы:
это одна команда!
curl -o ~/.iris/config/config.toml https://raw.githubusercontent.com/irisnet/testnets/master/nyancat/config/config.toml
это одна команда!
curl -o ~/.iris/config/genesis.json https://raw.githubusercontent.com/irisnet/testnets/master/bifrost/phase-2/genesis.json
11. Редактируем файл конфига. Для тех, кто в "MobaXterm", находим в проводнике файл "config.toml" и открываем его с помощью текстового редактора. Дальше действия аналогичны гайду.
Для всех остальных:
nano $HOME/.iris/config/config.toml
Ищем строчку moniker = "CHANGE THIS TO YOUR MONIKER" и заменяем на своё значение "<keybase_nickname>-<pgp_key_16>".
Ищем строчку db_backend = "leveldb" и заменяем на "goleveldb".
Ищем строчку persistent_peers = "c87675bcaeb72a1f93dbf7d74f7b425690a994e3@34.80.202.172:26656" и заменяем на "a246f5ea3055f7507c63b9ea50dbf5d401537b3a@34.80.22.255:26656".
Должно получиться вот так:
Поменял строки местами в конфиге для наглядности, в своём файле оставляйте всё на своих местах, меняйте только значения.
12. Запускаем ноду с помощью "tmux" (шпаргалка по работе с "tmux"):
tmux new -s iris
Открылся пустой терминал с припиской "[iris]".
13. Включаем ноду:
iris start
Побежала синхронизация ноды:
Чтобы выйти из окна синхронизации:
Ctrl + 'B' - отпускаем - 'C' . Это создаст новое окно.
Раскладка клавиатуры должна быть 'ENG'
Чтобы включить старое окно, после закрытия программы MobaXterm:
Входим в своего пользователя:
su -l <your_own_username>
Открываем старое окно:
tmux attach -t iris
ЗАПУСКАЕМ ВАЛИДАТОРА
- Создаём кошелёк:
iris keys add secret_key
Вводим желаемый пароль (8 символов и больше), получаем такой вывод:
Обязательно сохраняем данные вывода.
2. Идём сюда и сюда. Пишем в чат аналогичное сообщение:
Ждём, пока админы накинут на кошелёк тестовых монет.
Смотреть за балансом кошелька можно здесь или выполнить команду:
iris query bank balances <address>
3. Пока админы спят, введите в терминал:
iris status | jq
Ищем значение "cathing_up".
Если False - нода синхронизировалась.
Если True - синхронизируется.
После того, как нода засинхронилась, токены пришли на кошелёк, начинаем создание валидатора.
4. Выполняем следующее:
Все строки - это одна команда.
Меняем только в строке "--moniker" на своё значение. Остальное не трогаем.
Но поэкспериментировать с комиссией не смертельно.
iris tx staking create-validator \ --pubkey=$(iris tendermint show-validator) \ --moniker=<keybase_nikcname>-<pgp_16_key> \ --amount=21bif \ --commission-rate=0.1 \ --commission-max-rate=0.5 \ --commission-max-change-rate=0.25 \ --gas=1000000 \ --fees=0.6bif \ --chain-id=bifrost-2 \ --from=secret_key \ --min-self-delegation=1
5. Вводим пароль, подтверждаем транзакцию:
Если в выводе нашли подобный "raw_log", перезапустите ноду в окне "iris".
6. Если команда выполнилась без видимых ошибок, выполняем проверку:
iris status | jq
В выводе VotingPower должен быть больше нуля.
Это означает, что вы теперь Валидатор. Моё уважение.
7. Ищем себя в списке валидаторов.
Гордитесь собой. И мной тоже можно.
ЧТО ДЕЛАТЬ, ЕСЛИ ВЫПАЛ В КАНДИДАТЫ
Если вы перестали находиться в списке валидаторов, но при этом есть в списке кандидатов, необходимо заделегировать ещё немного bif'ов.
Список активных валидаторов формируется из первых 100 нод по убыванию стейка.
Заделегируем ещё немного токенов, дабы вернуться в валидаторы.
1. Находим свою ноду в списке кандидатов и копируем "Operator Address":
2. Входим в свою учётную запись:
su -l <your_own_username>
3. Выполняем команду:
2 строки - это одна команда. Вставляем свой адрес, желаемое количество токенов и файл, в котором хранятся наши ключи.
iris tx staking delegate <operator-address> <amount>bif --chain-id=bifrost-2 --from=<secret_key> --fees=0.6bif
Вводим пароль и подтверждаем транзакцию:
Через пару минут вы появитесь в списке валидаторов, если нового стейка хватит. Также можно проверить баланс валидатора прямо из терминала, для этого:
iris query staking validator <operator-address>
Как выйти из тюрьмы
- Входим в свою учётную запись:
su -l <your_own_username>
2. Выполняем команду unjail:
Заменить <secret_key> на файл, в котором лежат ключи.
Создавали файл на этапе запуска валидатора.
iris tx slashing unjail --chain-id=bifrost-2 --fees=0.1bif --from=<secret_key>
Задание #1: Голосование
1. Выполняем команду vote:
Заменить <secret_key> на файл, в котором лежат ключи.
Создавали файл на этапе запуска валидатора.
iris tx gov vote 3 yes --chain-id=bifrost-2 --from=<secret_key> --fees=0.1bif
Проверить результат можно здесь.
Задание #2: Обновление версии ноды от @Kwaskoff
1. Выполняем команды:
cd $HOME/irishub git pull git checkout 0ef5dd0b4d140a4788f05fc1a0bd409b3c6a0492 make install CGO_ENABLED=0 iris start
Проверить версию можно командой "iris version".
Должны получить вывод: "1.0.0-rc2-1-g0ef5dd0b"
Благодарности
мамичу за то, что родила такого гения.
Юджину и HeKit'y за помощь в составлении технической составляющей гайда.
Ссылки
Телеграм-канал @how_to_node, где я выкладываю свои гайды.
Телеграм-канал @crypto_watermelon, где мой товарищ выкладывает посты об интересных крипто-проектах и ивентах.