Validator247
  • πŸ› οΈValidator247
  • πŸ”Mainnet
    • πŸ”‹MantraChain
    • πŸ”‹Shentu
    • πŸ”‹Nibiru
    • πŸ”‹Dymension
    • πŸ”‹Arch way
    • πŸ”‹Pactus
    • πŸ”‹SEDA
    • πŸ”‹Entangle
    • πŸ”‹SelfChain
    • πŸ”‹Penumbra
    • πŸ”‹ZetaChain
    • πŸ”‹Elys Network
  • πŸ”Testnet
    • πŸ’ RPC Node 0G_Lab
    • πŸ’ 0G_storage-node-V3_Galileo
    • πŸ’ XRPL EVM network
    • πŸ’ Initia
    • πŸ’ MantraChain-Dukong
    • πŸ’ AlignedLayer
    • πŸ’ Warden Protocol
    • πŸ’ Airchains - varanasi-1
    • πŸ’ Airchains
    • πŸ’ Hedge
    • πŸ’ Celestia
    • πŸ’ Mantrachain - Hongbai
    • πŸ’ 0G_Lab
    • πŸ’ Galactica
    • πŸ’ Penumbra
    • πŸ’ Side Protocol
    • πŸ’ Avail
    • πŸ’ Entangle
    • πŸ’ Namada
    • πŸ’ Autonity
    • πŸ’ 0G Newton - V2
    • πŸ’ Empeiria
  • πŸ’ Tanssi
  • πŸ’ Fiamma Chain
  • πŸ’ Story Protocol
  • πŸ’ Nillion
  • πŸ’ Prysm
  • πŸ’ Octra-Labs
  • πŸ’ Pipe Network
  • 🏁EigenLayer testnet
  • ❎Overview of the Initia Project
  • πŸ’²Initia: Integrating L1 and L2 for a Future-Ready Blockchain Ecosystem
  • IBC
  • πŸ‰Cosmos Wasm Smart Contracts
  • 🐣Foundry install
  • Group 1
    • 🐣hetzner Pass
  • Page 1
Powered by GitBook
On this page
  • Public Endpoints
  • Explorer - Delegate / Stake for me !
  • Update system
  • Install Go
  • Install Node
  • Initialize Node
  • Download Genesis & Addrbook
  • Create Service
  • State Sync
  • Snapshot
  • Launch Node
  1. Mainnet

Entangle

Omnichain Made Easy

Info

https://twitter.com/Entanglefi https://discord.gg/entangle

Public Endpoints

RPC https://entangle-rpc.validator247.com

API https://entangle-api.validator247.com

Explorer - Delegate / Stake for me !

https://explorer.entangle.fi/validators/entvaloper12spzgnh3aqrpnyv4kmev2qqkp3hszw7nw48jd9

Update system

sudo apt update

sudo apt-get install git curl build-essential make jq gcc snapd chrony lz4 tmux unzip bc -y

Install Go

rm -rf $HOME/go
sudo rm -rf /usr/local/go
cd $HOME
curl https://dl.google.com/go/go1.20.5.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile
go version

Install Node

cd $HOME

rm -rf entangle-blockchain

git clone https://github.com/Entangle-Protocol/entangle-blockchain.git

cd entangle-blockchain

git checkout main

make install

entangled version

Initialize Node

entangled init <Your_NodeName> --chain-id=entangle_33033-1

Download Genesis & Addrbook

curl -L -o addrbook.json https://raw.githubusercontent.com/Validator247/Entangle-Mainnet/main/addrbook.json
curl -L -o genesis.json https://raw.githubusercontent.com/Validator247/Entangle-Mainnet/main/genesis.json

Create Service

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

[Service]
User=$USER
ExecStart=$(which entangled) start --home /root/.entangled --chain-id entangle_33033-1
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable entangled

State Sync

Stop node and reset the data

sudo systemctl stop entangled
cp $HOME/.entangled/data/priv_validator_state.json $HOME/.entangled/priv_validator_state.json.backup
entangled tendermint unsafe-reset-all --home $HOME/.entangled --keep-addr-book

Configure the state sync

STATE_SYNC_RPC=https://entangle-rpc.validator247.com:443
LATEST_HEIGHT=$(curl -s $STATE_SYNC_RPC/block | jq -r .result.block.header.height)
SYNC_BLOCK_HEIGHT=$(($LATEST_HEIGHT - 1000))
SYNC_BLOCK_HASH=$(curl -s "$STATE_SYNC_RPC/block?height=$SYNC_BLOCK_HEIGHT" | jq -r .result.block_id.hash)

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

mv $HOME/.entangled/priv_validator_state.json.backup $HOME/.entangled/data/priv_validator_state.json

Restart Node & Check Logs

sudo systemctl restart entangled
sudo journalctl -u entangled -f -o cat

Snapshot

sudo systemctl stop entangled

cp $HOME/.entangled/data/priv_validator_state.json $HOME/.entangled/priv_validator_state.json.backup
entangled tendermint unsafe-reset-all --home ~/.entangled/ --keep-addr-book
curl https://snapshot.validatorvn.com/entangle/data.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.entangled
mv $HOME/.entangled/priv_validator_state.json.backup $HOME/.entangled/data/priv_validator_state.json

sudo systemctl restart entangled && sudo journalctl -u entangled -f -o cat

Launch Node

sudo systemctl restart entangled
journalctl -u entangled -f -o cat

Key management

Add new key

entangled keys add wallet

Recover existing key

entangled keys add wallet --recover

Get bech32 to hex wallet

echo "0x$(entangled debug addr $(entangled keys show wallet -a) | grep hex | awk '{print $3}')"

List all keys

entangled keys list

Delete key

entangled keys delete wallet

Export key to the file

entangled keys export wallet

Import key from the file

entangled keys import wallet wallet.backup

Wallet balance

entangled q bank balances $(entangled keys show wallet -a)

Token management

Withdraw rewards from all validators

entangled tx distribution withdraw-all-rewards --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Withdraw rewards and commissions from your validator

entangled tx distribution withdraw-rewards $(entangled keys show wallet --bech val -a) --commission --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Delegate tokens to yourself

entangled tx staking delegate $(entangled keys show wallet --bech val -a) 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Delegate tokens to validator

entangled tx staking delegate <TO_VALOPER_ADDRESS> 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Redelegate tokens to another validator

entangled tx staking redelegate $(entangled keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Unbond tokens from your validator

entangled tx staking unbond $(entangled keys show wallet --bech val -a) 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Send tokens to the wallet

entangled tx bank send wallet <TO_WALLET_ADDRESS> 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Validator management

Validator info

entangled status 2>&1 | jq .ValidatorInfo

Validator details

entangled q staking validator $(entangled keys show wallet --bech val -a)

Check if validator key is correct

[[ $(entangled q staking validator $(entangled keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(entangled status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

List all active validators

entangled 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 validators

entangled 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

Edit existing validator

entangled tx staking edit-validator \  --new-moniker "YOUR_MONIKER_NAME" \  --identity "YOUR_KEYBASE_ID" \  --details "YOUR_DETAILS" \  --website "YOUR_WEBSITE_URL" \  --security-contact "YOUR_EMAIL_ADDRESS" \  --chain-id entangle_33033-1 \  --commission-rate 0.05 \  --from wallet \  --gas-adjustment 1.4 \  --gas 500000 \  --gas-prices 10aNGL \  -y

Jail reason

entangled query slashing signing-info $(entangled tendermint show-validator)

Unjail validator

entangled tx slashing unjail --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Governance

List all proposals

entangled query gov proposals

View proposal by ID

entangled query gov proposal 1

Vote β€œYES”

entangled tx gov vote 1 yes --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Maintenance

Get sync info

entangled status 2>&1 | jq .SyncInfo

Enable Prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.entangled/config/config.toml

Set minimum gas price

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"10aNGL\"|" $HOME/.entangled/config/app.toml

Disable indexer

sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.entangled/config/config.toml

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.entangled/config/config.toml

Update pruning

sed -i -e 's|^pruning *=.*|pruning = "custom"|' $HOME/.entangled/config/app.tomlsed -i -e 's|^pruning-keep-recent  *=.*|pruning-keep-recent = "100"|' $HOME/.entangled/config/app.tomlsed -i -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $HOME/.entangled/config/app.tomlsed -i -e 's|^pruning-interval *=.*|pruning-interval = "10"|' $HOME/.entangled/config/app.toml

Filter peers and max peers

sed -i -e 's|^filter_peers *=.*|filter_peers = "true"|' $HOME/.entangled/config/config.tomlsed -i -e 's|^max_num_inbound_peers *=.*|max_num_inbound_peers = "50"|' $HOME/.entangled/config/config.tomlsed -i -e 's|^max_num_outbound_peers *=.*|max_num_outbound_peers = "20"|' $HOME/.entangled/config/config.toml

Update ports

CUSTOM_PORT=156sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}66\"%" $HOME/.entangled/config/config.tomlsed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}91\"%" $HOME/.entangled/config/app.toml

Reset chain data

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

Delete node

sudo systemctl stop entangledsudo systemctl disable entangledsudo rm -rf /etc/systemd/system/entangled.servicesudo systemctl daemon-reloadsudo rm -f $(which entangled)sudo rm -rf $HOME/.entangledsudo rm -rf $HOME/entangle-blockchain

Service Management

Status service

sudo systemctl status entangled

Start service

sudo systemctl start entangled

Stop service

sudo systemctl stop entangled

Restart service

sudo systemctl restart entangled

Logs service

sudo journalctl -u entangled -f --no-hostname -o cat

Reload service

sudo systemctl daemon-reload

Enable service

sudo systemctl enable entangled

Disable service

sudo systemctl disable entangled
PreviousSEDANextSelfChain

Last updated 9 months ago

πŸ”
πŸ”‹