Перевод по установке ноды на беларуский язык
June 27, 2024

Autonity - Шосты раўнд Piccadilly Circus Games Competition

Шосты раўнд будзе працягвацца з 26.06.2024 на працягу 6 тыдняў, калі каманда не зменіць часовыя рамкі.

У дадзеным кіраўніцтве разгледзім запуск валідатары ў тэставай сеткі Piccadilly.

Падрыхтоўка сервера

# абнаўляем рэпазітары
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
# yсталёўваем GO
ver="1.22.1" && \
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 0.14.0-15cd0164-20240619

Усталёўваем ўтыліту Autonity Utility (aut)

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

# для ubuntu 20.04 - v3.8 для 22.04 - v3.10
cd 
apt install python3-pip && \
apt install python3.8-venv && \
pip install pipx
# для ўстаноўкі або абнаўлення
pipx install --force git+https://github.com/autonity/aut
mv /root/.local/bin/aut /usr/local/bin/aut
aut --version
#aut, version 0.4.0

Ствараем .autrc файл, дзякуючы якому aut ўтыліта будзе шукаць пэўную канфігурацыю

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

Усталёўваем Autonity node

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

Ўваходны трафік павінен быць дазволены на:
-TCP, UDP 30303 для сувязі з вузлом p2p (DEVp2p)
Вы таксама можаце дазволіць трафік па наступных партоў:
-TCP 8545 каб усталяваць http RPC - злучэння з вузлом
-TCP 8546 каб усталяваць RPC - злучэнні WebSocket з вузлом
-TCP 6060 для экспарту паказчыкаў Autonity (рэкамендуецца, але не абавязкова)

Спампоўваем бінарны файл

cd
git clone https://github.com/autonity/autonity && cd autonity
git checkout tags/v0.14.0 -b v0.14.0
make autonity
mv $HOME/autonity/build/bin/autonity /usr/local/bin/
autonity version
#Version: 0.14.0

Ствараем каталог autonity-chaindata для захоўвання працоўных дадзеных autonity і ствараем патрэбныя нам ключы

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

Нам неабходна стварыць nodekey, tresure.key і oracle.key.
nodekey з'яўляецца галоўным ключом ноды, ад якога фармуецца адрас валідатары і enode.
tresure.key будзе з'яўляцца нашай скарбніцай. З дапамогай дадзенага ключа мы будзем рабіць дэлегаванне на валідатары і на гэты ключ будзем атрымліваць узнагароды.
oracle.key будзе выкарыстоўвацца ў якасці крыптаграфічнага ідэнтыфікатара сервера Oracle і будзе выкарыстоўвацца для падпісання транзакцый справаздачы аб цэнах, якія адпраўляюцца ў Oracle Contract on-chain.
Транзакцыйных выдаткі за адпраўку дадзеных справаздачы аб цэнах у сеткі пакрываюцца, але неабходна папярэдне папоўніць рахунак oracle.key, каб прадухіліць памылку недахопу газу пры першай транзакцыі.
Абавязкова папоўніце oracle кашалёк пасля запуску ноды з tresure!

Генеруючы nodekey

autonity genAutonityKeys $HOME/autonity-chaindata/autonity/nodekey --writeaddress
#Node address: 0x..............
#Node public key: 0x...........................
#Consensus public key: 0x...........................

Ствараем асобны каталог для 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

Ствараем сэрвісны файл і запускаем яго

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
systemctl restart autonity && journalctl -u autonity -f -o cat

Усталёўваем 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.1.9
make autoracle
mv build/bin/autoracle /usr/local/bin
autoracle version
#v0.1.9

Зараз трэба адрэдагаваць файл

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

У plugins-conf.yml неабходна раскаментаваць ніжнія радкі, зарэгістравацца па спасылках, атрымаць API ключы і дадаць іх ніжэй.

https://currencyfreaks.com
https://openexchangerates.org
https://currencylayer.com
https://www.exchangerate-api.com

ФОРМА 1-РЭГІСТРАЦЫЯ

Самы час зарэгістраваць свой удзел у тэставай сеткі, каб атрымаць тэставыя токены. Для гэтага пераходзім на сайт і запаўняем дадзеныя - https://game.autonity.org/getting-started/register.html

Пасля рэгістрацыі вы атрымаеце электронны ліст з пацвярджэннем і на баланс павінны прыйсці токены. Праверыць баланс можна ў эксплорер або камандай aut account info

Дэкадаванне ключавога файла / атрыманне закрытага ключа

ethkey inspect --private /root/.autonity/keystore/oracle.key

Пасля каманды вы ўбачыце закрыты ключ ад ўліковага запісу oracle! Яго неабходна выкарыстоўваць ніжэй у камандзе genOwnershipProof

Калі на балансе з'явяцца токены можна працягваць

Ствараем крыптаграфічнае пацверджанне валодання вузлом.
Заменіце <privatekey oracle> і <tresure account address> на свае значэння

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

!пасля транзакцыі захоўваем Signature hex

Вызначаем enode і адрас валідатары

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

!пасля транзакцый захавайце адрас валідатары і enode

Атрымліваем consensus public key

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

Адпраўляем транзакцыю рэгістрацыі з кашалька tresure

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

<PROOF> - Signature hex genOwnershipProof

!пасля транзакцыі захоўваем хэш

Цяпер мы можам паспрабаваць знайсці свой адрас валідатары ў спісе

aut validator list

Праверыць валідатары

validator info --validator <0x...........>

Ствараем сэрвісны файл для 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://stake-delegation.pages.dev/#join

Атрымліваем ключ вузла з файла nodekey (autonitykeys). Дадзеная аперацыя пакажа ў тэрмінале Ваш private node key

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

З атрыманага privat ствараем nodekey ў хатнім каталогу і ўпісваем у яго атрыманы з папярэдняй каманды privat key

nano $HOME/nodekey2

Атрымліваем ключ вузла з файла nodekey (autonitykeys)

aut account import-private-key $HOME/nodekey2

Пераназываем кашалёк у зручна чытаны фармат

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

Падпісваем транзакцыю

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

Як толькі валідатар будзе выбраны ў камітэт вы павінны ўбачыць падобныя логі на нодзе:

Я выкарыстоўваю dedicated server, так як на VPS нода можа працаваць не стабільна (асабліва калі браць, напрыклад, Contabo).

Афіцыйная дакументацыя: https://docs.autonity.org/