Установка и старт Avalanche ноды в Akash

cyberG
4 min readSep 3, 2021

Перед установкой Akash определяем переменные среды

AKASH_NET="https://raw.githubusercontent.com/ovrclk/net/master/mainnet"
AKASH_VERSION="$(curl -s "$AKASH_NET/version.txt")"
export AKASH_CHAIN_ID="$(curl -s "$AKASH_NET/chain-id.txt")"
export AKASH_NODE="$(curl -s "$AKASH_NET/rpc-nodes.txt" | shuf -n 1)"

Устанавливаем Akash (Linux)

curl https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh -s -- "v$AKASH_VERSION"
cp ./bin/akash /usr/local/bin/

Создаем кошелек

akash keys add default1

Сохраняем мнемоническую фразу, без нее восстановление кошелька будет невозможно.

Определяем переменные с именем и адресом кошелька

export AKASH_ACCOUNT_ADDRESS="$(akash keys show default1 -a)"
export AKASH_KEY_NAME="default"

Для продолжения необходимо приобрести АКТ токены — https://akash.network/token

Проверяем баланс

akash --node "$AKASH_NODE" query bank balances "$AKASH_ACCOUNT_ADDRESS"

Создаем сертификат

akash tx cert create client --from=$AKASH_KEY_NAME --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE --fees 1000uakt -y

На этом этапе установку akash можно считать завершенной

Разворачиваем нашу конфигурацию с образом avalanchego

Создаем конфигурационный файл deploy.yml

cat > deploy.yml <<EOF
---
version: "2.0"
services:
avalanchego:
image: bloqhub/avalanchego-ssh:0.1
expose:
- port: 9650
as: 9650
proto: tcp
to:
- global: true
- port: 2242
as: 2242
proto: tcp
to:
- global: true
- port: 9651
as: 9651
proto: tcp
to:
- global: true
env:
- PASSWORD=axijoozenlowr3wr_hSi
profiles:
compute:
avalanchego:
resources:
cpu:
units: 0.1
memory:
size: 512Mi
storage:
size: 512Mi
placement:
akash:
attributes:
host: akash
signedBy:
anyOf:
- "akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63"
pricing:
avalanchego:
denom: uakt
amount: 100
deployment:
avalanchego:
akash:
profile: avalanchego
count: 1
EOF

Важно! Адрес “akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63” оставляем неизменным — это адрес escrow аккаунта. Переменной PASSWORD присваиваем значение пароля SSH для нашей ноды.
Параметры cpu, memory и size в данной конфигурации установлены близкими к минимальным, в реальном использовании необходимо увеличить их. Для Avalanchego системные требования следующие — CPU: Equivalent of 8 AWS vCPU, RAM: 16 GBб, Storage: 200 GB

Разворачиваем нашу конфигурацию

akash tx deployment create deploy.yml --from $AKASH_KEY_NAME --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --fees 1000uakt -b sync -y

Значение “FBB1521AD7DD232B9B77C404C38FC793B05F995DB74935C4D663C20306149B5D” берем из вывода предыдущей команды.

Проверяем статус нашей установки

akash q tx FBB1521AD7DD232B9B77C404C38FC793B05F995DB74935C4D663C20306149B5D --node=$AKASH_NODE

В выводе этой команды нас интересует значение dseq
Определяем переменные

export AKASH_DSEQ=2498392
export AKASH_GSEQ=1
export AKASH_OSEQ=1

Проверяем статус развертывания

akash query deployment get --owner $AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ

Определяем ставки которые можно использовать для нашей конфигурации

akash query market bid list --owner=$AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ

В списке возвращаемом командой выбираем провайдера и присваиваем переменной его адрес

export AKASH_PROVIDER=akash14c4ng96vdle6tae8r4hc2w4ujwrshdddtuudk0

Арендуем выбранного провайдера

akash tx market lease create --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE --owner $AKASH_ACCOUNT_ADDRESS --dseq $AKASH_DSEQ --gseq $AKASH_GSEQ --oseq $AKASH_OSEQ --provider $AKASH_PROVIDER --from $AKASH_KEY_NAME --fees 5000uakt -y

Спустя несколько секунд проверяем статус

akash query market lease list — owner $AKASH_ACCOUNT_ADDRESS — node $AKASH_NODE — dseq $AKASH_DSEQ

Загружаем манифест для нашего образа

akash provider send-manifest deploy.yml --node $AKASH_NODE --dseq $AKASH_DSEQ --provider $AKASH_PROVIDER --from $AKASH_KEY_NAME

И получаем данные доступа:

akash provider lease-status --node $AKASH_NODE --dseq $AKASH_DSEQ --from $AKASH_KEY_NAME --provider $AKASH_PROVIDER
akash provider lease-status --node $AKASH_NODE --dseq $AKASH_DSEQ --from $AKASH_KEY_NAME --provider $AKASH_PROVIDER

Нас интересует host и externalPort. В этом примере мы подключаемся к нашей ноде:

ssh root@cluster.provider-2.prod.ewr1.akash.pub -p 31749

Пароль определяется в deploy.yml файле Также можно просмотреть логи нашей ноды:

akash provider lease-logs --node "$AKASH_NODE" --dseq "$AKASH_DSEQ" --gseq "$AKASH_GSEQ" --oseq "$AKASH_OSEQ" --provider "$AKASH_PROVIDER" --from "$AKASH_KEY_NAME"

Настройка ноды производится согласно официальной документации, пропуская этап установки https://docs.avax.network/build/tutorials/nodes-and-staking/run-avalanche-node

--

--