Hello, friends! This guide will help you to deploy and run a node of Avalanche on Akash dApp!
Before installing Akash, we need to define environment variables:
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)"
Install Akash (Linux)
curl https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh -s -- "v$AKASH_VERSION"
cp ./bin/akash /usr/local/bin/
Create a wallet
“default1” is an example. You can choose any name, that you want.
akash keys add default1
You will need to create and confirm passphrase.
Keep it safely! You will need it!
(!!!) You need to save the mnemonic phrase, and carefully keep it in secret! Never share your mnemonic phrase with nobody!
Wallet recovery will be impossible, without mnemonic phrase!
(!!) We will never use address with name “default1”, because we showed mnemonic phrase of it.
In the next steps we will use another address with the name “default”, not “default1”.
In your case, at the places of “default1” and “default”, must be the name that you’ve created by yourself.
(!) Copy your address, you will need it in the next step!
Defining variables with the name and address of the wallet
export AKASH_ACCOUNT_ADDRESS="$(akash keys show default -a)"
export AKASH_KEY_NAME="default"
If you haven’t any errors — everything is good!
Buy $AKT and send it to your address
You can buy $AKT at many different exchanges. List of the exchanges you can find on the main web-page of Akash Network: https://akash.network/token
Check the balance
akash --node "$AKASH_NODE" query bank balances "$AKASH_ACCOUNT_ADDRESS"
The amount of $AKT shown in uAKT
1,000,000 uAKT = 1 $AKT
Create a certificate
akash tx cert create client --from=$AKASH_KEY_NAME --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE --fees 1000uakt -y
Enter your passphrase to sing the transaction
Congratulations!
At this point, the installation of Akash is complete!
Deploy the configuration file with the avalanchego image
Create a configuration file deploy.yml
Important!
- The address “akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63” is the address of the escrow account. Don’t change it!
- The variable PASSWORD must be assign as SSH-password of your node!
- The CPU, memory and size parameters in example configuration are set close to the minimum. In real use it’s necessary to increase them!
The system requirements for Avalanchego are:
CPU: Equivalent of 8 AWS vCPU
RAM: 16 GB
Storage: 200 GB
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_hSiprofiles:
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: 100deployment:
avalanchego:
akash:
profile: avalanchego
count: 1
EOF
Deploying the configuration
akash tx deployment create deploy.yml --from $AKASH_KEY_NAME --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --fees 1000uakt -b sync -y
Enter your passphrase to sing the transaction
You will get the information about transaction.
Copy the hash of transaction (txhash) — you will need it in the next step.
In our exmple it’s:
FBB1521AD7DD232B9B77C404C38FC793B05F995DB74935C4D663C20306149B5D
You will have another txhash.
Checking the status of the installation
akash q tx FBB1521AD7DD232B9B77C404C38FC793B05F995DB74935C4D663C20306149B5D --node=$AKASH_NODE
In the output of this command, we are interested in the dseq value.
In our exmple it’s:
2498329
You will have another dseq
Defining variables
export AKASH_DSEQ=2498392
export AKASH_GSEQ=1
export AKASH_OSEQ=1
If you haven’t any errors — everything is good!
Checking the deployment status
akash query deployment get --owner $AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ
Determine the bids that can be used for our configuration
akash query market bid list --owner=$AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ
In the output of this command, we are interested in the provider value.
In our exmple it’s:
akash14c4ng96vdle6tae8r4hc2w4ujwrshdddtuudk0
You will have another provider
Assign the variable provider-address
export AKASH_PROVIDER=akash14c4ng96vdle6tae8r4hc2w4ujwrshdddtuudk0
If you haven’t any errors — everything is good!
Rent the selected provider
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
Enter your passphrase to sing the transaction
After a few seconds, check the status
akash query market lease list — owner $AKASH_ACCOUNT_ADDRESS — node $AKASH_NODE — dseq $AKASH_DSEQ
Loading the manifest for our image
akash provider send-manifest deploy.yml --node $AKASH_NODE --dseq $AKASH_DSEQ --provider $AKASH_PROVIDER --from $AKASH_KEY_NAME
Enter your passphrase to sing the transaction
Get access data
akash provider lease-status --node $AKASH_NODE --dseq $AKASH_DSEQ --from $AKASH_KEY_NAME --provider $AKASH_PROVIDER
Enter your passphrase to sing the transaction
We are interested in host and externalPort.
In this example, we are connecting to our node:
ssh root@cluster.provider-2.prod.ewr1.akash.pub -p 31749
The password is defined in the deploy.yml file
We can also view the logs of our node:
akash provider lease-logs --node "$AKASH_NODE" --dseq "$AKASH_DSEQ" --gseq "$AKASH_GSEQ" --oseq "$AKASH_OSEQ" --provider "$AKASH_PROVIDER" --from "$AKASH_KEY_NAME"
Enter your passphrase to sing the transaction
The node is configured according to the official documentation, skipping the installation stage:
https://docs.avax.network/build/tutorials/nodes-and-staking/run-avalanche-node
That’s all, friends! Whish you a good deployment!