Deploying Polkadot node on Akash

aoritus
2 min readMar 17, 2022

Parity has a docker image on Docker Hub so for deploying we need only configure SDL file which will be used on Akashlytics.

Requirements for Validator on Polkadot:

CPU — Intel(R) Core(TM) i7–7700K CPU @ 4.20GHz.

Storage — A NVMe solid state drive. Should be reasonably sized to deal with blockchain growth. Starting around 80GB — 160GB will be okay for the first six months of Polkadot, but will need to be re-evaluated every six months.

Memory — 64GB ECC.

Configured SDL:

---
version: "2.0"
services:
polkadot:
image: parity/polkadot
expose:
- port: 30333
as: 30333
to:
- global: true
- port: 9933
as: 9933
to:
- global: true
- port: 9944
as: 9944
to:
- global: true
args:
- "--chain=polkadot"
- "--ws-external"
- "--rpc-external"
- "--rpc-cors=*"
profiles:
compute:
polkadot-profile:
resources:
cpu:
units: 4.0
memory:
size: 64Gi
storage:
size: 128Gi
placement:
westcoast:
pricing:
polkadot-profile:
denom: uakt
amount: 1000
deployment:
polkadot:
westcoast:
profile: polkadot-profile
count: 1

Chain type and requested resources can be changed in SDL.

This SDL will deploy Polkadot node on Polkadot chain.

About arguments:

  • Use the --chain <chainspec> option to select the chain. Can be polkadot, kusama, westend, rococo, or a custom chain spec.
  • Use the --rpc-external flag to expose RPC ports and — ws-external to expose websockets. Not all RPC calls are safe to allow and you should use an RPC proxy to filter unsafe calls.
  • Select ports with the --rpc-port and --ws-port options.
  • To limit the hosts who can access, use the --rpc-cors option.

After deploying we will see this:

Forwarded Ports:

P2P: 30333
RPC: 9933
WebSocket: 9944

RPC can be found by clicking on *****:9933 port. Your browser will open provider:port link.

Curl request with RPC:

curl -X POST -H 'content-type:application/json' --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"system_chain"
}' http://provider.edgenet-3.ca.aksh.pw:30044/

If everything fine then RPC will return a response with chain:

{"jsonrpc":"2.0","result":"Polkadot","id":1}

Run a Validator on Polkadot:

--

--