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... |
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 * 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/*
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
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
# 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 # 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
sentinelhub init --chain-id $CHAIN_ID "$MONIKER"
curl -Ls https://roomit.xyz/genesis/mainnet/dvpn/genesis.json > $HOME/.sentinelhub/config/genesis.json
curl -Ls https://roomit.xyz/addressbook/mainnet/dvpn/addrbook.json > $HOME/.sentinelhub/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/.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
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
The first we made in user salinem ${HOME}/systemd/#### From user with sudoers access
$ sudo su -
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/
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
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
sudo apt install lzma -y
2. Download Snapshot
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
4. Backup State ValidatorNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub
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
https://rpc.dvpn.roomit.xyz
https://api.dvpn.roomit.xyz
grpc.dvpn.roomit.xyz:8443
Assume, you have done install grpcurl
grpcurl grpc.dvpn.roomit.xyz:8443 list
sudo systemctl stop dvpn-node
Download And DeployNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub
curl -Ls https://roomit.xyz/genesis/mainnet/dvpn/genesis.json > $HOME/.sentinelhub/config/genesis.json
Start Your Service Blockchain sudo systemctl start dvpn-node
sudo systemctl stop dvpn-node
Download And DeployNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop sentinelhub
curl -Ls https://roomit.xyz/addressbook/mainnet/dvpn/addrbook.json > $HOME/.sentinelhub/config/genesis.json
Start Your Service Blockchain sudo systemctl start dvpn-node
08bc9afd0cac4ae6cf8f1877920b0cc7e58a6f42@seeds.tendermint.roomit.xyz:40004
b46d8fea2e951ba21594c047c8746ab6dc315cea@p2p.tendermint.roomit.xyz:16604
PERSISTENT_PEERS="Data Processing"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" ${HOME}/.sentinelhub/config/config.toml
PERSISTENT_PEERS=| Data Processing |
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" ${HOME}/.sentinelhub/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/.sentinelhub/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/.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
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=500000 --gas-prices=0.1udvpn --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
sentinelhub keys add mywallet --home ${HOME}/.sentinelhub
sentinelhub keys add mywallet --recover --home ${HOME}/.sentinelhub
Recovery key with passpharse sentinelhub keys add mywallet --recover --keyring-backend os --home ${HOME}/.sentinelhub
sentinelhub keys list --home ${HOME}/.sentinelhub
sentinelhub keys delete mywallet --home ${HOME}/.sentinelhub
sentinelhub keys export mywallet --home ${HOME}/.sentinelhub
sentinelhub keys import mywallet mywallet.backup --home ${HOME}/.sentinelhub
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
sentinelhub q bank balances mywallet_public_address --home ${HOME}/.sentinelhub --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
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
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
sentinelhub status 2>&1 | jq .ValidatorInfo
sentinelhub status 2>&1 | jq .SyncInfo
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/".*//')
curl -sS ${RPC}/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
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
sentinelhub query slashing signing-info $(sentinelhub tendermint show-validator) \
--node ${RPC} \
--home ${HOME}/.sentinelhub
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
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
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
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
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
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
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
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
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
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
sentinelhub query gov proposals
### 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
Validator | Details | Commission | Status | Jailed | Staked | USD |
---|
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.dvpn.roomit.xyz
P2P | Network | Moniker | RPC | Remote IP | Status |
---|
IP Address | City | Region | Country | Latitude | Longitude |
---|