Deploying a Node on Akash
A detailed guide to deploy a Juno node on Akash decentralised cloud

Introduction

This guide is intended to provide the steps required to deploy a Juno chain node onto the Akash network. The setup is intended for education and testing purposes. Due to current limitations of the Akash network, it is not recommended to use this setup for any mission critical purpose. Potential uses are personal RPC nodes or non critical sentry nodes.
This guide assumes the user is familiar with the linux command line, has Akash installed on the workstation (install Akash), and has funded an Akash wallet.
You will require at least 5 AKT for the deployment escrow amount, this will be used to pay for the provider services, as well as, say another 1 AKT for transaction fees.
This guide utilises the docker images built by the ovrclk/cosmos-omnibus repository. These images are built to be deployed to Akash, and manage node identity files on S3 storage. Furthermore, chain settings can be configured via environment variables set in the deploy.yml

Configuration of Shell Variables

For this guide, we will be using shell variables. This will enable the use of the client commands verbatim. It is important to remember that shell commands are only valid for the current shell session, and if the shell session is closed, the shell variables will need to be re-defined. If you make a mistake and set a shell variable to the wrong value, or just need to change the value of a shell variable, you will need to first clear the shell variable unset $VARIABLE_NAME . Shell variables should be named with ALL CAPS.

Define Akash network

Define the Akash network variables. The following command will source the current network information from the Akash Gitgub repository.
1
AKASH_NET="https://raw.githubusercontent.com/ovrclk/net/master/mainnet" && \
2
export AKASH_CHAIN_ID="$(curl -s "$AKASH_NET/chain-id.txt")" && \
3
export AKASH_NODE="$(curl -s "$AKASH_NET/rpc-nodes.txt" | head -1)"
Copied!
Confirm the variables have been set, and are something similar to:
akashnet-2 http://135.181.60.250:26657
1
echo $AKASH_NODE $AKASH_CHAIN_ID
Copied!

Keyring backend

Set the keyring backend used to store your key. The default is os and will store the key in your operating system, protected by your login password.
1
AKASH_KEYRING_BACKEND=os
2
3
echo $AKASH_KEYRING_BACKEND
Copied!

Configure your Account Key

Configure the name of your key. The command below will set thee name of your key to john, run the below command and replace john with a name of your choice:
1
AKASH_KEY_NAME=john
Copied!
Verify you have the key set up . The below command should return the name you've used:
1
echo $AKASH_KEY_NAME
Copied!
Populate AKASH_ACCOUNT_ADDRESS from AKASH_KEY_NAME and verify:
1
export AKASH_ACCOUNT_ADDRESS="$(akash keys show $AKASH_KEY_NAME -a)"
Copied!
Verify your address has been stored:
1
echo $AKASH_ACCOUNT_ADDRESS
Copied!
Check your account balance:
1
akash query bank balances --node $AKASH_NODE $AKASH_ACCOUNT_ADDRESS
Copied!
You should have a response similar to:
1
balances:
2
- amount: "55280590"
3
denom: uakt
4
pagination:
5
next_key: null
6
total: "0"
Copied!
Note the balance indicated is denominated in uAKT (AKT x 10^-6), in the above example, the account has a balance of approximately 55 AKT.

Configure your deploy.yml

Firstly start by creating a blank deploy.yml file:
1
mkdir myakashdeployment && cd myakashdeployment
2
touch deploy.yml
Copied!
Then open deploy.yml for editing:
1
nano deploy.yml
Copied!
The following code block is a good starting point. You may use this configuration as-is or modify it to suit your needs:
1
---
2
version: "2.0"
3
4
services:
5
node:
6
image: ghcr.io/ovrclk/cosmos-omnibus:v0.0.6-juno-lucina
7
env:
8
- MONIKER=my_juno_node
9
- CHAIN_URL=https://raw.githubusercontent.com/nullMames/juno-on-akash/main/chain.json
10
expose:
11
- port: 26657
12
as: 80
13
to:
14
- global: true
15
- port: 26656
16
to:
17
- global: true
18
19
profiles:
20
compute:
21
node:
22
resources:
23
cpu:
24
units: 2
25
memory:
26
size: 2Gi
27
storage:
28
size: 60Gi
29
placement:
30
dcloud:
31
attributes:
32
host: akash
33
signedBy:
34
anyOf:
35
- "akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63"
36
pricing:
37
node:
38
denom: uakt
39
amount: 100
40
41
deployment:
42
node:
43
dcloud:
44
profile: node
45
count: 1
46
Copied!

Service image

The image: for this deployment will be v0.0.6 from the overclk/cosmos-omnibus repository, ghcr.io/ovrclk/cosmos-omnibus:v0.0.6-juno-lucina
1
services:
2
node:
3
image: ghcr.io/ovrclk/cosmos-omnibus:v0.0.6-juno-lucina
Copied!

Setting the environment

Metadata for the Juno lucina testnet is sourced from:
https://raw.githubusercontent.com/nullMames/juno-on-akash/main/chain.json
You will need to set the MONIKER for the node. For this example, we have used my_juno_node
1
env:
2
- MONIKER=my_juno_node
3
- CHAIN_URL=https://raw.githubusercontent.com/nullMames/juno-on-akash/main/chain.json
Copied!
Detailed information regarding environment variables can be found on the ovrclk/cosmos-omnibus github repository.

Restore from snapshot (optional)

You can optionally restore a publicly hosted snapshot to speed up the node deployment. A sample env: is as follows:
1
env:
2
- MONIKER=my_juno_node
3
- CHAIN_URL=https://raw.githubusercontent.com/nullMames/juno-on-akash/main/chain.json
4
- SNAPSHOT_URL=https://drzerp.com/data/lucina_2021-07-28.tar.gz
5
- SNAPSHOT_FORMAT=tar.gz
Copied!
This configuration will restore a compressed tar archive lucina_2021--7-28.tar.gz

Create a Certificate

Before you can create a deployment, a certificate must first be created. Your certificate needs to be created only once per account and can be used across all deployments.To do this, run:
1
akash tx cert create client --chain-id $AKASH_CHAIN_ID --keyring-backend $AKASH_KEYRING_BACKEND --from $AKASH_KEY_NAME --node $AKASH_NODE --fees 5000uakt
Copied!
You should see a response similar to:
1
{
2
"body": {
3
"messages": [
4
{
5
"@type": "/akash.cert.v1beta1.MsgCreateCertificate",
6
"owner": "akash1vns5ka3x69ekm3ecp8my8d5zfu8j23p5qew0w3",
7
"cert": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ3RENDQVdXZ0F3SUJBZ0lJRm1pcUJWcWZDVmt3Q2dZSUtvWkl6ajBFQXdJd1NqRTFNRE1HQTFVRUF4TXMKWVd0aGMyZ3hkbTV6Tld0aE0zZzJPV1ZyYlRObFkzQTRiWGs0WkRWNlpuVTRhakl6Y0RWeFpYY3dkek14RVRBUApCZ1ZuZ1FVQ0JoTUdkakF1TUM0eE1CNFhEVEl4TURNd01qSXpNak15TmxvWERUSXlNRE13TWpJek1qTXlObG93ClNqRTFNRE1HQTFVRUF4TXNZV3RoYzJneGRtNXpOV3RoTTNnMk9XVnJiVE5sWTNBNGJYazRaRFY2Wm5VNGFqSXoKY0RWeFpYY3dkek14RVRBUEJnVm5nUVVDQmhNR2RqQXVNQzR4TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowRApBUWNEUWdBRUtaSTlmWGVPVzRCYXRwcU1mb1VTekx2b01lWGlpbEZTMnJhZlhKdUNObUlMVjJMaWhIZW5JdjJTCjV5Uzh1Zkh5QmNMSUI5aFE1VE81THRHSUpPdzIvYU0xTURNd0RnWURWUjBQQVFIL0JBUURBZ1F3TUJNR0ExVWQKSlFRTU1Bb0dDQ3NHQVFVRkJ3TUNNQXdHQTFVZEV3RUIvd1FDTUFBd0NnWUlLb1pJemowRUF3SURTUUF3UmdJaApBSjJzQ3ZodGNzWkRXUkQ2MU03ZkVCRUk5eEt5Z0UzRkd3K2tIYVhZYXl0TUFpRUE4cUZtb3FEc1Z0ZzhPSHc1Ck5iOEljd0hiNHVkc0RpTzRxaWhoL0owNWZKaz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
8
"pubkey": "LS0tLS1CRUdJTiBFQyBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFS1pJOWZYZU9XNEJhdHBxTWZvVVN6THZvTWVYaQppbEZTMnJhZlhKdUNObUlMVjJMaWhIZW5JdjJTNXlTOHVmSHlCY0xJQjloUTVUTzVMdEdJSk93Mi9RPT0KLS0tLS1FTkQgRUMgUFVCTElDIEtFWS0tLS0tCg=="
9
}
10
],
11
"memo": "",
12
"timeout_height": "0",
13
"extension_options": [],
14
"non_critical_extension_options": []
15
},
16
"auth_info": {
17
"signer_infos": [],
18
"fee": {
19
"amount": [],
20
"gas_limit": "200000",
21
"payer": "",
22
"granter": ""
23
}
24
},
25
"signatures": []
26
}
Copied!

Create a Deployment

To deploy your node to Akash, run:
1
akash tx deployment create deploy.yml --from $AKASH_KEY_NAME --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --fees 5000uakt -yYou will see output similar to:
Copied!
1
{
2
"height": "2035900",
3
"txhash": "42D9B99D67B1B933161CC25C83F5F4C0D57CC32B9D85D767B0F964A7F5F4E129",
4
"codespace": "",
5
"code": 0,
6
"data": "0A130A116372656174652D6465706C6F796D656E74",
7
"raw_log": "[{\"events\":[{\"type\":\"akash.v1\",\"attributes\":[{\"key\":\"module\",\"value\":\"deployment\"},{\"key\":\"action\",\"value\":\"deployment-created\"},{\"key\":\"version\",\"value\":\"fab78c21499e2b81d0ee4f5ca137f560da20ca383227f01d5d1fed0775f40f38\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"module\",\"value\":\"market\"},{\"key\":\"action\",\"value\":\"order-created\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"gseq\",\"value\":\"1\"},{\"key\":\"oseq\",\"value\":\"1\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"create-deployment\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"akash17xpfvakm2amg962yls6f84z3kell8c5lazw8j8\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"amount\",\"value\":\"5000uakt\"},{\"key\":\"recipient\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"amount\",\"value\":\"5000000uakt\"}]}]}]",
8
"logs": [
9
{
10
"msg_index": 0,
11
"log": "",
12
"events": [
13
{
14
"type": "akash.v1",
15
"attributes": [
16
{
17
"key": "module",
18
"value": "deployment"
19
},
20
{
21
"key": "action",
22
"value": "deployment-created"
23
},
24
{
25
"key": "version",
26
"value": "fab78c21499e2b81d0ee4f5ca137f560da20ca383227f01d5d1fed0775f40f38"
27
},
28
{
29
"key": "owner",
30
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
31
},
32
{
33
"key": "dseq",
34
"value": "2035898"
35
},
36
{
37
"key": "module",
38
"value": "market"
39
},
40
{
41
"key": "action",
42
"value": "order-created"
43
},
44
{
45
"key": "owner",
46
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
47
},
48
{
49
"key": "dseq",
50
"value": "2035898"
51
},
52
{
53
"key": "gseq",
54
"value": "1"
55
},
56
{
57
"key": "oseq",
58
"value": "1"
59
}
60
]
61
},
62
{
63
"type": "message",
64
"attributes": [
65
{
66
"key": "action",
67
"value": "create-deployment"
68
},
69
{
70
"key": "sender",
71
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
72
},
73
{
74
"key": "sender",
75
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
76
}
77
]
78
},
79
{
80
"type": "transfer",
81
"attributes": [
82
{
83
"key": "recipient",
84
"value": "akash17xpfvakm2amg962yls6f84z3kell8c5lazw8j8"
85
},
86
{
87
"key": "sender",
88
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
89
},
90
{
91
"key": "amount",
92
"value": "5000uakt"
93
},
94
{
95
"key": "recipient",
96
"value": "akash14pphss726thpwws3yc458hggufynm9x77l4l2u"
97
},
98
{
99
"key": "sender",
100
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
101
},
102
{
103
"key": "amount",
104
"value": "5000000uakt"
105
}
106
]
107
}
108
]
109
}
110
],
111
"info": "",
112
"gas_wanted": "200000",
113
"gas_used": "91757",
114
"tx": null,
115
"timestamp": ""
116
}
Copied!

Setting the Deployment Sequence

From the previous command output, you must locate the "key":"value" pairs for the dseq, gseq and oseq keys, similar to the following:
1
{
2
"key": "dseq",
3
"value": "2035898"
4
},
5
{
6
"key": "gseq",
7
"value": "1"
8
},
9
{
10
"key": "oseq",
11
"value": "1"
12
}
Copied!
Copy these values and set the AKASH_DSEQ, AKASH_DSEQ and AKASH_DSEQ shell variables:
1
AKASH_DSEQ=2035898 && \
2
AKASH_DSEQ=1 && \
3
AKASH_DSEQ=1
Copied!
If you have accidentally set the $AKASH_DSEQ variable to the wrong value, use unset $AKASH_DSEQ to remove the variable and try again.

Query the Market Bids and Select a Provider

You can now query the market for bids to run your deployment:
1
akash query market bid list --owner=$AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ
Copied!
You will be given an output similar to the following:
1
bids:
2
- bid:
3
bid_id:
4
dseq: "2035898"
5
gseq: 1
6
oseq: 1
7
owner: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg
8
provider: akash10cl5rm0cqnpj45knzakpa4cnvn5amzwp4lhcal
9
created_at: "2035901"
10
price:
11
amount: "10"
12
denom: uakt
13
state: open
14
escrow_account:
15
balance:
16
amount: "50000000"
17
denom: uakt
18
id:
19
scope: bid
20
xid: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg/2035898/1/1/akash10cl5rm0cqnpj45knzakpa4cnvn5amzwp4lhcal
21
owner: akash10cl5rm0cqnpj45knzakpa4cnvn5amzwp4lhcal
22
settled_at: "2035901"
23
state: open
24
transferred:
25
amount: "0"
26
denom: uakt
27
- bid:
28
bid_id:
29
dseq: "2035898"
30
gseq: 1
31
oseq: 1
32
owner: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg
33
provider: akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
34
created_at: "2035901"
35
price:
36
amount: "17"
37
denom: uakt
38
state: open
39
escrow_account:
40
balance:
41
amount: "50000000"
42
denom: uakt
43
id:
44
scope: bid
45
xid: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg/2035898/1/1/akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
46
owner: akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
47
settled_at: "2035901"
48
state: open
49
transferred:
50
amount: "0"
51
denom: uakt
52
pagination:
53
next_key: null
54
total: "0"
Copied!
After you have studied the bids, you may select a bid from the list. Copy the provider hash and set the AKASH_PROVIDER shell variable:
1
AKASH_PROVIDER=akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
Copied!

Create a Lease

Now that we have selected a provider we are able to create a lease with the provider:
1
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
Copied!
Your output will be similar to:
1
{
2
"height": "2035920",
3
"txhash": "75AD9D2680711535438B1D341C54B5D9713B025024A4A05792AF3CFF40BFC120",
4
"codespace": "",
5
"code": 0,
6
"data": "0A0E0A0C6372656174652D6C65617365",
7
"raw_log": "[{\"events\":[{\"type\":\"akash.v1\",\"attributes\":[{\"key\":\"module\",\"value\":\"market\"},{\"key\":\"action\",\"value\":\"lease-created\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"gseq\",\"value\":\"1\"},{\"key\":\"oseq\",\"value\":\"1\"},{\"key\":\"provider\",\"value\":\"akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7\"},{\"key\":\"price-denom\",\"value\":\"uakt\"},{\"key\":\"price-amount\",\"value\":\"17\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"create-lease\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"akash17xpfvakm2amg962yls6f84z3kell8c5lazw8j8\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"amount\",\"value\":\"5000uakt\"},{\"key\":\"recipient\",\"value\":\"akash10cl5rm0cqnpj45knzakpa4cnvn5amzwp4lhcal\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"amount\",\"value\":\"50000000uakt\"}]}]}]",
8
"logs": [
9
{
10
"msg_index": 0,
11
"log": "",
12
"events": [
13
{
14
"type": "akash.v1",
15
"attributes": [
16
{
17
"key": "module",
18
"value": "market"
19
},
20
{
21
"key": "action",
22
"value": "lease-created"
23
},
24
{
25
"key": "owner",
26
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
27
},
28
{
29
"key": "dseq",
30
"value": "2035898"
31
},
32
{
33
"key": "gseq",
34
"value": "1"
35
},
36
{
37
"key": "oseq",
38
"value": "1"
39
},
40
{
41
"key": "provider",
42
"value": "akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7"
43
},
44
{
45
"key": "price-denom",
46
"value": "uakt"
47
},
48
{
49
"key": "price-amount",
50
"value": "17"
51
}
52
]
53
},
54
{
55
"type": "message",
56
"attributes": [
57
{
58
"key": "action",
59
"value": "create-lease"
60
},
61
{
62
"key": "sender",
63
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
64
},
65
{
66
"key": "sender",
67
"value": "akash14pphss726thpwws3yc458hggufynm9x77l4l2u"
68
}
69
]
70
},
71
{
72
"type": "transfer",
73
"attributes": [
74
{
75
"key": "recipient",
76
"value": "akash17xpfvakm2amg962yls6f84z3kell8c5lazw8j8"
77
},
78
{
79
"key": "sender",
80
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
81
},
82
{
83
"key": "amount",
84
"value": "5000uakt"
85
},
86
{
87
"key": "recipient",
88
"value": "akash10cl5rm0cqnpj45knzakpa4cnvn5amzwp4lhcal"
89
},
90
{
91
"key": "sender",
92
"value": "akash14pphss726thpwws3yc458hggufynm9x77l4l2u"
93
},
94
{
95
"key": "amount",
96
"value": "50000000uakt"
97
}
98
]
99
}
100
]
101
}
102
],
103
"info": "",
104
"gas_wanted": "200000",
105
"gas_used": "129998",
106
"tx": null,
107
"timestamp": ""
108
}
Copied!
If you get an error while trying to create the lease similar to:
1
{"height":"1361880",
2
"txhash":"554579ED6917847777B645DDEB8B338C4ABC077DFF69517C9F17D55516296832",
3
"codespace":"market","code":12,"data":""
4
,"raw_log":"failed to execute message; message index: 0: bid not open"
5
,"logs":[],"info":"","gas_wanted":"200000","gas_used":"52035"
6
,"tx":null,"timestamp":""}
Copied!
you have probably waited too long between creating the deployment and accepting a bid. You will need to close the deployment and start the deployment process again.
After creating a lease we can query the lease with:
1
akash query market lease list --owner $AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ
Copied!
Which should give you an output similar to:
1
leases:
2
- escrow_payment:
3
account_id:
4
scope: deployment
5
xid: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg/2035898
6
balance:
7
amount: "0"
8
denom: uakt
9
owner: akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
10
payment_id: 1/1/akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
11
rate:
12
amount: "17"
13
denom: uakt
14
state: open
15
withdrawn:
16
amount: "0"
17
denom: uakt
18
lease:
19
created_at: "2035920"
20
lease_id:
21
dseq: "2035898"
22
gseq: 1
23
oseq: 1
24
owner: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg
25
provider: akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
26
price:
27
amount: "17"
28
denom: uakt
29
state: active
30
pagination:
31
next_key: null
32
total: "0"
Copied!

Deploy the Mainfest

Now that we have created a lease with the provider, we can deploy the manifest:
1
akash provider send-manifest deploy.yml --node $AKASH_NODE --dseq $AKASH_DSEQ --provider $AKASH_PROVIDER --home ~/.akash --from $AKASH_KEY_NAME
Copied!
If your manifest deployment is successful, you should have an output similar to:
1
provider: akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7
2
status: PASS
Copied!

View your Logs

Now that your manifest is deployed, your instance should be up and running. You can now query you instance logs:
1
akash provider lease-logs --node $AKASH_NODE --from $AKASH_KEY_NAME --provider $AKASH_PROVIDER --dseq $AKASH_DSEQ
Copied!
For this example instance, the initial logs output:
1
{"app_message":{"auth":{"accounts":[],"params":{"max_memo_characters":"256","sig_verify_cost_ed25519":"590","sig_verify_cost_secp256k1":"1000","tx_sig_limit":"7","tx_size_cost_per_byte":"10"}},"bank":{"balances":[],"denom_metadata":[],"params":{"default_send_enabled":true,"send_enabled":[]},"supply":[]},"capability":{"index":"1","owners":[]},"crisis":{"constant_fee":{"amount":"1000","denom":"stake"}},"distribution":{"delegator_starting_infos":[],"delegator_withdraw_infos":[],"fee_pool":{"community_pool":[]},"outstanding_rewards":[],"params":{"base_proposer_reward":"0.010000000000000000","bonus_proposer_reward":"0.040000000000000000","community_tax":"0.020000000000000000","withdraw_addr_enabled":true},"previous_proposer":"","validator_accumulated_commissions":[],"validator_current_rewards":[],"validator_historical_rewards":[],"validator_slash_events":[]},"evidence":{"evidence":[]},"genutil":{"gen_txs":[]},"gov":{"deposit_params":{"max_deposit_period":"172800s","min_deposit":[{"amount":"10000000","denom":"stake"}]},"deposits":[],"proposals":[],"starting_proposal_id":"1","tally_params":{"quorum":"0.334000000000000000","threshold":"0.500000000000000000","veto_threshold":"0.334000000000000000"},"votes":[],"voting_params":{"voting_period":"172800s"}},"ibc":{"channel_genesis":{"ack_sequences":[],"acknowledgements":[],"channels":[],"commitments":[],"next_channel_sequence":"0","receipts":[],"recv_sequences":[],"send_sequences":[]},"client_genesis":{"clients":[],"clients_consensus":[],"clients_metadata":[],"create_localhost":false,"next_client_sequence":"0","params":{"allowed_clients":["06-solomachine","07-tendermint"]}},"connection_genesis":{"client_connection_paths":[],"connections":[],"next_connection_sequence":"0"}},"juno":{},"mint":{"minter":{"annual_provisions":"0.000000000000000000","inflation":"0.130000000000000000"},"params":{"blocks_per_year":"6311520","goal_bonded":"0.670000000000000000","inflation_max":"0.200000000000000000","inflation_min":"0.070000000000000000","inflation_rate_change":"0.130000000000000000","mint_denom":"stake"}},"params":null,"slashing":{"missed_blocks":[],"params":{"downtime_jail_duration":"600s","min_signed_per_window":"0.500000000000000000","signed_blocks_window":"100","slash_fraction_double_sign":"0.050000000000000000","slash_fraction_downtime":"0.010000000000000000"},"signing_infos":[]},"staking":{"delegations":[],"exported":false,"last_total_power":"0","last_validator_powers":[],"params":{"bond_denom":"stake","historical_entries":10000,"max_entries":7,"max_validators":100,"unbonding_time":"1814400s"},"redelegations":[],"unbonding_delegations":[],"validators":[]},"transfer":{"denom_traces":[],"params":{"receive_enabled":true,"send_enabled":true},"port_id":"transfer"},"upgrade":{},"vesting":{},"wasm":{"codes":[],"contracts":[],"gen_msgs":[],"params":{"code_upload_access":{"address":"","permission":"Everybody"},"instantiate_default_permission":"Everybody","max_wasm_code_size":"614400"},"sequences":[]}},"chain_id":"lucina","gentxs_dir":"","moniker":"node_69","node_id":"0cb026681d97f567b309e1e14f7f3582ff1ed990"}
2
Downloading genesis
3
File at /root/.juno/config/genesis.json is a valid genesis file
4
Node ID:
5
0cb026681d97f567b309e1e14f7f3582ff1ed990
6
5:47AM INF starting ABCI with Tendermint
7
5:47AM INF Starting multiAppConn service impl=multiAppConn module=proxy
8
5:47AM INF Starting localClient service connection=query impl=localClient module=abci-client
9
5:47AM INF Starting localClient service connection=snapshot impl=localClient module=abci-client
10
5:47AM INF Starting localClient service connection=mempool impl=localClient module=abci-client
11
5:47AM INF Starting localClient service connection=consensus impl=localClient module=abci-client
12
5:47AM INF Starting EventBus service impl=EventBus module=events
13
5:47AM INF Starting PubSub service impl=PubSub module=pubsub
14
5:47AM INF Starting IndexerService service impl=IndexerService module=txindex
15
5:47AM INF ABCI Handshake App Info hash= height=0 module=consensus protocol-version=0 software-version=
16
5:47AM INF ABCI Replay Blocks appHeight=0 module=consensus stateHeight=0 storeHeight=0
Copied!
We can see the node has downloaded the genesis file and is starting the node. A short time later we can see the node is syncing to the network:
1
6:14AM INF committed state app_hash=44431E573B7675BE3CADC76FFF9CBCC030D65104422BC120B9D034D9DC943DF6 height=988 module=state num_txs=0
2
6:14AM INF indexed block height=988 module=txindex
3
6:14AM INF minted coins from module account amount=1520783ujuno from=mint module=x/bank
4
6:14AM INF executed block height=989 module=state num_invalid_txs=0 num_valid_txs=0
5
6:14AM INF commit synced commit=436F6D6D697449447B5B3332203138352034312035203231312032323220323238203231322032203139392031373620363720313138203131372035302034392038203132342031313920313534203232203135203131382036203133382031342033312032313220353520323035203830203233355D3A3344447D
6
6:14AM INF committed state app_hash=20B92905D3DEE4D402C7B04376753231087C779A160F76068A0E1FD437CD50EB height=989 module=state num_txs=0
7
6:14AM INF indexed block height=989 module=txindex
8
6:14AM INF minted coins from module account amount=1520784ujuno from=mint module=x/bank
9
6:14AM INF executed block height=990 module=state num_invalid_txs=0 num_valid_txs=0
Copied!

Making Changes to Your Deployment Manifest

If you find that you have made a mistake in your deploy.yml and your instance has not started up as expected, you are able to make changes to the deploy.yml update your deployment lease:
1
akash tx deployment update deploy.yml --dseq $AKASH_DSEQ --from $AKASH_KEY_NAME --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE --fees=5000uakt
Copied!
And re-deploy the manifest:
1
akash provider send-manifest deploy.yml --keyring-backend $AKASH_KEYRING_BACKEND --node $AKASH_NODE --from $AKASH_KEY_NAME --provider $AKASH_PROVIDER --dseq $AKASH_DSEQ --log_level info --home ~/.akash
Copied!

Query the Deployment Lease Status

You are able to query the status of the lease at any time:
1
akash query deployment get --owner $AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ
Copied!
You will be given an output similar to:
1
deployment:
2
created_at: "2035900"
3
deployment_id:
4
dseq: "2035898"
5
owner: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg
6
state: active
7
version: gtOQplMxCfvcyStE6+dDdwl+wL20XbHuNEw0mK0prjE=
8
escrow_account:
9
balance:
10
amount: "5000000"
11
denom: uakt
12
id:
13
scope: deployment
14
xid: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg/2035898
15
owner: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg
16
settled_at: "2035920"
17
state: open
18
transferred:
19
amount: "0"
20
denom: uakt
21
groups:
22
- created_at: "2035900"
23
group_id:
24
dseq: "2035898"
25
gseq: 1
26
owner: akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg
27
group_spec:
28
name: dcloud
29
requirements:
30
attributes:
31
- key: host
32
value: akash
33
signed_by:
34
all_of: []
35
any_of: []
36
resources:
37
- count: 1
38
price:
39
amount: "100"
40
denom: uakt
41
resources:
42
cpu:
43
attributes: []
44
units:
45
val: "2000"
46
endpoints:
47
- kind: SHARED_HTTP
48
- kind: RANDOM_PORT
49
memory:
50
attributes: []
51
quantity:
52
val: "2147483648"
53
storage:
54
attributes: []
55
quantity:
56
val: "64424509440"
57
state: open
Copied!

Query the Deployment URL

You can query the deployment to show the URL assigned:
1
akash provider lease-status --node $AKASH_NODE --home ~/.akash --dseq $AKASH_DSEQ --from $AKASH_KEY_NAME --provider $AKASH_PROVIDER
Copied!
This will produce an output similar to:
1
{
2
"services": {
3
"node": {
4
"name": "node",
5
"available": 1,
6
"total": 1,
7
"uris": [
8
"qevnurlff586fdl00simo2b9uc.ingress.ewr1p0.mainnet.akashian.io"
9
],
10
"observed_generation": 2,
11
"replicas": 1,
12
"updated_replicas": 1,
13
"ready_replicas": 1,
14
"available_replicas": 1
15
}
16
},
17
"forwarded_ports": {
18
"node": [
19
{
20
"host": "cluster.ewr1p0.mainnet.akashian.io",
21
"port": 26656,
22
"externalPort": 31335,
23
"proto": "TCP",
24
"available": 1,
25
"name": "node"
26
}
27
]
28
}
29
}
Copied!

Closing Your Lease

You can close your lease at any time by executing:
1
akash tx deployment close --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --dseq $AKASH_DSEQ --owner $AKASH_ACCOUNT_ADDRESS --from $AKASH_KEY_NAME --keyring-backend $AKASH_KEYRING_BACKEND -y --fees 5000uakt
Copied!
You will be given an output similar to:
1
{
2
"height": "2036292",
3
"txhash": "B5EBD4F1B6B9B5F37EDD569DA73DD82877ACEC2897C4DBBA9C4B8109911C4A77",
4
"codespace": "",
5
"code": 0,
6
"data": "0A120A10636C6F73652D6465706C6F796D656E74",
7
"raw_log": "[{\"events\":[{\"type\":\"akash.v1\",\"attributes\":[{\"key\":\"module\",\"value\":\"deployment\"},{\"key\":\"action\",\"value\":\"deployment-closed\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"module\",\"value\":\"deployment\"},{\"key\":\"action\",\"value\":\"group-closed\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"gseq\",\"value\":\"1\"},{\"key\":\"module\",\"value\":\"market\"},{\"key\":\"action\",\"value\":\"order-closed\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"gseq\",\"value\":\"1\"},{\"key\":\"oseq\",\"value\":\"1\"},{\"key\":\"module\",\"value\":\"market\"},{\"key\":\"action\",\"value\":\"bid-closed\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"gseq\",\"value\":\"1\"},{\"key\":\"oseq\",\"value\":\"1\"},{\"key\":\"provider\",\"value\":\"akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7\"},{\"key\":\"price-denom\",\"value\":\"uakt\"},{\"key\":\"price-amount\",\"value\":\"17\"},{\"key\":\"module\",\"value\":\"market\"},{\"key\":\"action\",\"value\":\"lease-closed\"},{\"key\":\"owner\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"dseq\",\"value\":\"2035898\"},{\"key\":\"gseq\",\"value\":\"1\"},{\"key\":\"oseq\",\"value\":\"1\"},{\"key\":\"provider\",\"value\":\"akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7\"},{\"key\":\"price-denom\",\"value\":\"uakt\"},{\"key\":\"price-amount\",\"value\":\"17\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"close-deployment\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"akash17xpfvakm2amg962yls6f84z3kell8c5lazw8j8\"},{\"key\":\"sender\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"amount\",\"value\":\"5000uakt\"},{\"key\":\"recipient\",\"value\":\"akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"amount\",\"value\":\"4993676uakt\"},{\"key\":\"recipient\",\"value\":\"akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"amount\",\"value\":\"6324uakt\"},{\"key\":\"recipient\",\"value\":\"akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7\"},{\"key\":\"sender\",\"value\":\"akash14pphss726thpwws3yc458hggufynm9x77l4l2u\"},{\"key\":\"amount\",\"value\":\"50000000uakt\"}]}]}]",
8
"logs": [
9
{
10
"msg_index": 0,
11
"log": "",
12
"events": [
13
{
14
"type": "akash.v1",
15
"attributes": [
16
{
17
"key": "module",
18
"value": "deployment"
19
},
20
{
21
"key": "action",
22
"value": "deployment-closed"
23
},
24
{
25
"key": "owner",
26
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
27
},
28
{
29
"key": "dseq",
30
"value": "2035898"
31
},
32
{
33
"key": "module",
34
"value": "deployment"
35
},
36
{
37
"key": "action",
38
"value": "group-closed"
39
},
40
{
41
"key": "owner",
42
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
43
},
44
{
45
"key": "dseq",
46
"value": "2035898"
47
},
48
{
49
"key": "gseq",
50
"value": "1"
51
},
52
{
53
"key": "module",
54
"value": "market"
55
},
56
{
57
"key": "action",
58
"value": "order-closed"
59
},
60
{
61
"key": "owner",
62
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
63
},
64
{
65
"key": "dseq",
66
"value": "2035898"
67
},
68
{
69
"key": "gseq",
70
"value": "1"
71
},
72
{
73
"key": "oseq",
74
"value": "1"
75
},
76
{
77
"key": "module",
78
"value": "market"
79
},
80
{
81
"key": "action",
82
"value": "bid-closed"
83
},
84
{
85
"key": "owner",
86
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
87
},
88
{
89
"key": "dseq",
90
"value": "2035898"
91
},
92
{
93
"key": "gseq",
94
"value": "1"
95
},
96
{
97
"key": "oseq",
98
"value": "1"
99
},
100
{
101
"key": "provider",
102
"value": "akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7"
103
},
104
{
105
"key": "price-denom",
106
"value": "uakt"
107
},
108
{
109
"key": "price-amount",
110
"value": "17"
111
},
112
{
113
"key": "module",
114
"value": "market"
115
},
116
{
117
"key": "action",
118
"value": "lease-closed"
119
},
120
{
121
"key": "owner",
122
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
123
},
124
{
125
"key": "dseq",
126
"value": "2035898"
127
},
128
{
129
"key": "gseq",
130
"value": "1"
131
},
132
{
133
"key": "oseq",
134
"value": "1"
135
},
136
{
137
"key": "provider",
138
"value": "akash1f6gmtjpx4r8qda9nxjwq26fp5mcjyqmaq5m6j7"
139
},
140
{
141
"key": "price-denom",
142
"value": "uakt"
143
},
144
{
145
"key": "price-amount",
146
"value": "17"
147
}
148
]
149
},
150
{
151
"type": "message",
152
"attributes": [
153
{
154
"key": "action",
155
"value": "close-deployment"
156
},
157
{
158
"key": "sender",
159
"value": "akash1j2wkr3hshu44dxug4n3f27redumw0732p5sazg"
160
},
161
{
162
"key": "sender",
163
"value": "akash14pphss726thpwws3yc458hggufynm9x77l4l2u"
164
},
165
{
166
"key": "sender",
167
"value": "akash14pphss726thpwws3yc458hggufynm9x77l4l2u"
168
},
169
{
170
"key": "sender",
171
"value"<span data-slate-leaf="true" data-offse