Auto Install:
curl https://revonode.xyz/sc/entangle | bash
Manual Install:
Server preparation
- Updating packages
sudo apt update && sudo apt upgrade -y
- Install developer tools and necessary packages
sudo apt install curl build-essential pkg-config libssl-dev git wget jq make gcc tmux chrony -y
- Installing GO
ver="1.20"
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" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
Node installation
- Clone the project repository with the node, go to the project folder and collect the binary files
cd $HOME
rm -rf entangle-blockchain/
git clone https://github.com/Entangle-Protocol/entangle-blockchain
cd entangle-blockchain/
make install
- Checking the version
entangled version
#1.0.1
- Creating Variables
MONIKER_ENTANGLE=type in your name
CHAIN_ID_ENTANGLE=entangle_33133-1
PORT_ENTANGLE=37
- Save variables, reload .bash_profile and check variable values
echo "export MONIKER_ENTANGLE="${MONIKER_ENTANGLE}"" >> $HOME/.bash_profile
echo "export CHAIN_ID_ENTANGLE="${CHAIN_ID_ENTANGLE}"" >> $HOME/.bash_profile
echo "export PORT_ENTANGLE="${PORT_ENTANGLE}"" >> $HOME/.bash_profile
source $HOME/.bash_profile
echo -e "\nmoniker_ENTANGLE > ${MONIKER_ENTANGLE}.\n"
echo -e "\nchain_id_ENTANGLE > ${CHAIN_ID_ENTANGLE}.\n"
echo -e "\nport_ENTANGLE > ${PORT_ENTANGLE}.\n"
- Setting up the config
entangled config chain-id $CHAIN_ID_ENTANGLE
entangled config keyring-backend test
entangled config node tcp://localhost:${PORT_ENTANGLE}657
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025aNGL\"/" $HOME/.entangled/config/app.toml
- Initialize the node
entangled init $MONIKER_ENTANGLE --chain-id $CHAIN_ID_ENTANGLE
- Loading the genesis file and address book
sudo cp config/genesis.json $HOME/.entangled/config
curl -Ls https://snapshots.indonode.net/entangle/addrbook.json > $HOME/.entangled/config/addrbook.json
- Adding seeds and peers
sed -i -e "s|^seeds *=.*|seeds = \"76492a1356c14304bdd7ec946a6df0b57ba51fe2@3.92.0.61:26656\"|" $HOME/.entangled/config/config.toml
- Setting up pruning
PRUNING="custom"
PRUNING_KEEP_RECENT="100"
PRUNING_INTERVAL="19"
sed -i -e "s/^pruning *=.*/pruning = \"$PRUNING\"/" $HOME/.entangled/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \
\"$PRUNING_KEEP_RECENT\"/" $HOME/.entangled/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \
\"$PRUNING_INTERVAL\"/" $HOME/.entangled/config/app.toml
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.entangled/config/config.toml
sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.entangled/config/config.toml
- Create a service file
printf "[Unit]
Description=ENTANGLE Service
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which entangled) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/entangled.service
- Start the service and check the logs
sudo systemctl daemon-reload && \
sudo systemctl enable entangled && \
sudo systemctl restart entangled && \
sudo journalctl -u entangled -f -o cat
- We are waiting for the end of synchronization, you can check the synchronization with the command
entangled status 2>&1 | jq .SyncInfo
If the output shows false, the sync is complete.
Creating a wallet and validator
- Create a wallet
entangled keys add $MONIKER_ENTANGLE
Save the mnemonic phrase in a safe place!
If you participated in previous testnets, restore the wallet with the command and enter the mnemonic phrase
entangled keys add $MONIKER_ENTANGLE --recover
- Create a variable with the address of the wallet and validator
WALLET_ENTANGLE=$(entangled keys show $MONIKER_ENTANGLE -a)
VALOPER_ENTANGLE=$(entangled keys show $MONIKER_ENTANGLE --bech val -a)
echo "export WALLET_ENTANGLE="${WALLET_ENTANGLE}"" >> $HOME/.bash_profile
echo "export VALOPER_ENTANGLE="${VALOPER_ENTANGLE}"" >> $HOME/.bash_profile
source $HOME/.bash_profile
echo -e "\nwallet_ENTANGLE > ${WALLET_ENTANGLE}.\n"
echo -e "\nvaloper_ENTANGLE > ${VALOPER_ENTANGLE}.\n"
- Checking your balance
entangled q bank balances $WALLET_ENTANGLE
- After the synchronization is completed and the wallet is replenished, we create a validator
entangled tx staking create-validator \
--amount "1000000000000000000aNGL" \
--pubkey $(entangled tendermint show-validator) \
--moniker "MONIKER" \
--identity "KEYBASE_ID" \
--details "YOUR DETAILS" \
--website "YOUR WEBSITE" \
--chain-id entangle_33133-1 \
--commission-rate "0.05" \
--commission-max-rate "0.20" \
--commission-max-change-rate "0.01" \
--min-self-delegation "1" \
--gas-prices "10aNGL" \
--gas "500000" \
--gas-adjustment "1.5" \
--from wallet \
-y
Deleting a node
- Before deleting a node, make sure that the files from the ~/.entangled/config directory are saved To remove a node, use the following commands
sudo systemctl stop entangled
sudo systemctl disable entangled
sudo rm -rf $HOME/.entangled
sudo rm -rf $HOME/ENTANGLE
sudo rm -rf /etc/systemd/system/entangled.service
sudo rm -rf /usr/local/bin/entangled
sudo systemctl daemon-reload