Mainnet

Entangle

Installation Guide
CLI Command
State Sync
Snapshot
Public Endpoint
Custom Explorers
Decentralization Maps
Installation Guide
Installation Guide
CLI Command
State Sync
Snapshot
Public Endpoint
Custom Explorers
Decentralization Maps

How To Install Full Node Entangle Mainnet

Setting up vars

Your Nodename (validator) that will shows in explorer

NODENAME=<Your_Nodename_Moniker>

Save variables to system

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
    echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export ENTANGLE_CHAIN_ID=entangle_33033-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl build-essential git wget jq make gcc tmux net-tools ccze -y

Install go

if ! [ -x "$(command -v go)" ]; then
  ver="1.21.2"
  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
fi

Download and build binaries

cd $HOME
git clone https://github.com/Entangle-Protocol/entangle-blockchain
cd entangle-blockchain/
make install

Config app

entangled config chain-id $ENTANGLE_CHAIN_ID
entangled config keyring-backend file

Init app

entangled init $NODENAME --chain-id $ENTANGLE_CHAIN_ID

Download configuration

wget -O $HOME/.entangled/config/genesis.json https://snapshot.konsortech.xyz/entangle/genesis.json
wget -O $HOME/.entangled/config/addrbook.json https://snapshot.konsortech.xyz/entangle/addrbook.json

Set seeds and peers

sed -i -e "s|^seeds *=.*|seeds = \"ce585ba3e81c0064da87ca6376a37fc8a57469ed@mainnet-seed.konsortech.xyz:15165\"|" $HOME/.entangled/config/config.toml

Disable indexing

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

Config pruning

sed -i 's|pruning = "default"|pruning = "custom"|g' $HOME/.entangled/config/app.toml
sed -i 's|pruning-keep-recent = "0"|pruning-keep-recent = "100"|g' $HOME/.entangled/config/app.toml
sed -i 's|pruning-interval = "0"|pruning-interval = "10"|g' $HOME/.entangled/config/app.toml

Set minimum gas price

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

Create service

sudo tee /etc/systemd/system/entangled.service > /dev/null << EOF
[Unit]
Description=Entangle Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which entangled) start --chain-id $ENTANGLE_CHAIN_ID
Restart=on-failure
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable entangled
sudo systemctl restart entangled && sudo journalctl -u entangled -f -o cat

Guide CLI Command

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

entangled keys add $WALLET

To recover your wallet using seed phrase

entangled keys add $WALLET --recover

Show your wallet list

entangled keys list

Save wallet info

Add wallet and validator address into variables

ENTANGLE_WALLET_ADDRESS=$(entangled keys show $WALLET -a)
ENTANGLE_VALOPER_ADDRESS=$(entangled keys show $WALLET --bech val -a)
echo 'export ENTANGLE_WALLET_ADDRESS='${ENTANGLE_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export ENTANGLE_VALOPER_ADDRESS='${ENTANGLE_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

export your wallet to evm private key and import into that private key into metamask

entangled keys unsafe-export-eth-key $WALLET

Create validator

check your wallet balance:

entangled query bank balances $ENTANGLE_WALLET_ADDRESS

To create your validator run command below

entangled tx staking create-validator \
  --amount 5000000000000000000aNGL \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --pubkey  $(entangled tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $ENTANGLE_CHAIN_ID
  --gas=500000 \
  --gas-prices="10aNGL" 

Check your validator key

[[ $(entangled q staking validator $ENTANGLE_VALOPER_ADDRESS -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"

Get list of 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

Usefull commands

Service management

Check logs

journalctl -fu entangled -o cat

Start service

sudo systemctl start entangled

Stop service

sudo systemctl stop entangled

Restart service

sudo systemctl restart entangled

Node info

Synchronization info

entangled status 2>&1 | jq .SyncInfo

Validator info

entangled status 2>&1 | jq .ValidatorInfo

Node info

entangled status 2>&1 | jq .NodeInfo

Show node id

entangled tendermint show-node-id

Wallet operations

List of wallets

entangled keys list

Recover wallet

entangled keys add $WALLET --recover

Delete wallet

entangled keys delete $WALLET

Get wallet balance

entangled query bank balances $ENTANGLE_WALLET_ADDRESS

Transfer funds

entangled tx bank send $ENTANGLE_WALLET_ADDRESS <TO_ENTANGLE_WALLET_ADDRESS> 5000000000000000000aNGL

Voting

entangled tx gov vote 1 yes --from $WALLET --chain-id=$ENTANGLE_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

entangled tx staking delegate $ENTANGLE_VALOPER_ADDRESS 5000000000000000000aNGL --from=$WALLET --chain-id=$ENTANGLE_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

entangled tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 5000000000000000000aNGL --from=$WALLET --chain-id=$ENTANGLE_CHAIN_ID --gas=auto

Withdraw all rewards

entangled tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$ENTANGLE_CHAIN_ID --gas=auto

Withdraw rewards with commision

entangled tx distribution withdraw-rewards $ENTANGLE_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$ENTANGLE_CHAIN_ID

Validator management

Edit validator

entangled tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$ENTANGLE_CHAIN_ID \
  --from=$WALLET

Unjail validator

entangled tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$ENTANGLE_CHAIN_ID \
  --gas=auto

Public Endpoint

RPC

https://mainnet-entangle-rpc.konsortech.xyz

EVM RPC

Network Name    : Entangle Mainnet
RPC URL         : https://mainnet-entangle-evm.konsortech.xyz
Chain ID        : 33033
Curreny Symbol  : NGL

API

https://mainnet-entangle-api.konsortech.xyz

gRPC

mainnet-entangle.konsortech.xyz:11090

Peers and Seeds

Peers

7378259114db42b8b46fad4cc9f31d32a5419b60@mainnet-entangle.konsortech.xyz:11656

Seeds

ce585ba3e81c0064da87ca6376a37fc8a57469ed@mainnet-seed.konsortech.xyz:15165

Genesis & Address Book

Address Book

https://snap2.konsortech.xyz/entangle/addrbook.json

Genesis

https://snap2.konsortech.xyz/entangle/genesis.json

Statesync

sudo service entangled stop
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

SYNC_RPC="https://mainnet-entangle-rpc.konsortech.xyz:443"
SYNC_PEER="7378259114db42b8b46fad4cc9f31d32a5419b60@mainnet-entangle.konsortech.xyz:11656"
LATEST_HEIGHT=$(curl -s $SYNC_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SYNC_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i \
  -e "s|^enable *=.*|enable = true|" \
  -e "s|^rpc_servers *=.*|rpc_servers = \"$SYNC_RPC,$SYNC_RPC\"|" \
  -e "s|^trust_height *=.*|trust_height = $BLOCK_HEIGHT|" \
  -e "s|^trust_hash *=.*|trust_hash = \"$TRUST_HASH\"|" \
  -e "s|^persistent_peers *=.*|persistent_peers = \"$SYNC_PEER\"|" \
  $HOME/.entangled/config/config.toml

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

sudo service entangled restart && sudo journalctl -fu entangled -o cat

Snapshot

sudo systemctl stop entangled
cp $HOME/.entangled/data/priv_validator_state.json $HOME/.entangled/priv_validator_state.json.backup
rm -rf $HOME/.entangled/data

SNAP_NAME=$(curl -s https://snap2.konsortech.xyz/entangle/ | egrep -o ">entangle-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snap2.konsortech.xyz/entangle/${SNAP_NAME} | 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 && journalctl -u entangled -f --no-hostname -o cat
Embed Iframe

Entangle Mainnet Decentralization Maps