Sentinel Network

Decentralized Virtual Private Network The Sentinel ecosystem is a global network of autonomous dVPN applications that enable private and censorship resistant internet access

Valoper sentvaloper1pyn04fth38t9tvpa3fvfnn4xng06zsymthu6ua
Version

Loading...

Stage Mainnet
Last Block

Loading...

Chain

Loading...

IBC

Loading...

Status

Loading...

Explorer
Sentinel Network
Snapshot
Loading...

INSTALLATION

Depedency

Login to root

#### From user with sudoers access

$ sudo su -

Update and install packages for compiling
# apt update -y && sudo apt install curl git jq lz4 lzma build-essential zsh -y

User Management

Create user salinem

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

Sudo Management

Create file in /etc/sudoers.d/salinem-sudo
salinem  ALL=(ALL)   NOPASSWD: /usr/bin/systemctl daemon-reload, \
   /usr/bin/systemctl * dvpn-node*, \
   /usr/bin/journalctl -fu *, \
   /usr/bin/cp -rf /mainnet/salinem/systemd/* /etc/systemd/system/*, \
   /usr/bin/cp /mainnet/salinem/systemd/* /etc/systemd/system/*

FHS / Filesystem Hierarchy

Login to User salinem

#### From user with sudoers access

$ sudo su - salinem

#### OR If you started from user root do this

# su - salinem

We create FHS in /mainnet/salinem
   /
   /bin
   /etc
   /mainnet/salinem
   |           |
   |           |---bin
   |           |    |------go
   |           |    |       |---bin
   |           |---conf
   |           |---source
   |           |---systemd
   |           |---lib
   |           |---tmp
   /dev
   /mnt
Create 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

Deploy Application

The Purpose is extract from file compression and move to ${HOME}/bin
cd ${HOME}/tmp 
wget -c https://github.com/sentinel-official/hub/releases/download/v0.11.5/sentinelhub 
filename=$(ls -1)
check_extension_gz=$(echo $filename | grep -i "tar.gz" | wc -l)
check_extension_zip=$(echo $filename | grep -i "zip" | wc -l)
check_extension_elf=$(echo $filename | egrep -i "zip|tar.gz" | wc -l)
if [ $check_extension_gz -eq 1 ]
then
check_data=$(tar tf ${filename} | grep  )
tar xvf  ${filename} -C . 
mv ${check_data} ${HOME}/bin/
fi
if [ $check_extension_unzip -eq 1 ]
then
unzip ${filename} 
check_data=$(ls -1 | grep -v ${filename})
mv $check_data ${HOME}/bin/
fi
if [ $check_extension_elf -eq 0 ]
mv sentinelhub  ${HOME}/bin
fi

Environment and Variable

If Using ZSH
# 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=sentinelhub-2" >> $HOME/.zshrc
echo "export WALLET_NAME=mywallet" >> $HOME/.zshrc
echo "export MONIKER=MYNODE"  >> $HOME/.zshrc
source ~/.zshrc
or
If Using BASH
# 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=sentinelhub-2" >> $HOME/.bashrc
echo "export WALLET_NAME=mywallet" >> $HOME/.bashrc
echo "export MONIKER=MYNODE"  >> $HOME/.bashrc
source ~/.bashrc

Initiation Moniker

sentinelhub init --chain-id $CHAIN_ID "$MONIKER"

Deploy Genesis

curl -Ls  https://roomit.xyz/genesis/mainnet/dvpn/genesis.json > $HOME/.sentinelhub/config/genesis.json 

Deploy Addressbook

curl -Ls  https://roomit.xyz/addressbook/mainnet/dvpn/addrbook.json > $HOME/.sentinelhub/config/genesis.json 

Change Custom Port (optional)

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/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${RPC}\"%" $HOME/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PROF_RPC}\"%" $HOME/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${P2P}\"%" $HOME/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${METRICS}\"%" $HOME/.sentinelhub/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${API}\"%" $HOME/.sentinelhub/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${GRPC}\"%" $HOME/.sentinelhub/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${WEBGRPC}\"%" $HOME/.sentinelhub/config/app.toml

Change Prune Parameter (optional)

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

Create Service Systemd

Login to root

#### From user with sudoers access

$ sudo su -

The first we made in user salinem ${HOME}/systemd/
cat > ${HOME}/systemd/dvpn-node.service << EOF
[Unit]
Description= Tendermint Daemon
After=network-online.target

[Service]
User=salinem
Group=salinem
ExecStart=/mainnet/salinem/bin/sentinelhub start  --home=/mainnet/salinem/.sentinelhub
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF
Copy from ${HOME}/systemd/dvpn-node.service to /etc/systemd/system/
sudo cp -rf /mainnet/salinem/systemd/dvpn-node.service /etc/systemd/system/

Service Management

Reload Daemon
sudo systemctl daemon-reload
Enable Service when booting
sudo systemctl enable dvpn-node.service
Start Service
sudo systemctl start dvpn-node.service
Check Service and Log
sudo systemctl status dvpn-node.service
sudo journalctl -fu dvpn-node.service
After All running well, You can speed up blocks using 2 methods Statesync or Snapshot

STATE-SYNC

Deployment Statesync

1. Create file or we assume filename already created statesync.sh, edit this file and put code below

#!/bin/bash

SNAP_RPC="https://rpc.dvpn.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/.sentinelhub/config/config.toml

2. Stop Service

sudo systemctl stop dvpn-node

Notes: for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub

3. Execute Script

bash statesync.sh

4. Reset Node

# On some tendermint chains
sentinelhub unsafe-reset-all

# On other tendermint chains
sentinelhub tendermint unsafe-reset-all --home $HOME/.sentinelhub --keep-addr-book

5. Start Services

sudo systemctl start dvpn-node

SNAPSHOT

Deployment Snapshot

1. Install Compression/Decompression Tools

sudo apt install lzma -y

2. Download Snapshot
Filename |
File Size |

SNAPSHOT=$(curl -s https://roomit.xyz/snapshot/mainnet/dvpn/ | 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/mainnet/dvpn/${SNAPSHOT} --inet4-only

3. Stop Your Service Blockchain

sudo systemctl stop dvpn-node

Notes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub

4. Backup State Validator

cp ${HOME}/.sentinelhub/data/priv_validator_state.json ${HOME}/.sentinelhub/priv_validator_state.json

4. Reset Node Blockchain

sentinelhub tendermint unsafe-reset-all --home $HOME/.sentinelhub --keep-addr-book

5. Extract Data Snapshot

lzma -d -c ${SNAPSHOT} | tar -xv -C $HOME/.sentinelhub 

6. Restore State Validator

cp ${HOME}/.sentinelhub/priv_validator_state.json ${HOME}/.sentinelhub/data/priv_validator_state.json

7. Start Node Blockchain

sudo systemctl start dvpn-node

ENDPOINT PUBLIC

RPC

https://rpc.dvpn.roomit.xyz

API

https://api.dvpn.roomit.xyz

gRPC

grpc.dvpn.roomit.xyz:8443

Example Call:

Assume, you have done install grpcurl

grpcurl grpc.dvpn.roomit.xyz:8443 list

GENESIS

Deployment Genesis

Stop Your Service Blockchain
sudo systemctl stop dvpn-node

Notes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub

Download And Deploy
curl -Ls  https://roomit.xyz/genesis/mainnet/dvpn/genesis.json > $HOME/.sentinelhub/config/genesis.json 
Start Your Service Blockchain
sudo systemctl start dvpn-node

ADDRESSBOOK

Deployment Addressbook

Stop Your Service Blockchain
sudo systemctl stop dvpn-node

Notes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub

Download And Deploy
curl -Ls  https://roomit.xyz/addressbook/mainnet/dvpn/addrbook.json > $HOME/.sentinelhub/config/genesis.json 
Start Your Service Blockchain
sudo systemctl start dvpn-node

PEERS

SEEDS

Seed Peers

Our seeds peer for Sentinel Network,
you can edit seeds = "" in ${HOME}/.sentinelhub/config/config.toml
08bc9afd0cac4ae6cf8f1877920b0cc7e58a6f42@seeds.tendermint.roomit.xyz:40004

PERSISTENT

Persistent Peers

Our persistent peers for Sentinel Network,
you can add our persistent persistent_peers = "" in ${HOME}/.sentinelhub/config/config.toml
b46d8fea2e951ba21594c047c8746ab6dc315cea@p2p.tendermint.roomit.xyz:16604

All Persistent Peers Without Selection

All Persistent Peers Without Selection is mean we only get peer used 1 RPC endpoint or used 1 RPC.
PERSISTENT_PEERS="Data Processing"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" ${HOME}/.sentinelhub/config/config.toml

All Persistent Peers With Selection

All Persistent Peers With Selection is mean we collet data from any RPC and doing selection with method similar frequency and connection test.
PERSISTENT_PEERS=| Data Processing |
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" ${HOME}/.sentinelhub/config/config.toml

PRUNE

Change Prune Parameter

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

PORT

Change Custom Port

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/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${RPC}\"%" $HOME/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PROF_RPC}\"%" $HOME/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${P2P}\"%" $HOME/.sentinelhub/config/config.toml 
sed -i.bak -e "s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${METRICS}\"%" $HOME/.sentinelhub/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${API}\"%" $HOME/.sentinelhub/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${GRPC}\"%" $HOME/.sentinelhub/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${WEBGRPC}\"%" $HOME/.sentinelhub/config/app.toml

CLI

Setup Environment

IMPORTANT! You must setup this environment before used CLI
If you using bash shell
echo "export RPC="http://localhost:$(head -n100 ${HOME}/.sentinelhub/config/config.toml | grep "[rpc]" | grep "^laddr" | awk -F":" '{print $3}' | tr -d "\"" |  tr "\n" " " |sed "s/ //")"" >> ${HOME}/.bashrc
echo "export UNIT="udvpn"" >> ${HOME}/.bashrc
echo "export MONIKER="NODE_DEPLOY_ROOMIT_SCRIPT"" >> ${HOME}/.bashrc
echo "export CHAIN_ID="sentinelhub-2"" >> ${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}/.sentinelhub/config/config.toml | grep "[rpc]" | grep "^laddr" | awk -F":" '{print $3}' | tr -d "\"" |  tr "\n" " " |sed "s/ //")"" >> ${HOME}/.zshrc
echo "export UNIT="udvpn"" >> ${HOME}/.zshrc
echo "export MONIKER="NODE_DEPLOY_ROOMIT_SCRIPT"" >> ${HOME}/.zshrc
echo "export CHAIN_ID="sentinelhub-2"" >> ${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 Fees

Default setting for gas fee Sentinel Network
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4

Keys Management

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

Add New Key
sentinelhub keys add mywallet --home ${HOME}/.sentinelhub 
Recover Key
Recovery key with passpharse
sentinelhub keys add mywallet --recover --home ${HOME}/.sentinelhub
Recovery key with passpharse
sentinelhub keys add mywallet --recover --keyring-backend os --home ${HOME}/.sentinelhub
List Key
sentinelhub keys list --home ${HOME}/.sentinelhub
Delete Key
sentinelhub keys delete mywallet --home ${HOME}/.sentinelhub
Export Key
sentinelhub keys export mywallet --home ${HOME}/.sentinelhub
Import Key
sentinelhub keys import mywallet mywallet.backup --home ${HOME}/.sentinelhub
Show All Balances Address
for mywallet in `sentinelhub keys list --home ${HOME}/.sentinelhub --output json| jq -r ".[] .address"`
do
    sentinelhub q bank balances ${mywallet} --home ${HOME}/.sentinelhub --chain-id ${CHAIN_ID} --node ${RPC}
done
Show All Balances Address
sentinelhub q bank balances mywallet_public_address --home ${HOME}/.sentinelhub --chain-id ${CHAIN_ID} --node ${RPC}

Validator Management

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

Create New Validator
Before create validator make sure you have balance in your wallet (mywallet).
sentinelhub tx staking create-validator \
--amount=1000000${UNIT} \
--pubkey=$(sentinelhub tendermint show-validator --home ${HOME}/.sentinelhub) \
--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}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y
Edit Validator
Before edit validator make sure you have balance in your wallet (mywallet).
sentinelhub tx staking edit-validator \
--pubkey=$(sentinelhub tendermint show-validator --home ${HOME}/.sentinelhub) \
--moniker="${MONIKER}" \
--identity="${PROFILE}" \
--details="${DETAILS}" \
--website="${WEBSITE}" \
--chain-id=${CHAIN_ID} \
--commission-rate=0.05 \
--from=mywallet \
--node ${RPC} \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y
Edit Validator
sentinelhub status 2>&1 | jq .ValidatorInfo
Get Status Syncing Block
sentinelhub status 2>&1 | jq .SyncInfo
Get Peer Own Id
echo $(sentinelhub tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.sentinelhub/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Get ALl Peer Node
curl -sS ${RPC}/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Unjail Validator
sentinelhub tx slashing unjail \
--from mywallet \
--chain-id ${CHAIN_ID} \
--home ${HOME}/.sentinelhub \
--node  ${RPC} \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y
Jail Reason
sentinelhub query slashing signing-info $(sentinelhub tendermint show-validator) \
--node  ${RPC} \
--home ${HOME}/.sentinelhub
List All Active Validator
sentinelhub  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
List All Inactive Validator
sentinelhub 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
Show Validator Details
sentinelhub query staking validator \
$(sentinelhub keys show \ 
$(sentinelhub keys list --home ${HOME}/.sentinelhub --output json| jq -r ".[] .address" | tail -n1) \
--bech val -a) \
--chain-id ${CHAIN_ID} \
--node $RPC

Token Management

Withdraw All Reward From Validator
sentinelhub tx distribution withdraw-all-rewards \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y
Withdraw Commision Reward From Validator
sentinelhub tx distribution withdraw-rewards $(sentinelhub keys show mywallet --bech val -a) \
--commission \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 
Delegate My Token to Own Validator
sentinelhub  tx staking delegate prefixVALOPExxxxxx 100000${UNIT} \ 
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y
Redelegate Tokens to Another Validator
sentinelhub tx staking redelegate $(sentinelhub keys show wallet --bech val -a)  100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 
Unbound or Unstake Your Tokens
sentinelhub tx staking unbond $(sentinelhub keys show wallet --bech val -a) 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 
Send tokens to the wallet
sentinelhub tx bank send wallet  100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 

Governance Management

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

List All Proposals
sentinelhub  query gov proposals
Voting
### vote yes
sentinelhub tx gov vote 1 yes \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 

### vote no
sentinelhub tx gov vote 1 no \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 

### vote abstain
sentinelhub tx gov vote 1 abstain \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y 

### vote No With Veto
sentinelhub tx gov vote 1 nowithveto \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.sentinelhub \
--gas=500000 --gas-prices=0.1udvpn --gas-adjustment=1.4 \
-y   

VALIDATORS LIST

Validator Details Commission Status Jailed Staked USD

GOVERNANCE

Governance This Month |
Proposal Description Status Voting Start Voting End Total Voted Participant

NETWORK SCAN

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.dvpn.roomit.xyz

P2P Network Moniker RPC Remote IP Status

MAP NODE

IP Address City Region Country Latitude Longitude