Setup Server
# Update Packages
sudo apt update && apt upgrade -y
sudo apt install curl git jq lz4 build-essential unzip fail2ban ufw -y
# Set Firewall
sudo apt install -y ufw
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw allow 9100
# Enable Firewall
sudo ufw enable
# Install Go
ver="1.19"
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
# Install Cosmovisor (OPTIONAL If you are using Cosmovisor)
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.5.0
Node Installation (Auto)
This Installer has Cosmovisor or Straight Binary Installation, with Custom port, and Snapshot Included
curl -o install.sh https://snapshots.indonode.net/entangle/install.sh && chmod +x install.sh && ./install.sh
Node Installation
There is 2 ways to install node , using Cosmovisor or Run the binary directly, you can choose whats you prefer
# Download and install binary
cd $HOME
rm -rf entangle-blockchain/
git clone https://github.com/Entangle-Protocol/entangle-blockchain
cd entangle-blockchain/
make build
# Setup Cosmovisor Symlinks
mkdir -p $HOME/.entangled/cosmovisor/genesis/bin
mv build/entangled $HOME/.entangled/cosmovisor/genesis/bin/
rm -rf build
sudo ln -s $HOME/.entangled/cosmovisor/genesis $HOME/.entangled/cosmovisor/current
sudo ln -s $HOME/.entangled/cosmovisor/current/bin/entangled /usr/local/bin/entangled
# Set Configuration for your node
entangled config chain-id entangle_33133-1
entangled config keyring-backend file
# Init your node
# You can change "MyNode" to anything you like
entangled init MyNode --chain-id entangle_33133-1
# Add Genesis File and Addrbook
curl -Ls https://snapshots.indonode.net/entangle/genesis.json > $HOME/.entangled/config/genesis.json
curl -Ls https://snapshots.indonode.net/entangle/addrbook.json > $HOME/.entangled/config/addrbook.json
#Configure Seeds and Peers
seed="76492a1356c14304bdd7ec946a6df0b57ba51fe2@35.175.80.14:26656"
sed -i.bak -e "s/^seed *=.*/seed = \"$seed\"/" ~/.entangled/config/config.toml
PEERS="94ab1432b3f3a4b81f7eb0e16e14924a805d8f05@65.109.154.182:15656,9ba119b1dd617efb02a55c5a2ba67e16872bccfa@65.108.206.74:30656,4c54c26655da3a4f6b25689ae1f8dd656e881990@162.19.69.193:26656,1fef0cad71ccb4a002dfbdd977af319fba0c3978@207.244.253.244:29656,4ae0f2c882a25414a8a24a5597c95f06f4115f07@144.76.236.211:23656,8de5ae99b036bbbde75cc7310e19b3723cff5bd8@95.111.246.208:26656,f61e642debaee9682c54f24a03bd33bf73e327eb@207.180.207.148:26656,af5dc63c90f7fa46c67ff75023b366d1e407ebe5@167.235.14.83:16656,07fc7facfcb7b0455589af95c11b09cfc05b617b@65.109.24.78:12656,41c30eaa97a917b1b7cb228da5dfada6f06040d1@5.189.183.119:26656,d644cf8da1054d893eaa5c4a2586875d1975c76a@213.239.217.52:33656,7c88b766c64af2afd69bb28920e27b28f02f42a6@95.217.114.120:16656,c2a885dae42a0eb2714d5aeb1d3f28115e2d8e9c@144.91.99.255:36656,9af19bfc29daf7e5535cf10d5f59c32406b69e05@213.133.100.172:27322,342c1851d3ad8cc72e41c965594a0a01f190d13c@65.108.229.93:25656,07577d39b32ecb7f8bd4a92cc9b03d4048758027@91.229.245.140:26656,a4138a69d236586b6d03269a8ffcf0f41d69a9b5@65.109.104.118:61556,a20f27e5dd1b373b4b19508277a735dae622d00b@139.59.40.82:26656,a6a6535a4bb72daa5420e215c42f31ae57ca4e90@65.108.72.253:29656,87459b2f952b7f71bfff3a97a0504c603f03d02f@65.21.139.155:51656";
sed -i -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.entangled/config/config.toml
# Set Pruning, Enable Prometheus, Gas Price, and Indexer
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
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"10aNGL\"/" $HOME/.entangled/config/app.toml
# Set Service file
sudo tee /etc/systemd/system/entangled.service > /dev/null << EOF
[Unit]
Description=entangled testnet node service
After=network-online.target
[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.entangled"
Environment="DAEMON_NAME=entangled"
Environment="UNSAFE_SKIP_BACKUP=true"
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable entangled
# Download Latest Snapshot
curl -L https://snapshots.indonode.net/entangle/entangle-snapshot.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.entangled
[[ -f $HOME/.entangled/data/upgrade-info.json ]] && cp $HOME/.entangled/data/upgrade-info.json $HOME/.entangled/cosmovisor/genesis/upgrade-info.json
# Start the Node
sudo systemctl restart entangled
sudo journalctl -fu entangled -o cat
# Download and install binary
cd $HOME
rm -rf entangle-blockchain/
git clone https://github.com/Entangle-Protocol/entangle-blockchain
cd entangle-blockchain/
make install
# Set Configuration for your node
entangled config chain-id entangle_33133-1
entangled config keyring-backend file
# Init your node
# You can change "MyNode" to anything you like
entangled init MyNode --chain-in entangle_33133-1
# Add Genesis File and Addrbook
curl -Ls https://snapshots.indonode.net/entangle/genesis.json > $HOME/.entangled/config/genesis.json
curl -Ls https://snapshots.indonode.net/entangle/addrbook.json > $HOME/.entangled/config/addrbook.json
#Configure Seeds and Peers
seed="76492a1356c14304bdd7ec946a6df0b57ba51fe2@35.175.80.14:26656"
sed -i.bak -e "s/^seed *=.*/seed = \"$seed\"/" ~/.entangled/config/config.toml
# Set Pruning, Enable Prometheus, Gas Prices, and Indexer
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
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"10aNGL\"/" $HOME/.entangled/config/app.toml
# Set Service file
sudo tee /etc/systemd/system/entangled.service > /dev/null <<EOF
[Unit]
Description=entangle testnet node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which entangled) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable entangled
# Download Latest Snapshot
curl -L https://snapshots.indonode.net/entangle/entangle-snapshot.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.entangled
[[ -f $HOME/.entangled/data/upgrade-info.json ]] && cp $HOME/.entangled/data/upgrade-info.json $HOME/.entangled/cosmovisor/genesis/upgrade-info.json
# Start the Node
sudo systemctl restart entangled
sudo journalctl -fu entangled -o cat
Last updated