Prequirements: This guide assumes your running a Linux based operating system and have Docker already installed.
Liberland's node docker image is hosted on GitHub Container Registry: ghcr.io/liberland/blockchain-node. It's build automatically from public Dockerfile. Configuration:
- Node binary is stored at
/node
- Exposed ports:
30333
,9944
. - Runs as unpriviledged user with UID 1000
To make sure your node's data is persistant, mount a host directory as a volume using -v
argument:
$ mkdir $HOME/liberland_data
$ sudo chown 1000:1000 $HOME/liberland_data
$ docker run -it --rm -v $HOME/liberland_data:/data ghcr.io/liberland/blockchain-node:latest -d /data --chain bastiat
To use custom chain spec, you must mount it into the container:
$ mkdir $HOME/liberland_data
$ sudo chown 1000:1000 $HOME/liberland_data
$ docker run -it --rm -v $HOME/liberland_data:/data -v $HOME/custom_chain_spec.raw.json:/custom_chain_spec.raw.json ghcr.io/liberland/blockchain-node:latest -d /data --chain /custom_chain_spec.raw.json
To be able to access your node locally via Polkadot.js Apps, pass --network=host
argument so that RPC port is accessible:
$ mkdir $HOME/liberland_data
$ sudo chown 1000:1000 $HOME/liberland_data
$ docker run -it --rm --network=host -v $HOME/liberland_data:/data ghcr.io/liberland/blockchain-node:latest -d /data --chain bastiat
You'll now be able to access your node via https://polkadotjs.blockchain.liberland.org/?rpc=ws://localhost:9944.
This example:
- passes
-v $HOME/liberland_data:/data
to make data persistent on the host - passes
--network=host
to make RPC accessible locally and P2P accessible on all interfaces - passes
-d
to run in background - passes
--restart always
to automatically restart node on reboot / crash - uses mainnet chain spec
- passes
--validator
option to node to enable acting as validator
$ mkdir $HOME/liberland_data
$ sudo chown 1000:1000 $HOME/liberland_data
$ docker run --name liberland -d --network=host --restart always -v $HOME/liberland_data:/data ghcr.io/liberland/blockchain-node:latest -d /data --chain mainnet --validator
You can:
- monitor this instance with
docker ps -a
- see its logs with
docker logs liberland
- stop with
docker stop liberland
- note that it will restart automatically on reboot / Docker restart - restart with
docker restart liberland
- remove with
docker rm liberland
See regenerate session keys document.
With an instance running like this you may now follow the Run a validator starting with Wait for your node to sync section.