December 12, 2023

Autonity R6

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

Web Discord Leaderboard Github

Details

Round 6 is open!

  • Start Time: 26/06/24 - 00:00 UTC

Основная информация и форма здесь - https://www.autonity.org/validators/#become-a-validator

Подготовка сервера

# обновляем репозитории
apt update && apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip chrony libleveldb-dev liblz4-tool -y

File2Ban - подробнее здесь и здесь

# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y && \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local && \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 <ip>
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban && systemctl disable fail2ban

Устанавливаем GO

ver="1.21.3" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version

Устанавливаем ethkey, который нам понадобиться дальше для вытаскивания приватника

git clone https://github.com/autonity/autonity.git autonity1
cd autonity1
make all
mv build/bin/ethkey /usr/local/bin
ethkey --version
#ethkey version 1.0.2-alpha-8be1825c-20241209

Важно: при проблемах с установкой aut или других бинарных файлов добавьте следующие переменные и сделайте make clean перед повторной установкой

export CGO_CFLAGS="-O -D__BLST_PORTABLE__" 
export CGO_CFLAGS_ALLOW="-O -D__BLST_PORTABLE__"
make clean

1. Устанавливаем утилиту Autonity Utility (aut)

Рекомендуемый способ взаимодействия с сетью Autonity - через утилиту Autonity Utility Tool aut, которая предоставляет интерфейс командной строки для специфичных для Autonity запросов и операций, а также большую часть базовой функциональности Ethereum. Как правило, ее необходимо установить только на локальных компьютерах для подключения к конечной точке RPC клиента Autonity Go (либо вашего собственного узла, либо узла, предоставляющего общедоступный доступ RPC)

ВАЖНО - вышел новый релиз Autonity CLI (ранее назывался инструментом «aut»). Инструмент теперь опубликован в официальном репозитории пакетов Python 👉 https://pypi.org/project/autonity-cli/

⚠️ Если вы обновляетесь с версии «aut» v0.5.0 или более ранней, Вам потребуется удалить пакет aut перед повторной установкой autonity-cli

pipx uninstall aut
pipx install autonity-cli

Установка autonity-cli

# Для ubuntu 20.04
cd
apt install python3-pip && \
apt install python3.8-venv && \
pip install pipx
# Для ubuntu 22.04
cd
apt install python3-pip && \
apt install python3.10-venv && \
pip install pipx
# для новой установки
pipx install autonity-cli
mv /root/.local/bin/aut /usr/local/bin/aut

aut --version
#aut, version 1.0.0
# для обновления
pipx upgrade autonity-cli

Создаем .autrc файл, благодаря которому aut утилита будет искать определенную конфигурацию

tee <<EOF >/dev/null $HOME/.autrc
[aut]
rpc_endpoint= ws://127.0.0.1:8546
EOF

2. Устанавливаем Autonity node

Команда предполагает устанавливать Autonity Go на главном компьютере (VPS или другом хосте, который всегда включен и постоянно доступен), а отдельный локальный компьютер будет использоваться для создания транзакций и запросов, которые затем отправляются клиенту Autonity Go на главном компьютере через конечную точку RPC

В данном гайде мы запустим все на 1 сервере, но данные действия не рекомендуются!!!

Примечание. Это руководство предназначено для использования в тестовых сетях, для которых на карту не поставлено никакой реальной ценности. Производственная настройка, скорее всего, будет иметь требования, не описанные в этом руководстве, такие как доступность и безопасность ноды. Например, конфигурация, описанная здесь, предоставляет незашифрованную http конечную точку RPC

Входящий трафик должен быть разрешен на:

  • TCP, UDP 30303 для связи с узлом p2p (DEVp2p)

Вы также можете разрешить трафик по следующим портам:

  • TCP 8545 чтобы установить http RPC-соединения с узлом
  • TCP 8546 чтобы установить RPC-соединения WebSocket с узлом
  • TCP 6060 для экспорта показателей Autonity (рекомендуется, но не обязательно)
  • ufw allow 20203 comment autonity_consensus

РЕКОМЕНДУЕМЫЕ ХАРАКТЕРИСТИКИ

Скачиваем бинарный файл. Актуальные версии можно найти здесь

cd
git clone https://github.com/autonity/autonity && cd autonity
git checkout tags/v1.0.2-alpha -b v1.0.2-alpha
make autonity

mv $HOME/autonity/build/bin/autonity /usr/local/bin/
autonity version
#Version: 1.0.2-alpha

Создаем каталог autonity-chaindata для хранения рабочих данных autonity и создаем нужные нам ключи

cd
mkdir -p $HOME/autonity-chaindata/autonity

Начиная с версии 0.13.0 nodekey переименовали в autonitykeys. В данном руководстве мы будем генерировать nodekey самостоятельно. чтобы оставить старое название и добавлять флаг --autonitykeys $HOME/autonity-chaindata/autonity/nodekey в сервисный файл

Нам необходимо создать nodekey, tresure.key и oracle.key

nodekey является главным ключом ноды, от которого формируется адрес валидатора и enode

tresure.key будет являться нашей сокровищницей. С помощью данного ключа мы будем делать делегирование на валидатора и на этот ключ будем получать вознаграждения

oracle.key будет использоваться в качестве криптографического идентификатора сервера Oracle и будет использоваться для подписания транзакций отчета о ценах, отправляемых в Oracle Contract on-chain

Транзакционные издержки за отправку данных отчета о ценах в сети возмещаются, но необходимо предварительно пополнить счет oracle.key, чтобы предотвратить ошибку нехватки газа при первой транзакции.

!!!Обязательно пополните Oracle кошелек после запуска ноды!!!

Генерируем nodekey

autonity genAutonityKeys $HOME/autonity-chaindata/autonity/nodekey --writeaddress
#Node address: 0xac16454f6D7B5725F4221f86D935963C87Dae7F5
#Node public key: 0x1988dee846c92a7a95b5ddc62a808fb59f48206a34eb13f4c8761e4c470adc99da1c0f3963515c683c1cf02dd5248af784041ea0084cbb854942d1583173a089
#Consensus public key: 0x87f764f47664b635290ffaa567bcc9caf6ef7a51116cafc7c06c7e24710bf91ec5206a359592c037f6ed5c7f44742628

Создаем отдельный каталог для tresure.key и oracle.key

mkdir -p $HOME/.autonity/keystore

Создаем кошелек oracle и сохраняем созданный файл

aut account new -k $HOME/.autonity/keystore/oracle.key
#

Создаем кошелек tresure и сохраняем созданный файл

aut account new -k $HOME/.autonity/keystore/tresure.key
#

ВАЖНО: обязательно делайте резервные копии ваших ключей. Также запоминайте фразу-пароль, которую Вы использовали при его создании! Если Вы не помните пароль, то не сможете расшифровать этот файл закрытого ключа и можете потерять все средства, связанные с этой учетной записью!!!

Теперь добавляем в .autrc наш ключ tresure

nano $HOME/.autrc

Добавляется строка keyfile=/root/.autonity/keystore/tresure.key

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

Нам не нужны, бутноды, так как все должно подтягиваться с помощью флага --piccadilly

tee <<EOF >/dev/null /etc/systemd/system/autonity.service
[Unit]
Description=autonity node
After=network.target

[Service]
User=$USER
Type=simple
ExecStart=$(which autonity) --datadir $HOME/autonity-chaindata --syncmode full --piccadilly --http --http.addr 0.0.0.0 --http.api aut,eth,net,txpool,web3,admin --http.vhosts \*  --ws     --ws.addr 127.0.0.1 --ws.api aut,eth,net,txpool,web3,admin --autonitykeys $HOME/autonity-chaindata/autonity/nodekey --nat extip:$(curl 2ip.ru)
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable autonity
sudo systemctl restart autonity && journalctl -u autonity -f -o cat

Важно: если нода не может запуститься, то добавьте бутноды в сервисный файл

#--bootnodes enode://48a10db920251436ee1d7989db6cbab734157d5bd3ec9d534021e4903fdab51407ba4fd936bd6af1d188e3f464374c437accefa40f0312eac9bc9ae6fc0a2782@34.105.239.129:30303,enode://9379179c8c0f7fec28dd3cca64da5d85f843e3b05ba24f6ae4f8d1bb688b4581f92c10e84e166328499987cf2da18668446dd7353724cf691ad2a931a0cbd88d@34.93.237.13:30303,enode://c7e8619c09c85c47a2bbda720ecec449ab1207574cc60d8ec451b109b407d7542cabc2683eedcf326009532e3aea2b748256bac1d50bf877c73eea4d633e8913@54.241.251.216:30303,enode://e7cea14b38d590066217b6639ee24f964b5ec3f5db127e460b695562495f5d04d2063b71a86baeaddbf318d204e4322dee2271c9dbcf462650f2547233fd2f67@178.205.102.224:30303,enode://219f542340d5f59e962f4a841b91825d098c61fee2751ec82c1440a4710b5c625d6c8fdc1bc3fc482369be83b23e59b3e983c8f463d39cb85f8d46665fca0bb4@217.66.20.45:30303,enode://d949e4858e2d3e06bd9f4b15de17b5bbdab111f9964b73cde40d78bc8af30cdf829072ad298cc744253aba74133b21eba214bc3b4cb42ead3f04c32c8b902656@92.255.196.146:30303

Snapshot

type: full node | time: every 1 days

🌐 https://share102.utsa.tech/autonity/

systemctl stop autonity

rm -rf $HOME/autonity-chaindata/autonity/chaindata
#rm -rf $HOME/autonity-chaindata/autonity/{chaindata,nodes,triecache,LOCK,transactions.rlp}

# скачиваем snapshot
curl -o - -L https://share102.utsa.tech/autonity/autonity_testnet.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/autonity-chaindata/autonity/

systemctl restart autonity && journalctl -u autonity -f -o cat

3. Install Oracle

Команда предполагает, что Autonity Oracle будет работать на отдельном устройстве (VPS или другом хосте, который всегда включен и постоянно доступен), и отдельный сервер будет использоваться для клиента Autonity Go, Подразумевается, что oracle будет работать через WSS

В данном гайде мы запустим все на 1 сервере, но данные действия не рекомендуются

Входящий трафик должен быть разрешен на:

  • TCP 8546 для подключения WebSocket RPC к узлу

РЕКОМЕНДУЕМЫЕ ХАРАКТЕРИСТИКИ

cd
git clone https://github.com/autonity/autonity-oracle && cd autonity-oracle
git fetch --all
git checkout v0.2.3
make autoracle
mv build/bin/autoracle /usr/local/bin

autoracle version
#v0.2.3

Теперь нужно отредактировать

nano $HOME/autonity-oracle/build/bin/plugins-conf.yml

1. В plugins-conf.yml необходимо раскомментировать нижние строки, зарегистрироваться по ссылкам, получить апи ключи и добавить их ниже. Также обязательно добавьте время запроса refresh: 3600 как на скриншоте ниже, чтобы не сгорели быстро лимиты на API

Сайты:


2. Проверьте и если в каталогах ниже Вы найдете плагин pcgc_cax и simulator_plugin, то удалите данныe плагины перед запуском!!!

$HOME/autonity-oracle/plugins/
$HOME/autonity-oracle/build/bin/plugins/

3. Раскомментируйте плагин AMM (https://github.com/autonity/autonity-oracle/blob/v0.2.2/config/plugins-conf.yml#L69-L71), чтобы предоставить данные из Вашей ноды. Пожалуйста, обновите общедоступный эндпойнт на эндпойн собственного валидатора

Мой файл для примера выглядит следующим образом


ФОРМА 1 - РЕГИСТРАЦИЯ

Самое время зарегистрировать свое участие в тестовой сети, чтобы получить тестовые токены. Для этого переходим на сайт и заполняем данные - http://tiber.autonity.org/?utm_source=t&utm_medium=update&utm_campaign=tiber

  • В поле Participant Address вставьте адрес tresure
  • В поле Signature hash вставьте хеш подписанной транзакции после команды aut account sign-message "I am the owner of the above address and I have read and agree to the terms and conditions."

После регистрации Вы получите электронное письмо с подтверждением и на баланс должны прийти токены. Проверить баланс можно в эксплорер или командой aut account info

Декодирование ключевого файла/получение закрытого ключа

ethkey inspect --private /root/.autonity/keystore/oracle.key
после команды вы увидите закрытый ключ от учетной записи oracle! Его необходимо использовать ниже в команде genOwnershipProof

РЕГИСТРАЦИЯ ВАЛИДАТОРА

Для получения необходимых NTN нужно воспользоваться мостом, когда он начнет работать

После того, как на балансе появятся токены можно продолжать

Шаг 1. Создаем криптографическое подтверждение владения узлом

Замените <privatekey oracle> и <tresure account address> на свои значения

autonity genOwnershipProof --autonitykeys $HOME/autonity-chaindata/autonity/nodekey --oraclekeyhex <privatekey oracle> <tresure account address>

!!! после транзакции сохраняем Signature hex

Шаг 2. Определяем enode и адрес валидатора

# получаем enode
aut node info
# получаем адрес валидатора
aut validator compute-address <enode>

!!! после транзакций сохраните адрес валидатора и enode

Шаг 3. Получаем consensus public key

ethkey autinspect $HOME/autonity-chaindata/autonity/nodekey

Шаг 4. Отправляем транзакцию регистрации с кошелька tresure

# регистрируем валидатора
aut validator register <ENODE> <ORACLE_ADDRESS> <CONSENSUS_KEY> <PROOF> | aut tx sign - | aut tx send -

!!! после транзакции сохраняем хеш

Теперь мы можем попробовать найти свой адрес валидатора в списке

aut validator list

Проверить валидатора

aut validator info --validator <0x550454352B8e1EAD5F27Cce108EF59439B18E249>

Создаем сервисный файл для Oracle и запускаем его. Предварительно допишите пароль от кошелька в сервисный файл

tee <<EOF >/dev/null /etc/systemd/system/antoracle.service
[Unit]  
Description=Autonity Oracle Server  
After=syslog.target network.target  
[Service]  
Type=simple  
ExecStart=$(which autoracle) -key.file="/root/.autonity/keystore/oracle.key" -plugin.dir="/root/autonity-oracle/build/bin/plugins/" -plugin.conf="/root/autonity-oracle/build/bin/plugins-conf.yml" -key.password="" -ws="ws://127.0.0.1:8546"
Restart=on-failure  
RestartSec=5  
[Install]  
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable antoracle
systemctl restart antoracle && journalctl -u antoracle -f -o cat

Теперь нам необходимо забондить NTN на валидатора

Стейк появится к следующей эпохе

aut validator bond --validator <адрес_валидатора> 1 | aut tx sign - | aut tx send -

ФОРМА 2 - РЕГИСТРАЦИИ ВАЛИДАТОРА

Самое время зарегистрировать своего валидатора. Для этого переходим на сайт и читаем условия - https://game.autonity.org/round-6/validator-sdp/

Также необходимо будет заполнить следующую форму - https://stake-delegation.pages.dev/#join

На ноде необходимо подписать сообщение aut account sign-message "Application for the stake delegation program" и вставлить хеш в графу SIGNATURE OF MESSAGE VALIDATOR ONBOARDED. Подписывать нужно кошельком nodekey. Поэтому сначала нам необходимо конвертировать nodekey в нужный формат

Шаг 1. Получаем ключ узла из файла nodekey (autonitykeys)

Данная операция покажет в терминале Ваш private node key

head -c 64 $HOME/autonity-chaindata/autonity/nodekey
#

Шаг 2. Из полученного privat создаем nodekey в домашнем каталоге и вписываем в него полученный из предыдущей команды privat key

nano $HOME/nodekey2

Шаг 3. Получаем ключ узла из файла nodekey (autonitykeys)

aut account import-private-key $HOME/nodekey2

Шаг 4. Переименовываем кошелек в удобно читаемый формат

mv $HOME/.autonity/keystore/UTC* $HOME/.autonity/keystore/nodekey.key

Шаг 5. Подписываем транзакцию

aut account sign-message "Application for the stake delegation program" -k $HOME/.autonity/keystore/nodekey.key

Как только валидатор будет выбран в комитет мы должны увидеть подобные логи на ноде

Перенос валидатора

Если нам необходимо перенести валидатора, то перед этим необходимо сохранить все наши ключи и nodekey (autonitykeys). Также запомните старый IP адрес сервера

1. Если Вы валидируете и находитесь в активном сете (комитет), то обязательно сначала остановите валидирование. При этом активное участие валидатора в комитете приостанавливается до повторной активации. Ставка не освобождается от привязки автоматически

aut validator pause --validator <VALIDATOR_IDENTIFIER_ADDRESS> | aut tx sign - | aut tx send -

2. Для того, чтобы убедиться что валидатор остановлен используем следующую команду, в которой значение "state": 1. Также проверьте какая эпоха идет в настоящее время. Запускать валидатора на новом сервере рекомендую после начала следующей эпохи

После того как убедились что "state": 1 можете останавливать ноду и оракла на старом сервере

aut validator info --validator <VALIDATOR_IDENTIFIER_ADDRESS>

3. Если Вы ранее не сохраняли nodekey и остальные ключи, то сейчас самое время сделать это. Нам необходимо будет подменить наши ключи на новом сервере

4. На новом сервере установите ноду и aut, но не запускайте!!!

5. Создайте каталог и подкаталог autonity-chaindata/autonity. После создания перенесите туда файл nodekey (autonitykeys)

mkdir -p autonity-chaindata/autonity

6. Теперь стандартно запускаем ноду для синхронизации, предварительно добавив к запуску ключ --nat extip:<IP of old server>. Я при пробном переносе использовал именно IP от старого сервера

7. Запускаем валидатора дождавшись смены эпохи

aut validator activate --validator <VALIDATOR_IDENTIFIER_ADDRESS> | aut tx sign - | aut tx send -

Торговля на CAX

CAX это централизованной автоматическая биржа. Если Вы уже регистрировали провайдера, то Ваша учетная запись на CAX автоматически создана и пополнена на 1 МЛН поддельных долларов США. Она связана с вашей зарегистрированной учетной записью участника, поэтому можно легко перемещать активы между внутренней и внешней сетями

Биржа использует ключи API для аутентификации, поэтому необходимо создать ключ API для своей учетной записи, прежде чем приступать к торговле

Устанавливаем httpie

apt install snapd
sudo snap install httpie

Получаем API ключ

MESSAGE=$(jq -nc --arg nonce "$(date +%s%N)" '$ARGS.named')

Подписываем сообщение с помощью aut

aut account sign-message $MESSAGE message.sig -k $HOME/.autonity/keystore/tresure.key > message.sig

Отправляем сообщение с использованием HTTPie для получения нового ключа API. После выполнения команды запишите вывод!!!

echo -n $MESSAGE | https https://cax.piccadilly.autonity.org/api/apikeys api-sig:@message.sig
пример вывода

Теперь с помощью полученного API можно взаимодействовать с CAX

KEY=<ВАШ_API>

# просмотр баланса кошелька tresure
aut account info -k $HOME/.autonity/keystore/tresure.key

# Просмотр оффчейн баланса 
https GET https://cax.piccadilly.autonity.org/api/balances/ API-Key:$KEY

# пополните свой счет на CAX с помощью mock USDC для торговли
aut token transfer --token 0x3a60C03a86eEAe30501ce1af04a6C04Cf0188700 0x11F62c273dD23dbe4D1713C5629fc35713Aa5a94 <КОЛИЧЕСТВО_МОНЕТ> | aut tx sign - | aut tx send -

# просмотр книги заказов
https GET https://cax.piccadilly.autonity.org/api/orderbooks/ API-Key:$KEY

# получение текущих цен для пары NTN-USDC
https GET https://cax.piccadilly.autonity.org/api/orderbooks/NTN-USDC/quote API-Key:$KEY

# получение текущих цен для пары ATN-USDC
https GET https://cax.piccadilly.autonity.org/api/orderbooks/ATN-USDC/quote API-Key:$KEY

# покупка актива NTN (лимитный ордер)
https POST https://cax.piccadilly.autonity.org/api/orders/ API-Key:$KEY pair=NTN-USDC side=bid price=10.07  amount=1000

# покупка актива ATN (лимитный ордер)
https POST https://cax.piccadilly.autonity.org/api/orders/ API-Key:$KEY pair=ATN-USDC side=bid price=1.04  amount=100000

# просмотр статуса ордера (нужен номер "order_id" который вы получите в ответ на прошлый запрос)
https GET https://cax.piccadilly.autonity.org/api/orders/236655 API-Key:$KEY

# отменить открытый ордер
https DELETE https://cax.piccadilly.autonity.org/api/orders/313469 API-Key:$KEY

# вывод из офчейна
https POST https://cax.piccadilly.autonity.org/api/withdraws/ API-Key:$KEY symbol=NTN  amount=10

# депозит в офчейн 
aut tx make --to <RECIPIENT_ADDRESS> --value <AMOUNT> --ntn | aut tx sign - | aut tx send -

Полезные команды

# посмотреть информацию о ноде
aut node info

# посмотреть баланс
aut account info
aut account info 0x7179cc425bd66F40DBE958afecb488F71eCCDB84

# посмотреть список валидаторов
aut validator list

# проверка информации о валиаторе
aut validator info --validator 0x27b196cc27aa3b873eb96B5283025A2c1D075747

curl -X GET 'https://rpc1.piccadilly.autonity.org/'  --header 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "method":"aut_getValidator", "params":["0x27b196cc27aa3b873eb96B5283025A2c1D075747"], "id":1}'

# проверить нахождение в комитете
aut protocol get-committee 
aut protocol get-committee-enodes

# выйти из тюрьмы
aut validator activate --validator <VALIDATOR_IDENTIFIER_ADDRESS> | aut tx sign - | aut tx send -

Работа с ключами

# проверить информацию о кошельке
aut account info
aut account info 0x7179cc425bd66F40DBE958afecb488F71eCCDB84

# проверить баланс кошелька
aut account balance
aut account balance 0x7179cc425bd66F40DBE958afecb488F71eCCDB84

# перечислить все ключи в каталоге хранилища ключей
aut account list

# декодирование ключевого файла для получение private-key из файла .key
ethkey inspect --private /root/.autonity/keystore/tresure.key

# импортировать private-key в виде открытого текста (в шестнадцатеричном формате)
# предварительно создайте текстовый файл, содержащий закрытый ключ в шестнадцатеричном формате. Например, скопируйте свой закрытый ключ в файл с именем alice.priv
aut account import-private-key $HOME/alice.priv

# отправить транзакцию
aut tx make --to <0x1........> --value 1 --ntn | aut tx sign - | aut tx send -
aut tx make --to <0x1........> --value 0.1 | aut tx sign - | aut tx send -
aut tx make --to <0x1........> --value 0.1 -k $HOME/.autonity/keystore/tresure.key | aut tx sign -k $HOME/.autonity/keystore/tresure.key - | aut tx send -
# проверить текущую эпоху
aut protocol epoch-id --rpc-endpoint https://rpc1.piccadilly.autonity.org

Удаление базы данных

rm -r autonity-chaindata/
mkdir -p $HOME/autonity-chaindata/autonity
# переносим nodekey

Удаление ноды

systemctl stop autonity && \
systemctl disable autonity && \
rm /etc/systemd/system/autonity.service && \
systemctl daemon-reload && \
cd $HOME && \
rm -rf .autonity autonity-chaindata autonity

Удаление oracle

systemctl stop antoracle && \
systemctl disable antoracle && \
rm /etc/systemd/system/antoracle.service && \
systemctl daemon-reload && \
cd $HOME && \
rm -rf autonity-oracle

Выражаю огромную благодарность ZUKA (zuka_116) за его значительный вклад в написание данного гайда

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