June 8, 2022

How to gentx

Отправляем gentx на примере Olympus.

  • Установка: устанавливаем необходимую ноду.
  • Gentx: создаём gentx.
  • Github: отправляем pull request.

Содержание

Немного подготавливаем сервер. Подразумевается установка на чистый сервер.

# обновляем 'базу данных', обновляем дистрибутив 
$ sudo apt-get update && sudo apt-get upgrade -y
# устанавливаем необходимые пакеты, если необходимо
$ sudo apt install curl tar wget clang pkg-config libssl-dev \
jq build-essential git make ncdu -y
# устанавливаем 'go', если это необходимо
$ wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz; \
rm -rv /usr/local/go 2>/dev/null; \
tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz && \
rm -v go1.17.2.linux-amd64.tar.gz && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" \
>> ~/.bash_profile && \
source ~/.bash_profile && \
go version

Уставляем необходимую нам ноду.

# устанавливаем нужную ноду
$ cd && \
rm -Rvf $HOME/evmos 2>/dev/null; \
git clone https://github.com/tharsis/evmos.git && \
cd $HOME/evmos && \
make install && \
cd
# удаляем старый генезис. если нода не 'evmos' - редактируйте команду
$ rm $HOME/.evmosd/config/genesis.json 2>/dev/null
# восстанавливаем ключи из прошлого тестнета, либо генерим новые
# БЕЗ < >, ЛАДНО?
$ evmosd keys add <nickname> --recover
$ evmosd keys add <nickname>
Содержание

Создаём gentx.

# инициализируем ноду. если нода не 'evmos' - редактируйте команду
# БЕЗ < >, ЛАДНО?
$ evmosd init <nickname> --chain-id=evmos_9000-2
# добавляем генезис аккаунт. если нода не 'evmos' - редактируйте команду
# БЕЗ < >, ЛАДНО?
$ evmosd add-genesis-account \
$(evmosd keys show <nickname> -a) 1000000000000aphoton
# удаляем возможный старый 'gentx'
$ rm -Rvf $HOME/.evmosd/config/gentx
# генерация gentx. если нода не 'evmos' - редактируйте команду
# БЕЗ < >, ЛАДНО?
$ evmosd gentx <nickname> 1000000000000aphoton \
--commission-rate=0.1 \
--commission-max-rate=1 \
--commission-max-change-rate=0.1 \
--pubkey $(evmosd tendermint show-validator) \
--chain-id=evmos_9000-2

Выводим на экран gentx. Если нода не evmos - редактируем пути под себя.

$ cat $HOME/.evmosd/config/gentx/`ls $HOME/.evmosd/config/gentx/`

Копируем и сохраняем в текстовый файл на ПК.

Содержание

Теперь заходим на гитхаб и логинимся в аккаунт.

Открываем репозиторий нужного нам тестнета и форкаем репозиторий.

В моём случае, это эвмос: https://github.com/tharsis/testnets.

В открывшемся форке переходим по папкам в нужную нам. Для каждого проекта "нужная папка" уникальна и указана в официальной документации.

Под "нужная папка" я подразумеваю папку, куда нужно залить свою gentx.

В моём случае, это testnets-1/olympus_mons/gentxs/:

Добавляем новый файл:

В названии файла пишем, собственно, название файла.

Для каждого тестнета требования к названию уникальны. Конкретно в моём случае, я должен назвать файл по следующему примеру: <moniker>.json

Так я и делаю. При создании gentx в терминале я обозвал моникер, как test, название файла указываю соответствующее. Это важно.

В содержимое файла вставляем последний вывод терминала и название коммита указываем: ADD <moniker> gentx. Выглядеть должно так:

Теперь нажимаем на "Commit new file". Выглядит это у меня следующим образом.

Теперь отправим сам пул реквест: Contribute > Open pull request:

Ваш пул должен появиться в главном репозитории, во вкладке Pull requests:

Вот и всё. Основные моменты описал.

Если у вас возникают трудности при таких простых манипуляциях - задумайтесь, а оно вам надо?

Если надо, тогда долбите. Рано или поздно получится. Главное не сдаваться, если сильно хочется.

Взаимодействие с гитхабом очень востребовано. Важно уметь работать с ним.