Установка и старт Avalanchego ноды в akash
Перед установкой 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 default
- name: default
type: local
address: akash1ra5sxladp3wv5ej9p8qx5y227zhya8sfqrdw8h
pubkey: akashpub1addwnpepqtdc60d8yfayuq6340waga494w9uknm2y0jpl37zyzj8wx6fa2cmq06p39e
mnemonic: ""
threshold: 0
pubkeys: []
**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.
wood system walnut transfer square soon into very spatial note grief cliff dismiss ability sun exist twin tower marine crazy design gate lift bulk
Сохраняем мнемоническую фразу, без нее восстановление кошелька будет невозможно.
Определяем переменные с именем и адресом кошелька
export AKASH_ACCOUNT_ADDRESS="$(akash keys show default -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 200uakt -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 200uakt -b sync -y
{"height":"0","txhash":"05CBBC9ACBD1F51AF5B0D254E2BFD56B1ACA42819E5BABEEC5086947625E45D4","codespace":"","code":0,"data":"","raw_log":"[]","logs":[],"info":"","gas_wanted":"0","gas_used":"0","tx":
null,"timestamp":""}
проверяем статус нашей установки
akash q tx 05CBBC9ACBD1F51AF5B0D254E2BFD56B1ACA42819E5BABEEC5086947625E45D4 --node=$AKASH_NODE
"05CBBC9ACBD1F51AF5B0D254E2BFD56B1ACA42819E5BABEEC5086947625E45D4" получаем из вывода предыдущей команды
Значение "05CBBC9ACBD1F51AF5B0D254E2BFD56B1ACA42819E5BABEEC5086947625E45D4" берем из вывода предыдущей команды
в выводе этой команды нас интересует значение dseq
Определяем переменные
export AKASH_DSEQ=2252882
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 200uakt -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
Часть вывода,
{
"host": "cluster.provider-0.prod.ams1.akash.pub",
"port": 2242,
"externalPort": 31549,
"proto": "TCP",
"available": 1,
"name": "avalanchego"
},
нас интересует host и externalPort. В этом примере мы подключаемся к нашей ноде:
ssh root@cluster.provider-0.prod.ams1.akash.pub -p 31549
пароль определяется в 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