Planq Mainnet
This is a detailed documentation for setting up a full node on Planq mainnet planq_7070-2.
Pre-requisites
Supported OS
We officially support macOS, Windows, and Linux only. Other platforms may work but there is no guarantee. We will extend our support to other operating systems after we have stabilised our current architecture.
Prepare your machine
To run Planq Mainnet nodes, you will need a machine with the following minimum requirements to run different types of nodes:
Pruned node (setting pruning=everything)
Storage: ~25G*
RAM: 4 GB (LevelDB) or 64G RAM (RocksDB)***
CPU: 4-core
Default full node (setting pruning=default)
Storage: ~1.5T**
RAM: 4 GB (LevelDB) or 64G RAM (RocksDB)***
CPU: 4-core
Archive node (setting pruning=nothing)
Storage: ~2.8T**
RAM: 4 GB (LevelDB) or 64G RAM (RocksDB)***
CPU: 4-core
*Only in case state-sync enabled. ** e.g. Note that size of snapshots from Snapshot will keep growing. *** Note that during a state-sync the node might require higher RAM than 3GB but, returns to normal after state-sync has finished.
Step 1. Get the Planq Mainnet binary
To simplify the following step, we will be using Linux (Intel x86) for illustration. Binaries for Mac (Intel x86 / M1) and Windows
To install released Planq Mainnet binaries from github:
$ curl -LOJ https://github.com/planq-network/planq/releases/download/v1.1.0/planq_1.1.0_linux_amd64.tar.gz $ tar -zxvf planq_1.1.0_linux_amd64.tar.gzAfterward, you can check the version of
planqdby$ ./planqd version 1.1.0
Step 2. Configure planqd
planqdStep 2-0 (Optional) Clean up the old blockchain data
If you have joined
planq_7077-1before, you would have to clean up the old blockchain data and start over again, it can be done by running:$ ./planqd tendermint unsafe-reset-alland remove the old genesis file by
$ rm ~/.planqd/config/genesis.json
Before kick-starting your node, we will have to configure your node so that it connects to the Planq mainnet:
Step 2-1 Initialize planqd
planqdFirst of all, you can initialize planqd by:
$ ./planqd init [moniker] --chain-id planq_7070-2This
monikerwill be the displayed id of your node when connected to Planq Chain network.When providing the moniker value, make sure you drop the square brackets since they are not needed. The example below shows how to initialize a node named
pegasus-node:$ ./planqd init pegasus-node --chain-id planq_7070-2
Step 2-2 Configure planqd
Download and replace the Planq Mainnet
genesis.jsonby:$ curl https://raw.githubusercontent.com/planq-network/networks/main/mainnet/genesis.json > ~/.planqd/config/genesis.jsonVerify sha256sum checksum of the downloaded
genesis.json. You should seeOK!if the sha256sum checksum matches.$ if [[ $(sha256sum ~/.planqd/config/genesis.json | awk '{print $1}') = "a4bca4e9d4de3ee747452aa5dcd80acebb6a69e99dd19b5ce0af1c6606d847f7" ]]; then echo "OK"; else echo "MISMATCHED"; fi; OK!
For network configuration, in
~/.planqd/config/config.toml, validator nodes need to modify the configurations ofseed,create_empty_blocks_intervalandtimeout_commit$ sed -i.bak -E 's#^(seeds[[:space:]]+=[[:space:]]+).*$#\1"[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656"#' ~/.planqd/config/config.toml $ sed -i.bak -E 's#^(create_empty_blocks_interval[[:space:]]+=[[:space:]]+).*$#\1"5s"#' ~/.planqd/config/config.toml $ sed -i.bak -E 's#^(timeout_commit[[:space:]]+=[[:space:]]+).*$#\1"5s"#' ~/.planqd/config/config.tomlIf you would like to build an archive node that allows you to query all the historical block data - kindly update the pruning setting to
"nothing"by$ sed -i.bak -E 's#^(pruning[[:space:]]+=[[:space:]]+).*$#\1"nothing"#' ~/.planqd/config/app.toml
Step 3. Run everything
CAUTION
This page only shows the minimal setup for validator / full node.
Furthermore, you may want to run full nodes as sentries (see Tendermint), restrict your validator connections to only connect to your full nodes, test secure storage of validator keys etc.
Once planqd has been configured, we are ready to start the ode and sync the blockchain data:
Start planqd, e.g.:
$ ./planqd start(Optional for Linux) Start planqd with systemd service, e.g.:
$ curl -s https://raw.githubusercontent.com/planq-network/planq-docs/master/systemd/create-service.sh -o create-service.sh && curl -s https://raw.githubusercontent.com/planq-network/planq-docs/master/systemd/planqd.service.template -o planqd.service.template
$ chmod +x ./create-service.sh && ./create-service.sh
$ sudo systemctl start planqd
# view log
$ journalctl -u planqd -fIt should begin fetching blocks from the other peers.
You can query the node syncing status by
$ ./planqd status 2>&1 | jq '.SyncInfo.catching_up'If the above command returns
false, It means that your node is fully synced; otherwise, it returnstrueand implies your node is still catching up.One can check the current block height by querying the public full node by:
curl -s https://rpc.planqd.org/commit | jq "{height: .result.signed_header.header.height}"and you can check your node's progress (in terms of block height) by
$ ./planqd status 2>&1 | jq '.SyncInfo.latest_block_height'
Last updated