Akash Guidebook
Search
K
Links

Akash SDL Review

Akash deployments are created using Stack Definition Language (SDL) files that serve as the recipe for your deployments. In this section we detail the Omnibus SDL used for the Akash Validator deployment.

Akash Validator SDL Template

The SDL template for the Akash Validator build is located in this GitHub repository.
Copy the SDL located in the repository into a local editor for customizations covered in upcoming steps.

Initial SDL Customizations

All SDL edits necessary are environment variable related. Within the SDL, we will only edit values within the services section and env subsections. All other segments of the SDL can be used from the template without need to edit.

Validator Service

  • The first service listed in the SDL and which requires customization is the validator service
  • Recommended env variable updates are detailed in the code block below
  • NOTE - eventually we will need to additionally update the AKASH_UNCONDITIONAL_PEER_IDS variable. But at this point in the process these IDs - which are the IDs of the Sentry nodes - are not known. Based on this we will update this field later.
Update the following env variables with suggested values:
AKASH_P2P_PEX=true
P2P_PERSISTENT_PEERS=f997dbd1048af671527857db422291a11d067975@65.21.198.247:26656,[email protected]:2020,[email protected]:26656,[email protected]:26656,[email protected]:26636,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:28656,[email protected]:26656,[email protected]:26656
STATESYNC_RPC_SERVERS=https://akash-rpc.polkachu.com:443,https://akash-rpc.polkachu.com:443
S3_KEY=<specify the key captured in FileBase>
S3_SECRET=<specify the secret captured in FileBase>
KEY_PASSWORD=<password of your choice that is used in encryption of files in FileBase>
KEY_PATH=akashvalidator

Example/Populated Variables

validator:
image: ghcr.io/akash-network/cosmos-omnibus:v0.3.42-akash-v0.22.7
env:
- MONIKER=validator
- CHAIN_JSON=https://raw.githubusercontent.com/akash-network/net/main/mainnet/meta.json
- MINIMUM_GAS_PRICES=0.025uakt
- FASTSYNC_VERSION=v2
- AKASH_MODE=validator
- AKASH_P2P_PEX=true
- AKASH_UNCONDITIONAL_PEER_IDS=<node-1-id>,<node-2-id>...
- AKASH_ADDR_BOOK_STRICT=false
- AKASH_DOUBLE_SIGN_CHECK_HEIGHT=10
- P2P_PERSISTENT_PEERS=f997dbd1048af671527857db422291a11d067975@65.21.198.247:26656,[email protected]:2020,[email protected]:26656,[email protected]:26656,[email protected]:26636,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:28656,[email protected]:26656,[email protected]:26656
- STATESYNC_RPC_SERVERS=node1,node2
- S3_KEY=A397A7<redacted>
- S3_SECRET=7ZHVFsE2<redaacted>
- KEY_PASSWORD=Validator4Akash!#!
- KEY_PATH=akashvalidator

Sentry Node #1 Service

  • The second service listed in the SDL that requires customization is for the node1 service.
  • Recommended env variable updates are detailed in the code block below
  • NOTE - eventually we will need to additionally update the AKASH_PRIVATE_PEER_IDS and AKASH_UNCONDITIONAL_PEER_IDS variables. But at this point in the process these IDs - which is the ID of the Validator node - is not known. We will update these fields later.
Update the following env variables with suggested values:
STATESYNC_RPC_SERVERS=https://akash-rpc.polkachu.com:443,https://akash-rpc.polkachu.com:443
S3_KEY=<specify the key captured in FileBase>
S3_SECRET=<specify the secret captured in FileBase>
KEY_PASSWORD=<password of your choice that is used in encryption of files in FileBase>
KEY_PATH=akashnode1

Example/Populated Variables

node1:
image: ghcr.io/akash-network/cosmos-omnibus:v0.3.42-akash-v0.22.7
env:
- MONIKER=private_node_1
- CHAIN_JSON=https://raw.githubusercontent.com/akash-network/net/main/mainnet/meta.json
- MINIMUM_GAS_PRICES=0.025uakt
- FASTSYNC_VERSION=v2
- AKASH_MODE=full
- AKASH_P2P_PEX=true
- AKASH_PRIVATE_PEER_IDS=<validatorid>
- AKASH_UNCONDITIONAL_PEER_IDS=<validatorid>
- AKASH_ADDR_BOOK_STRICT=false
- STATESYNC_RPC_SERVERS=https://akash-rpc.polkachu.com:443,https://akash-rpc.polkachu.com:443
- STATESYNC_SNAPSHOT_INTERVAL=500
- S3_KEY=<redacted>
- S3_SECRET=<redacted>
- KEY_PASSWORD=<redacted>
- KEY_PATH=akashnode1

Sentry Node #2 Service

  • The third and final service list in the SDL that requires customization is for the node2 service.
  • Recommended env variable updates are detailed in the code block below
  • NOTE - eventually we will need to additionally update the AKASH_PRIVATE_PEER_IDS and AKASH_UNCONDITIONAL_PEER_IDS variables. But at this point in the process these IDs - which is the ID of the Validator node is not known - and based on this we will update this field later.
Update the following env variables with suggested values:
STATESYNC_RPC_SERVERS=https://akash-rpc.polkachu.com:443,https://akash-rpc.polkachu.com:443
S3_KEY=<specify the key captured in FileBase>
S3_SECRET=<specify the secret captured in FileBase>
KEY_PASSWORD=<password of your choice that is used in encryption of files in FileBase>
KEY_PATH=akashnode2

Example/Populated Variables

node2:
image: ghcr.io/akash-network/cosmos-omnibus:v0.3.42-akash-v0.22.7
env:
- MONIKER=private_node_1
- CHAIN_JSON=https://raw.githubusercontent.com/akash-network/net/main/mainnet/meta.json
- MINIMUM_GAS_PRICES=0.025uakt
- FASTSYNC_VERSION=v2
- AKASH_MODE=full
- AKASH_P2P_PEX=true
- AKASH_PRIVATE_PEER_IDS=<validatorid>
- AKASH_UNCONDITIONAL_PEER_IDS=<validatorid>
- AKASH_ADDR_BOOK_STRICT=false
- STATESYNC_RPC_SERVERS=https://akash-rpc.polkachu.com:443,https://akash-rpc.polkachu.com:443
- STATESYNC_SNAPSHOT_INTERVAL=500
- S3_KEY=<redacted>
- S3_SECRET=<redacted>
- KEY_PASSWORD=<redacted>
- KEY_PATH=akashnode2