Генезис файл определяет состояние сети в момент запуска. В мен записанвсе необходимое: первоначальные аллокации, время запуска, параметры и так далее.
После инита ноды надо подгрузить его с гитхаба заменив genesis.json, который был создан при ините ноды, так как при rizond init был создан ложный genesis.json (сеть же запущена уже).
Два способа. Выберите свой.
Первый - закачаем wget, а затем заменим cp:
Второй - ещё проще. Одной командой, через curl:
Проверка checksum файла genesis.json:
Настройка Конфигурации ноды
Нужно изменить два конфигурационных файла, это app.toml and config.toml.
app.toml
minimum-gas-prices
Для предотвращения обработки спамных транзакций надо выставить параметр minimum-gas-prices равным 0.0001uatolo:
config.toml
закомментируем строку log_level = "info"
Это нужно чтобы прописать эту настройку в сервис файле для удобного изменения.
вставим в config.toml свой moniker
seeds; peers
Добавьте как минимум 1 сид ноду, для того, чтобы ваша нода смогла найти остальные пиры. Seed пиры найдите по адресу https://github.com/rizon-world/mainnet
Это изменение проводим в секции [p2p], параметр seeds.
Запуск
rizond.service
Создадим сервис файл для автономной работы Rizond. Одной командой:
Замечу, что название сервис файла может быть другим, хоть сейчас это rizond.
А вот что мы не сможем изменить: rizond - это начало команды которое прописали разработчики в бинарный файл, это мы поменять не можем.
Выше, при установке Rizon мы определились, что переменная с путём PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
Поэтому мы и указали такой путь в строке ExecStart.
Теперь надо определиться как запустить синхронизацию. 3 варианта.
3. Начать синхронизацию с генезиса. Тоесть загружать все блоки, с начала сети. При этом, если были обновления сети, то на определенном блоке сеть остановится и нужно будет обновиться и запустить ноду вновь. До тех пор, пока синхронизация не догонит последние блоки.
Запуститься по snapshot
Специально для синхронизации по snapshot не надо настраивать app.toml или config.toml, достаточно базовой настройки.
Но перед загрузкой снапшота надо очистить папкуdata и сделать unsafe-reset-all (это сбросит конфигурацию priv_validator_state)
После команды выше, мы остаемся в нужной нам папке cd ~/.rizon/data где и продолжим работу.
Это не обязательный пункт.
Если вы случайно удалили и не забекапили priv_validator_stat, ничего страшного - это всего лишь файл состояние (не ключ) создать его можно rizond init $Rizon_moniker --chain-id titan-1
И раз уж вы опять сделали init, надо проверить и возможно опять загрузить genesis.json!
Этим мы скопируем на сервер снапшот, распакуем его и запустим вновь бинарный файл с помощью сервис файла:
Проверка синхронизации
Готово!
Запуститься по state sync
Для синхронизации по state sync надо настраивать app.toml .
Но перед этим надо:
1) очистить папкуdata, удалив все, кроме priv_validator_state.json
2) и сделать unsafe-reset-all (это сбросит конфигурацию priv_validator_state.json)
После того как отредактировали config.toml надо запустить сервис файл:
Если все сделать правильно, все будет ок.
Запустить синхронизацию с первого блока
Тут есть одна сложность. Чтобы начать синхронизацию с первого блока какой либо сети, надо установить версию бинарника, с которой была запущена эта сеть.
На данный момент mainnet сеть titan-1. Для этой сети первым релизом считается v0.2.8.
Значит сначала переустановим Rizon (так как вначале мы установили v0.3.0):
Запустим сервис файл:
Ждем , когда синхронизация остановится. Это значит, что блокчейн догрузился до того блока, на котором произошло обновление версии блокчейна до следующей (в нашем случае с версии v0.2.8 до v0.3.0). Значит настало время обновить версию:
jq -S -c -M '' ~/.rizon/config/genesis.json | shasum -a 256
# You can see the below.
5f00af49e86f5388203b8681f4482673e96acf028a449c0894aa08b69ef58bcb -
sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "0.0001uatolo"/g' ~/.rizon/config/app.toml
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \""0.0001uatolo"\"/" ~/.rizon/config/app.toml
sed -i.bak 's/^log_level/# log_level/' $HOME/.rizon/config/config.toml
# Перед вставкой проверьте, в Rizon скорее всего при init уже вставился автоматом!
sed -i.bak -e "s/^moniker *=.*/moniker = \"$Rizon_moniker\"/" $HOME/.rizon/config/config.toml
# rizond unsafe-reset-all - если до этого синхронизировались по снепшоту
cd ~
rm -rf /root/rizon
git clone https://github.com/rizon-world/rizon.git
cd rizon
# git fetch - иногда вставляют
git checkout v0.2.8
git pull origin v0.2.8
make install
. $HOME/.bash_profile
rizond version
# v0.2.8
#Вариации:
# если хотите запуститься с путем "ExecStart=/usr/bin/rizond start"
cp /root/go/bin/rizond /usr/bin
# если ранее копировали так , то обновите копии, или просто удалите копии бинарника с одреса /usr/local/bin и адреса /usr/local/sbin
# cp $HOME/go/bin/rizond /usr/local/bin
# cp $HOME/go/bin/rizond /usr/local/sbin
sudo systemctl stop rizond
cd ~
rm -rf /root/rizon
git clone https://github.com/rizon-world/rizon.git
cd rizon
# git fetch - иногда вставляют
git checkout v0.3.0
git pull origin v0.3.0
make install
. $HOME/.bash_profile
rizond version
# v0.3.0
# надо сделать если в сервис файле прописан путь "ExecStart=/usr/bin/rizond start"
cp /root/go/bin/rizond /usr/bin