COSMOS WIKI
October 13, 2022

Restake

Сайт - https://restake.app/teritori

Github - https://github.com/eco-stake/restake

🪓 Telegram канал UTSA 🪓 Telegram чат UTSA

Restake является удобным инструментом для размещения ставок, позволяющим делегаторам сэкономить транзакционные сборы и время при рестейкинге, так как транзакции оплачиваются валидаторами

Данная инструкция предназначена для валидаторов. Валидаторам сначала необходимо создать отдельный кошелек для restake и пополнить его некоторым количеством монет. Установку желательно производить на отдельном сервере (без нод)

Устанавливаем docker + docker-compose

# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ru
apt update && \
apt install apt-transport-https ca-certificates curl software-properties-common -y && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
apt update && \
apt-cache policy docker-ce && \
sudo apt install docker-ce -y && \
docker --version
# ручная установка docker-compose https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04-ru
# проверяем версию https://github.com/docker/compose/releases и подставляем в команду установки
curl -L "https://github.com/docker/compose/releases/download/v2.10.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# проверить версию
docker-compose --version

Клонируем репозиторий

git clone https://github.com/eco-stake/restake && cd restake
cp .env.sample .env

# вставляем seed фразу от кошелька в .env
nano $HOME/restake/.env

Обновляем локальный репозиторий и создаем контейнеры Docker

git pull
docker-compose run --rm app npm install
docker-compose build --no-cache

Запускаем

docker-compose run --rm app npm run autostake

Настраиваем Cron (примеры - https://crontab.guru/examples.html)

crontab -e

# в данном примере выставим каждый час
0 * * * * cd /root/restake && docker-compose run --rm app npm run autostake > $HOME/restake.log 2>&1

# можно запустить только нужные сети следующей командой
0 * * * * cd /root/restake && docker-compose run --rm app npm run autostake teritori jackal meme > $HOME/restake.log 2>&1
# проверить логи
cat /root/restake.log
grep CRON /var/log/syslog

Также можно редактировать конфиг и в нем оставить только нужные сети или при необходимости добавить в него недостающие сети.

Конфиг по адресу $HOME/restake/src/networks.json

PR

Теперь необходимо обновить реестр валидаторов, чтобы добавить информацию о вашем операторе в любые сети, для которых вы хотите выполнить автоматическое соединение. Проверьте README и существующих валидаторов для примеров

Делаем форк репозитория, куда будем добавлять данные сетей и создаем там 2 файла, которые потом нужно будет вытянуть с PR

chains.json

{
  "$schema": "../chains.schema.json",
  "name": "𝐥𝐞𝐬𝐧𝐢𝐤 | 𝐔𝐓𝐒𝐀",
  "chains": [
    {
      "name": "teritori",
      "address": "torivaloper1kunzrdg6u8gql4faj33lstghhqdtp59e0xgggy",
      "restake": {
        "address": "tori1p0fqg0m6jwqxyx3c2hryfzwg5mehf3uy8uz23x",
        "run_time": "every 1 hour",
        "minimum_reward": 1000000
      }
    }
  ]
}

profile.json

{
  "$schema": "../profile.schema.json",
  "name": "𝐥𝐞𝐬𝐧𝐢𝐤 | 𝐔𝐓𝐒𝐀",
  "identity": "A0B5FF00B5460153"
}

address — это адрес вашего валидатора

restake.address — это адрес вашего нового горячего кошелька, который вы сгенерировали ранее

restake.run_time — это время в формате UTC, когда вы собираетесь запускать своего бота

restake.minimum_reward — это минимальное вознаграждение для запуска автостекинга, в противном случае адрес будет пропущен. Это может быть установлено выше для более частого повторного стейкинга. Обратите внимание, что это базовое наименование, например utori

Повторите эту конфигурацию для всех сетей, для которых вы хотите REStake

Поддержим природу вместе:
0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq