Description Not Available
Valoper | tarkeovaloper1gn5rsz6mg4vkytqcft29lw9cgdyuaavz9aa4s5 |
---|---|
Version | Loading... |
Stage | Testnet |
Last Block | Loading... |
Chain | Loading... |
Status | Loading... |
Explorer | Arkeo Blockchain |
Snapshot | Loading... |
Update and install packages for compiling#### From user with sudoers access
$ sudo su -
# apt update -y && sudo apt install curl git jq lz4 lzma build-essential zsh -y
Notes : make sure dont running validator used user root !!!
Notes :
We never used user salinem in our production, This user is just an example.
We assume you have already mounted big size DISK in /mainnet
# mkdir -p /mainnet && useradd -m -d /mainnet/salinem -s /bin/zsh salinem
salinem ALL=(ALL) NOPASSWD: /usr/bin/systemctl daemon-reload, \
/usr/bin/systemctl * arkeo-node*, \
/usr/bin/journalctl -fu *, \
/usr/bin/cp -rf /mainnet/salinem/systemd/* /etc/systemd/system/*, \
/usr/bin/cp /mainnet/salinem/systemd/* /etc/systemd/system/*
We create FHS in /mainnet/salinem#### From user with sudoers access
$ sudo su - salinem
#### OR If you started from user root do this
# su - salinem
/ /bin /etc /mainnet/salinem | | | |---bin | | |------go | | | |---bin | |---conf | |---source | |---systemd | |---lib | |---tmp /dev /mntCreate Directory, make sure you have already login with user salinem
#### Create FHS
mkdir -p ${HOME}/tmp
mkdir -p ${HOME}/lib
mkdir -p ${HOME}/bin
mkdir -p ${HOME}/conf
mkdir -p ${HOME}/source
mkdir -p ${HOME}/systemd
wget https://go.dev/dl/go1.21.8.linux-amd64.tar.gz
tar xfv go1.21.8.linux-amd64.tar.gz
mv go ${HOME}/bin
cd ${HOME}/source
git clone https://github.com/arkeonetwork/arkeo arkeo
cd ${HOME}/source/arkeo
git fetch && git checkout
make build
cp build/arkeod ${HOME}/bin/
# Set Go path to $PATH variable
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> $HOME/.zshrc
echo "export GOPATH="${HOME}/lib" >> $HOME/.zshrc
echo "export GOMAXPROCS=2" >> $HOME/.zshrc
echo "export CHAIN_ID=arkeo" >> $HOME/.zshrc
echo "export WALLET_NAME=mywallet" >> $HOME/.zshrc
echo "export MONIKER=MYNODE" >> $HOME/.zshrc
source ~/.zshrc
or # Set Go path to $PATH variable
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> $HOME/.bashrc
echo "export GOPATH="${HOME}/lib" >> >> $HOME/.bahsrc
echo "export GOMAXPROCS=2" >> $HOME/.bashrc
echo "export CHAIN_ID=arkeo" >> $HOME/.bashrc
echo "export WALLET_NAME=mywallet" >> $HOME/.bashrc
echo "export MONIKER=MYNODE" >> $HOME/.bashrc
source ~/.bashrc
arkeod init --chain-id $CHAIN_ID "$MONIKER"
curl -Ls https://roomit.xyz/genesis/testnet/arkeo/genesis.json > $HOME/.arkeo/config/genesis.json
curl -Ls https://roomit.xyz/addressbook/testnet/arkeo/addrbook.json > $HOME/.arkeo/config/genesis.json
If you have conflicted port or running tendermint with 1 environment node. you need change the ports otherwise you have conflicted ports.
PROXY_APP="16505"
RPC="16705"
PROF_RPC="1105"
P2P="16605"
METRICS="16805"
API="1205"
GRPC="1305"
WEBGRPC="1405"
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${PROXY_APP}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${RPC}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PROF_RPC}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${P2P}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${METRICS}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${API}\"%" $HOME/.arkeo/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${GRPC}\"%" $HOME/.arkeo/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${WEBGRPC}\"%" $HOME/.arkeo/config/app.toml
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/.arkeo/config/app.toml
The first we made in user salinem ${HOME}/systemd/#### From user with sudoers access
$ sudo su -
cat > ${HOME}/systemd/arkeo-node.service << EOF
[Unit]
Description= Tendermint Daemon
After=network-online.target
[Service]
User=salinem
Group=salinem
ExecStart=/mainnet/salinem/bin/arkeod start --home=/mainnet/salinem/.arkeo
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
Copy from ${HOME}/systemd/arkeo-node.service to /etc/systemd/system/ sudo cp -rf /mainnet/salinem/systemd/arkeo-node.service /etc/systemd/system/
sudo systemctl daemon-reload
Enable Service when booting sudo systemctl enable arkeo-node.service
Start Service sudo systemctl start arkeo-node.service
Check Service and Log sudo systemctl status arkeo-node.service
sudo journalctl -fu arkeo-node.service
statesync.sh
, edit this file and put code below
#!/bin/bash
SNAP_RPC="https://rpc.arkeo.roomit.xyz:443"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.arkeo/config/config.toml
2. Stop Service
sudo systemctl stop arkeo-node
Notes: for systemd init blockchain, adjust with your name of service. Example : systemctl stop arkeod
3. Execute Script
bash statesync.sh
4. Reset Node
# On some tendermint chains
arkeod unsafe-reset-all
# On other tendermint chains
arkeod tendermint unsafe-reset-all --home $HOME/.arkeo --keep-addr-book
5. Start Services
sudo systemctl start arkeo-node
sudo apt install lzma -y
2. Download Snapshot
SNAPSHOT=$(curl -s https://roomit.xyz/snapshot/testnet/arkeo/ | grep -i "<a href=" | grep lzma | grep -v md5sum | awk -F"=" '{print $2}' | sed 's/"//g' | sed "s/>//g" | sed "s/ //g")
wget -c https://roomit.xyz/snapshot/testnet/arkeo/${SNAPSHOT} --inet4-only
3. Stop Your Service Blockchain
sudo systemctl stop arkeo-node
4. Backup State ValidatorNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop arkeod
cp ${HOME}/.arkeo/data/priv_validator_state.json ${HOME}/.arkeo/priv_validator_state.json
4. Reset Node Blockchain
arkeod tendermint unsafe-reset-all --home $HOME/.arkeo --keep-addr-book
5. Extract Data Snapshot
lzma -d -c ${SNAPSHOT} | tar -xv -C $HOME/.arkeo
6. Restore State Validator
cp ${HOME}/.arkeo/priv_validator_state.json ${HOME}/.arkeo/data/priv_validator_state.json
7. Start Node Blockchain
sudo systemctl start arkeo-node
https://rpc.arkeo.roomit.dev
https://api.arkeo.roomit.dev
grpc.arkeo.roomit.dev:8443
Assume, you have done install grpcurl
grpcurl grpc.arkeo.roomit.dev:8443 list
sudo systemctl stop arkeo-node
Download And DeployNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop arkeod
curl -Ls https://roomit.xyz/genesis/testnet/arkeo/genesis.json > $HOME/.arkeo/config/genesis.json
Start Your Service Blockchain sudo systemctl start arkeo-node
sudo systemctl stop arkeo-node
Download And DeployNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop arkeod
curl -Ls https://roomit.xyz/addressbook/testnet/arkeo/addrbook.json > $HOME/.arkeo/config/genesis.json
Start Your Service Blockchain sudo systemctl start arkeo-node
08bc9afd0cac4ae6cf8f1877920b0cc7e58a6f42@seeds.tendermint.roomit.xyz:40000
feea1c608d7c0014c42f32adef86dbe31d34bc8e@p2p.tendermint.roomit.xyz:26600
PERSISTENT_PEERS="Data Processing"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" ${HOME}/.arkeo/config/config.toml
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/.arkeo/config/app.toml
If you have conflicted port or running tendermint with 1 environment node. you need change the ports otherwise you have conflicted ports.
PROXY_APP="16505"
RPC="16705"
PROF_RPC="1105"
P2P="16605"
METRICS="16805"
API="1205"
GRPC="1305"
WEBGRPC="1405"
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${PROXY_APP}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${RPC}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PROF_RPC}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${P2P}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${METRICS}\"%" $HOME/.arkeo/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${API}\"%" $HOME/.arkeo/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${GRPC}\"%" $HOME/.arkeo/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${WEBGRPC}\"%" $HOME/.arkeo/config/app.toml
echo "export RPC="http://localhost:$(head -n100 ${HOME}/.arkeo/config/config.toml | grep "[rpc]" | grep "^laddr" | awk -F":" '{print $3}' | tr -d "\"" | tr "\n" " " |sed "s/ //")"" >> ${HOME}/.bashrc
echo "export UNIT="uarkeo"" >> ${HOME}/.bashrc
echo "export MONIKER="NODE_DEPLOY_ROOMIT_SCRIPT"" >> ${HOME}/.bashrc
echo "export CHAIN_ID="arkeo"" >> ${HOME}/.zshrc
echo "export PROFILE="PGP_KEY_OF_KEYBASE"" >> ${HOME}/.bashrc
echo "export DETAILS="Describes Your Validator"" >> ${HOME}/.bashrc
echo "export WEBSITE="https://yourwebsite.com"" >> ${HOME}/.bashrc
source ${HOME}/.bashrc
If you using zsh shell echo "export RPC="http://localhost:$(head -n100 ${HOME}/.arkeo/config/config.toml | grep "[rpc]" | grep "^laddr" | awk -F":" '{print $3}' | tr -d "\"" | tr "\n" " " |sed "s/ //")"" >> ${HOME}/.zshrc
echo "export UNIT="uarkeo"" >> ${HOME}/.zshrc
echo "export MONIKER="NODE_DEPLOY_ROOMIT_SCRIPT"" >> ${HOME}/.zshrc
echo "export CHAIN_ID="arkeo"" >> ${HOME}/.zshrc
echo "export PROFILE="PGP_KEY_OF_KEYBASE"" >> ${HOME}/.zshrc
echo "export DETAILS="Describes Your Validator"" >> ${HOME}/.zshrc
echo "export WEBSITE="https://yourwebsite.com"" >> ${HOME}/.zshrc
source ${HOME}/.zshrc
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4
We assume,You have complete identities. Moniker, Website, Security and Details Your Validator Install jq package for management json format
Ubuntu
apt install jq
CentOS
yum install jq
Arch Linux
pacman -S jq
arkeod keys add mywallet --home ${HOME}/.arkeo
arkeod keys add mywallet --recover --home ${HOME}/.arkeo
Recovery key with passpharse arkeod keys add mywallet --recover --keyring-backend os --home ${HOME}/.arkeo
arkeod keys list --home ${HOME}/.arkeo
arkeod keys delete mywallet --home ${HOME}/.arkeo
arkeod keys export mywallet --home ${HOME}/.arkeo
arkeod keys import mywallet mywallet.backup --home ${HOME}/.arkeo
for mywallet in `arkeod keys list --home ${HOME}/.arkeo --output json| jq -r ".[] .address"`
do
arkeod q bank balances ${mywallet} --home ${HOME}/.arkeo --chain-id ${CHAIN_ID} --node ${RPC}
done
arkeod q bank balances mywallet_public_address --home ${HOME}/.arkeo --chain-id ${CHAIN_ID} --node ${RPC}
We assume,You have complete identities. Moniker, Website, Security and Details Your Validator Install jq package for management json format
Ubuntu
apt install jq
CentOS
yum install jq
Arch Linux
pacman -S jq
arkeod tx staking create-validator \
--amount=1000000${UNIT} \
--pubkey=$(arkeod tendermint show-validator --home ${HOME}/.arkeo) \
--moniker="${MONIKER}" \
--identity="${PROFILE}" \
--details="${DETAILS}" \
--website="${WEBSITE}" \
--chain-id=${CHAIN_ID} \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--from=mywallet \
--node ${RPC} \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod tx staking edit-validator \
--pubkey=$(arkeod tendermint show-validator --home ${HOME}/.arkeo) \
--moniker="${MONIKER}" \
--identity="${PROFILE}" \
--details="${DETAILS}" \
--website="${WEBSITE}" \
--chain-id=${CHAIN_ID} \
--commission-rate=0.05 \
--from=mywallet \
--node ${RPC} \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod status 2>&1 | jq .ValidatorInfo
arkeod status 2>&1 | jq .SyncInfo
echo $(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 ${RPC}/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
arkeod tx slashing unjail \
--from mywallet \
--chain-id ${CHAIN_ID} \
--home ${HOME}/.arkeo \
--node ${RPC} \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod query slashing signing-info $(arkeod tendermint show-validator) \
--node ${RPC} \
--home ${HOME}/.arkeo
arkeod q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
arkeod q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
arkeod query staking validator \
$(arkeod keys show \
$(arkeod keys list --home ${HOME}/.arkeo --output json| jq -r ".[] .address" | tail -n1) \
--bech val -a) \
--chain-id ${CHAIN_ID} \
--node $RPC
arkeod tx distribution withdraw-all-rewards \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod tx distribution withdraw-rewards $(arkeod keys show mywallet --bech val -a) \
--commission \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod tx staking delegate prefixVALOPExxxxxx 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod tx staking redelegate $(arkeod keys show wallet --bech val -a) 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod tx staking unbond $(arkeod keys show wallet --bech val -a) 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
arkeod tx bank send wallet 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
We assume,You have complete identities. Moniker, Website, Security and Details Your Validator Install jq package for management json format
Ubuntu
apt install jq
CentOS
yum install jq
Arch Linux
pacman -S jq
arkeod query gov proposals
### vote yes
arkeod tx gov vote 1 yes \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
### vote no
arkeod tx gov vote 1 no \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
### vote abstain
arkeod tx gov vote 1 abstain \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
### vote No With Veto
arkeod tx gov vote 1 nowithveto \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.arkeo \
--gas=auto --gas-prices=0.1uarkeo --gas-adjustment=1.4 \
-y
Validator | Details | Commission | Status | Jailed | Staked |
---|
Proposal | Description | Status | Voting Start | Voting End | Total Voted | Participant |
---|
Network scan is tools for check node where the node open direct port rpc from internet without proxy.
This data collect from our RPC only https://rpc.arkeo.roomit.dev
P2P | Network | Moniker | RPC | Remote IP | Status |
---|
IP Address | City | Region | Country | Latitude | Longitude |
---|