Arkeo Network

Explorer
Chain-ID:
Latest Node Version:
Latest Block Height:

Arkeo is a free-market decentralized network for providing access to blockchain data. Its intended goal is to create a decentralized option for interacting with any blockchain (although not limited to) and its data.‚Äč


Binary: realio-networkd
Denom: ario
Symbol: RIO
Exponent: 18
Folder Chain: .realio-network
Key management
arkeod keys add arkeod keys add  --recoverarkeod keys listarkeod keys delete arkeod keys export arkeod keys import  .backup
Check balance
arkeod q bank balances $(arkeod keys show  -a)
Service
sudo journalctl -u arkeod -f --no-hostname -o catsudo systemctl start arkeodsudo systemctl stop arkeodsudo systemctl restart arkeodsudo systemctl status arkeodsudo systemctl daemon-reloadsudo systemctl enable arkeodsudo systemctl disable arkeodarkeod status 2>&1 | jq .SyncInfoecho $(arkeod tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.arkeo/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
arkeod tx staking create-validator \
--amount=000000uarkeo \
--moniker="" \
--pubkey=$(arkeod tendermint show-validator) \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id= \
--commission-rate=0. \
--commission-max-rate=0.20 \
--commission-max-change-rate=0. \
--min-self-delegation=1 \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
Edit Validator
arkeod tx staking edit-validator \
--new-moniker="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo" -y
arkeod tx staking edit-validator \
--identity="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--details="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--identity="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--details="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--identity="" \
--details="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--identity="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--details="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--identity="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--details="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--identity="" \
--details="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--commission-rate=0. \
--chain-id= \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"
arkeod tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id= \
--commission-rate=0. \
--from= \
--gas-adjustment="1.4" \
--fees="5000uarkeo"




arkeod status 2>&1 | jq .ValidatorInfoarkeod q staking validator $(arkeod keys show  --bech val -a)arkeod q slashing signing-info $(arkeod tendermint show-validator)arkeod tx slashing unjail --broadcast-mode=block --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod 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[[ $(arkeod q staking validator $(arkeod keys show  --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(arkeod status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "Your key status is ok" || echo -e "Your key status is error"arkeod q slashing signing-info $(arkeod tendermint show-validator)
Token management
arkeod tx distribution withdraw-all-rewards --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod tx distribution withdraw-rewards $(arkeod keys show  --bech val -a) --commission --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod tx staking delegate $(arkeod keys show  --bech val -a) 000000uarkeo --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod tx staking redelegate $(arkeod keys show  --bech val -a)  000000uarkeo --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod tx staking delegate  000000uarkeo --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod tx staking unbond $(arkeod keys show  --bech val -a) 000000uarkeo --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"arkeod tx bank send   000000uarkeo --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"
Governance
View Proposal
arkeod query gov proposal 
Vote
arkeod tx gov vote   --from  --chain-id  --gas-adjustment="1.4" --fees="5000uarkeo"
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/.arkeo/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/.arkeo/config/app.toml
Enable Indexing usually enabled by default
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.arkeo/config/config.toml
Disable Indexing
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.arkeo/config/config.toml
Reset Chain Data
arkeod tendermint unsafe-reset-all --home $HOME/.arkeo --keep-addr-book
Delete Node
WARNING! This action will remove all files related to the arkeod chain! Make sure you have backed up your priv_validator_key.json
sudo systemctl stop arkeod && \
sudo systemctl disable arkeod && \
rm /etc/systemd/system/arkeod.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf .arkeo && \
rm -rf $(which arkeod)
Genesis
wget -O $HOME/.arkeo/config/genesis.json "https://raw.githubusercontent.com/kynraze/service/main/testnet/arkeo/genesis.json"
Addrbook
Update every 1h
wget -O $HOME/.arkeo/config/addrbook.json "https://snap.kynraze.com/test/arkeo/addrbook.json"
List Peers:
PEERS= 
sed -i -e "s|^persistent_peers *=.*|persistent_peers = "$PEERS"|" $HOME/.arkeo/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-arkeo.sh https://raw.githubusercontent.com/kynraze/service/main/testnet/arkeo/auto.sh && chmod +x auto-arkeo.sh && ./auto-arkeo.sh
With StateSync
With Snapshot ||

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

Manual Installation
Setting vars




ARKEO_NODENAME=""

save and import variable

echo "export ARKEO_NODENAME=$ARKEO_NODENAME" >> $HOME/.bash_profile if [ ! $WALLET ]; then echo "export WALLET=wallet" >> $HOME/.bash_profile fi echo "export ARKEO_CHAIN_ID=" >> $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 Binary
Download Binary

wget https://snap.kynraze.com/test/arkeo/arkeod chmod +x arkeod mv arkeod $HOME/go/bin/

Build from source
Install Docker (skip if Docker is already installed)

sudo apt-get install ca-certificates curl gnupg lsb-release -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io -y

git clone https://github.com/arkeonetwork/arkeo cd arkeo git checkout master sudo make proto-gen install TAG=testnet

Verify that Binary successfully installed

arkeod 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/.arkeo/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/.arkeo/config/app.toml

Set Config Binary

arkeod config chain-id $ARKEO_CHAIN_ID arkeod config keyring-backend file arkeod config node tcp://localhost:657

Initialize

arkeod init $ARKEO_NODENAME --chain-id $ARKEO_CHAIN_ID

Get Genesis and Addrbook
Download genesis
wget -O $HOME/.arkeo/config/genesis.json "https://raw.githubusercontent.com/kynraze/service/main/testnet/arkeo/genesis.json"
Download Addrbook
wget -O $HOME/.arkeo/config/addrbook.json "https://snap.kynraze.com/test/arkeo/addrbook.json"
Set Seeds and Peers

PEERS="" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.arkeo/config/config.toml sed -i -e "s|^seeds *=.*|seeds = \"\"|" $HOME/.arkeo/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/.arkeo/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.arkeo/config/app.toml sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.arkeo/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.arkeo/config/app.toml

Create service file and start node
Create Service

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

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

[Install] WantedBy=multi-user.target EOF

Download Snapshot (Optional)

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

Start Service

sudo systemctl daemon-reload sudo systemctl enable arkeod sudo systemctl restart arkeod sudo journalctl -fu arkeod -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/.arkeo/config/config.toml
sudo systemctl stop arkeod
cp $HOME/.arkeo/data/priv_validator_state.json $HOME/.arkeo/priv_validator_state.json.backup
rm -rf $HOME/.arkeo/data

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

# Restart
sudo systemctl restart arkeod
sudo journalctl -fu arkeod -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 arkeod
arkeod tendermint unsafe-reset-all --home $HOME/.arkeo --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/.arkeo/config/config.toml

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

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