October 24, 2022

Forta

Требования

Нам понадобятся

  • Metamask с сетями ETH и Polygon.
    Как добавить сеть Polygon? Через Chainlist.org
  • 20$ в сети ETH
  • 2500 токенов $FORT в сети Polygon на 1 сканер
    Перевод токенов из сети ETH в Polygon производится при помощи https://wallet.polygon.technology/bridge/
  • Несколько $Matic в сети Polygon

Установка

Установка обновлений и необходимых пактов

sudo apt update -y && sudo apt install jq ncdu tmux ca-certificates curl gnupg lsb-release -y 

Включаем сервис по синхронизации времени

sudo systemctl enable systemd-timesyncd # включаем сервис синхронизации времени
sudo systemctl start systemd-timesyncd  # запускаем этот сервис
timedatectl status  # проверяем синхронизацию

Ниже необходимо сменить <YOURPASS> и <YOURWALLET> на свои.
Где кошелек - Ваш метамаск адрес.
А пароль - придумайте сами.
Важно! <> тоже нужно убрать, иначе ничего не получится.

echo "export FORTA_PASSPHRASE=<YOURPASS>" >> ~/.bash_profile  # <YOURPASS> меняем на свой
echo "export FORTA_OWNER_ADDRESS=<YOURWALLET>" >> ~/.bash_profile  # <YOURWALLET> Адрес метамаск где хранятся токены форт, то есть адрес владельца
echo "export FORTA_RPC_URL=65.108.236.160:8545" >> ~/.bash_profile # адрес эфир ноды с портом 8545
echo "export FORTA_DIR=$HOME/.forta" >> ~/.bash_profile  # папка где будет храниться форта
source ~/.bash_profile  # загружаем сохраненные переменные 

Установим докер

. <(wget -qO- https://raw.githubusercontent.com/letsnode/Utils/main/installers/docker.sh)  # устанвливаем докер
docker version  # проверяем версию докера, нужна версия старше 20.10, сейчас 20.10.14 или 20.10.17 будет

Зададим настройки для докера

tee /etc/docker/daemon.json > /dev/null <<EOF
{
   "default-address-pools": [
        {
            "base":"172.17.0.0/12",
            "size":16
        },
        {
            "base":"192.168.0.0/16",
            "size":20
        },
        {
            "base":"10.99.0.0/16",
            "size":24
        }
    ]
}
EOF
systemctl restart docker # перезапускаем докер

Установим форту

sudo curl https://dist.forta.network/pgp.public -o /usr/share/keyrings/forta-keyring.asc -s
echo 'deb [signed-by=/usr/share/keyrings/forta-keyring.asc] https://dist.forta.network/repositories/apt stable main' | sudo tee -a /etc/apt/sources.list.d/forta.list
sudo apt-get update
sudo apt-get install forta

Создадим сервисный файл

sudo tee /etc/systemd/system/forta.service > /dev/null <<EOF
[Unit]
Description=Forta
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
StartLimitIntervalSec=500
StartLimitBurst=5

[Service]
Restart=on-failure
RestartSec=15
Environment="FORTA_DIR=$FORTA_DIR"
Environment="FORTA_PASSPHRASE=$FORTA_PASSPHRASE"
ExecStart=/usr/bin/forta run

[Install]
WantedBy=multi-user.target
EOF

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

sudo mkdir /lib/systemd/system/forta.service.d
tee /lib/systemd/system/forta.service.d/env.conf > /dev/null <<EOF
[Service]
Environment='FORTA_DIR=$FORTA_DIR'
Environment='FORTA_PASSPHRASE=$FORTA_PASSPHRASE'
EOF

Инициализируем форту(создадим кошелек)

forta init --passphrase $FORTA_PASSPHRASE

Создадим конфиг для сканера:

tee ~/.forta/config.yml > /dev/null <<EOF
chainId: 1

scan:
  jsonRpc:
    url: http://$FORTA_RPC_URL

trace:
  jsonRpc:
    url: http://$FORTA_RPC_URL

registry:
 jsonRpc:
   url: https://rpc.ankr.com/polygon
EOF

Данный конфиг подойдет только для сети ETH, если Вам хочется иметь сканер в другой сети, смотрим конфиги тут: https://docs.forta.network/en/latest/scanner-quickstart/#scanning-other-chains

После установки конфига необходимо отправить 0.1 матика на адрес, который мы получили после команды forta init

Ждем ~ 1 минуту пока упадет матик на кошелек.

Регистрируем ноду

forta register --owner-address $FORTA_OWNER_ADDRESS

Опять ждем ~1-2 минуты. Стейкаем токены на форту при помощи https://app.forta.network/staking

Вводим адрес сканера(не кошелька), и жмем Stake

Вводим кол-во токенов, потом жмем Approve tokens

Может появиться Approve tokens еще раз, тогда надо либо еще раз на нее нажать или повторить предыдущие шаги.
В случае если появилась кнопка Add Stake, то нажимаем на нее.

Всё, можно запускать!

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

systemctl daemon-reload
systemctl enable forta
systemctl start forta
forta status #Узнать статус сканера
forta account address #узнать адресс аккаунта
journalctl -u forta -f -o cat #проверить логи сканера форта