Planq Network

Delegate to us
Chain-ID: planq_7070-2
Latest Node Version: v1.1.0
Latest Block Height:

Planq is the very first cryptocurrency to keep mobile platform usability at heart, taking a step away from dependency on desktop services. Users in developing countries will now be able to lend and borrow crypto using their phones, rather than relying on a desktop computer system. This should have profound impacts on the individuals and the overall crypto ecosystem.


Binary: realio-networkd
Denom: ario
Symbol: RIO
Exponent: 18
Folder Chain: .realio-network
Key management
planqd keys add planqd keys add  --recoverplanqd keys listplanqd keys delete planqd keys export planqd keys import  .backup
Check balance
planqd q bank balances $(planqd keys show  -a)
Service
sudo journalctl -u planqd -f --no-hostname -o catsudo systemctl start planqdsudo systemctl stop planqdsudo systemctl restart planqdsudo systemctl status planqdsudo systemctl daemon-reloadsudo systemctl enable planqdsudo systemctl disable planqdplanqd status 2>&1 | jq .SyncInfoecho $(planqd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.planqd/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')curl -sS http://localhost:657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Validator management















Create Validator
planqd tx staking create-validator \
--amount=000000000000000000aplanq \
--moniker="" \
--pubkey=$(planqd tendermint show-validator) \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id=planq_7070-2 \
--commission-rate=0. \
--commission-max-rate=0.20 \
--commission-max-change-rate=0. \
--min-self-delegation=1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
Edit Validator
planqd tx staking edit-validator \
--new-moniker="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq" -y
planqd tx staking edit-validator \
--identity="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--details="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--identity="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--details="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--identity="" \
--details="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--identity="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--details="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--identity="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--details="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--identity="" \
--details="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--commission-rate=0. \
--chain-id=planq_7070-2 \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"
planqd tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id=planq_7070-2 \
--commission-rate=0. \
--from= \
--gas="1000000" \
--gas-prices="30000000000aplanq"




planqd status 2>&1 | jq .ValidatorInfoplanqd q staking validator $(planqd keys show  --bech val -a)planqd q slashing signing-info $(planqd tendermint show-validator)planqd tx slashing unjail --broadcast-mode=block --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd q staking validators -oj --limit=2000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " 	 " + .description.moniker' | sort -gr | nl[[ $(planqd q staking validator $(planqd keys show  --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(planqd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "Your key status is ok" || echo -e "Your key status is error"planqd q slashing signing-info $(planqd tendermint show-validator)
Token management
planqd tx distribution withdraw-all-rewards --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd tx distribution withdraw-rewards $(planqd keys show  --bech val -a) --commission --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd tx staking delegate $(planqd keys show  --bech val -a) 000000000000000000aplanq --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd tx staking redelegate $(planqd keys show  --bech val -a)  000000000000000000aplanq --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd tx staking delegate  000000000000000000aplanq --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd tx staking unbond $(planqd keys show  --bech val -a) 000000000000000000aplanq --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"planqd tx bank send   000000000000000000aplanq --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"
Governance
View Proposal
planqd query gov proposal 
Vote
planqd tx gov vote   --from  --chain-id planq_7070-2 --gas="1000000" --gas-prices="30000000000aplanq"
Utility
Set Custom Port




CUSTOM_PORT=
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.planqd/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%; s%^address = \"127.0.0.1:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"127.0.0.1:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.planqd/config/app.toml
Enable Indexing usually enabled by default
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.planqd/config/config.toml
Disable Indexing
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.planqd/config/config.toml
Reset Chain Data
planqd tendermint unsafe-reset-all --home $HOME/.planqd --keep-addr-book
Delete Node
WARNING! This action will remove all files related to the planqd chain! Make sure you have backed up your priv_validator_key.json
sudo systemctl stop planqd && \
sudo systemctl disable planqd && \
rm /etc/systemd/system/planqd.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf .planqd && \
rm -rf $(which planqd)
Genesis
wget -O $HOME/.planqd/config/genesis.json "https://raw.githubusercontent.com/planq-network/networks/main/mainnet/genesis.json"
Addrbook
Update every 1h
wget -O $HOME/.planqd/config/addrbook.json "https://snapshots.nodestake.top/planq/Addrbook.json"
List Peers:
PEERS= 
sed -i -e "s|^persistent_peers *=.*|persistent_peers = "$PEERS"|" $HOME/.planqd/config/config.toml
In case our endpoint experiences an issue, we use the Cosmos directory endpoint as a backup.
Api Endpoint
RPC Endpoint
gRPC Endpoint
Auto Installation
Script Info
Binary
:
FOLDER
:
Golang Version
:
Snapshot
:
From Stratch ||
wget -O auto-planq.sh https://raw.githubusercontent.com/kynraze/service/main/mainnet/planq/install-auto.sh && chmod +x auto-planq.sh && ./auto-planq.sh
With StateSync
With Snapshot ||

wget -O snapshot-planq.sh https://raw.githubusercontent.com/kynraze/service/main/mainnet/planq/install-snapshot.sh && chmod +x snapshot-planq.sh && ./snapshot-planq.sh

Manual Installation
Setting vars




PLANQ_NODENAME=""

save and import variable

echo "export PLANQ_NODENAME=$PLANQ_NODENAME" >> $HOME/.bash_profile if [ ! $WALLET ]; then echo "export WALLET=wallet" >> $HOME/.bash_profile fi echo "export PLANQ_CHAIN_ID=planq_7070-2" >> $HOME/.bash_profile source $HOME/.bash_profile

Install and update dependencies

sudo apt update && sudo apt upgrade -y && sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

Install Go

ver="1.20" cd $HOME wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" rm "go$ver.linux-amd64.tar.gz" echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile source ~/.bash_profile

Check golang

go version

Install app

git clone https://github.com/planq-network/planq.git cd planq git checkout v1.1.0 make install

Verify that Binary successfully installed

planqd version --long

Custom Port (Optional)




CUSTOM_PORT= sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.planqd/config/config.toml sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%; s%^address = \"127.0.0.1:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"127.0.0.1:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.planqd/config/app.toml

Config App

planqd config chain-id $PLANQ_CHAIN_ID planqd config keyring-backend file planqd config node tcp://localhost:657

Initialize

planqd init $PLANQ_NODENAME --chain-id $PLANQ_CHAIN_ID

Get Genesis and Addrbook
Download genesis
wget -O $HOME/.planqd/config/genesis.json "https://raw.githubusercontent.com/planq-network/networks/main/mainnet/genesis.json"
Download Addrbook
wget -O $HOME/.planqd/config/addrbook.json "https://snapshots.nodestake.top/planq/Addrbook.json"
Set Seeds and Peers

PEERS="" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.planqd/config/config.toml sed -i -e "s|^seeds *=.*|seeds = \"\"|" $HOME/.planqd/config/config.toml

Config pruning

pruning="custom" pruning_keep_recent="100" pruning_keep_every="0" pruning_interval="10" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.planqd/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.planqd/config/app.toml sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.planqd/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.planqd/config/app.toml

Create service file and start node
Create Service

sudo tee /etc/systemd/system/planqd.service > /dev/null << EOF [Unit] Description=planqd After=network-online.target

[Service] User=$USER ExecStart=$(which planqd) start --home $HOME/.planqd Restart=on-failure RestartSec=3 LimitNOFILE=65535

[Install] WantedBy=multi-user.target EOF

Download Snapshot (Optional)

curl -o - -L https://snap.kynraze.com/planq/snapshot-latest.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.planqd

Start Service

sudo systemctl daemon-reload sudo systemctl enable planqd sudo systemctl restart planqd sudo journalctl -fu planqd -o cat

Snapshots are taken automatically every 6 hours
Snapshot Info
Block Height
:
Size
:
Block Time
:
Indexer
:
Pruning
:
pruning-keep-recent
:
pruning-keep-every
: 0
pruning-interval
:
Currently, we do not provide snapshots
Instruction
# Update & install lz4(Required)
sudo apt install snapd lz4 -y

# Reset Chain Data
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1false|" $HOME/.planqd/config/config.toml
sudo systemctl stop planqd
cp $HOME/.planqd/data/priv_validator_state.json $HOME/.planqd/priv_validator_state.json.backup
rm -rf $HOME/.planqd/data

# Download Data Snapshot
curl -o - -L https://snap.kynraze.com/planq/snapshot-latest.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.planqd
mv $HOME/.planqd/priv_validator_state.json.backup $HOME/.planqd/data/priv_validator_state.json

# Restart
sudo systemctl restart planqd
sudo journalctl -fu planqd -o cat
About State Sync
With fast sync a node is downloading all of the data of an application from genesis and verifying it. With state sync your node will download data related to the head or near the head of the chain and verify the data. This leads to drastically shorter times for joining a network.
State Sync Configuration
Pruning
:
pruning-keep-recent
:
pruning-keep-every
: 0
pruning-interval
:
Instruction
systemctl stop planqd
planqd tendermint unsafe-reset-all --home $HOME/.planqd --keep-addr-book

STATE_SYNC_RPC=""

LATEST_HEIGHT=$(curl -s $STATE_SYNC_RPC/block | jq -r .result.block.header.height) \
SYNC_BLOCK_HEIGHT=$(($LATEST_HEIGHT - 2000)) \
SYNC_BLOCK_HASH=$(curl -s "$STATE_SYNC_RPC/block?height=$SYNC_BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $SYNC_BLOCK_HEIGHT $SYNC_BLOCK_HASH

PEERS=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.planqd/config/config.toml

sed -i.bak -e "s|^enable *=.*|enable = true|" $HOME/.planqd/config/config.toml
sed -i.bak -e "s|^rpc_servers *=.*|rpc_servers = \"$STATE_SYNC_RPC,$STATE_SYNC_RPC\"|" \
$HOME/.planqd/config/config.toml
sed -i.bak -e "s|^trust_height *=.*|trust_height = $SYNC_BLOCK_HEIGHT|" \
$HOME/.planqd/config/config.toml
sed -i.bak -e "s|^trust_hash *=.*|trust_hash = \"$SYNC_BLOCK_HASH\"|" \
$HOME/.planqd/config/config.toml

systemctl restart planqd && journalctl -fu planqd -o cat