Installation
Chain ID
Version
Custom Port
titan-test-4
Node Version: 0.3.0-1-g167b7fd6
35
Official Documentation Recommended Hardware: 16 Cores, 64GB RAM, 1000GB of storage (NVME)
# install dependencies, if needed
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
# install go, if needed
cd $HOME
VER="1.21.3"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
# set vars
echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export TITAN_CHAIN_ID="titan-test-4"" >> $HOME/.bash_profile
echo "export TITAN_PORT="35"" >> $HOME/.bash_profile
source $HOME/.bash_profile
# download binary
cd $HOME
rm -rf titan-chain
git clone https://github.com/Titannet-dao/titan-chain.git
cd titan-chain
make build
# config and init app
titand config node tcp://localhost:${TITAN_PORT}657
titand config keyring-backend os
titand config chain-id titan-test-4
titand init "test" --chain-id titan-test-4
# download genesis and addrbook
wget -O $HOME/.titan/config/genesis.json https://testnet-files.bonynode.online/titan/genesis.json
wget -O $HOME/.titan/config/addrbook.json https://testnet-files.bonynode.online/titan/addrbook.json
# set seeds and peers
SEEDS=
PEERS="01cc7c20302234f45e8370500d16324ba82fca84@titan-testnet-peer.monkeylabs.me:35656,0d24683b3d83cac3ca343646a58ed8bddae267fb@65.108.129.251:46656,76c622dfb2f3c5bf9a762a2f93961a99aecc8fca@2.58.82.159:11656,7db6a61f62edc467c39bab4ef26782ef9e2983fa@65.108.140.112:26656,01cc7c20302234f45e8370500d16324ba82fca84@88.99.57.73:35656,01186ee9bad7b1b3bc8b6d98a14b3e797384b584@65.109.93.124:29356,b6b66acc53d1648d8e0552347382492a931e826d@100.42.179.146:26656,dda39e4529ded03ed474bffc6c00c521be57db8f@37.27.133.17:29656,2ef5e70ed3929d52098f27518296a0ee93c0fabb@47.243.127.179:26656,956c6abcea4c104d93cf1f01db3323c7c55f0dda@51.91.70.90:56346"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.titan/config/config.toml
# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${TITAN_PORT}317%g;
s%:8080%:${TITAN_PORT}080%g;
s%:9090%:${TITAN_PORT}090%g;
s%:9091%:${TITAN_PORT}091%g;
s%:8545%:${TITAN_PORT}545%g;
s%:8546%:${TITAN_PORT}546%g;
s%:6065%:${TITAN_PORT}065%g" $HOME/.titan/config/app.toml
# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${TITAN_PORT}658%g;
s%:26657%:${TITAN_PORT}657%g;
s%:6060%:${TITAN_PORT}060%g;
s%:26656%:${TITAN_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${TITAN_PORT}656\"%;
s%:26660%:${TITAN_PORT}660%g" $HOME/.titan/config/config.toml
# config pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.titan/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.titan/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.titan/config/app.toml
# set minimum gas price, enable prometheus and disable indexing
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.005uttnt"|g' $HOME/.titan/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.titan/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.titan/config/config.toml
# create service file
sudo tee /etc/systemd/system/titand.service > /dev/null <<EOF
[Unit]
Description=Titan node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.titan
ExecStart=$(which titand) start --home $HOME/.titan
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
# reset and download snapshot
titand tendermint unsafe-reset-all --home $HOME/.titan
if curl -s --head curl https://testnet-files.bonynode.online/titan/snap_titan.tar.lz4 | head -n 1 | grep "200" > /dev/null; then
curl https://testnet-files.bonynode.online/titan/snap_titan.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.titan
else
echo no have snap
fi
# enable and start service
sudo systemctl daemon-reload
sudo systemctl enable titand
sudo systemctl restart titand && sudo journalctl -u titand -f
Create wallet
# to create a new wallet, use the following command. don’t forget to save the mnemonic
titand keys add $WALLET
# to restore exexuting wallet, use the following command
titand keys add $WALLET --recover
# save wallet and validator address
WALLET_ADDRESS_titan=$(titand keys show $WALLET -a)
VALOPER_ADDRESS_titan=$(titand keys show $WALLET --bech val -a)
echo "export WALLET_ADDRESS_titan="$WALLET_ADDRESS_titan >> $HOME/.bash_profile
echo "export VALOPER_ADDRESS_titan="$VALOPER_ADDRESS_titan >> $HOME/.bash_profile
source $HOME/.bash_profile
# check sync status, once your node is fully synced, the output from above will print "false"
titand status 2>&1 | jq
# before creating a validator, you need to fund your wallet and check balance
titand query bank balances $WALLET_ADDRESS_titan
Create validator
MonikerIdentityDetailsAmount, uttntCommission rateCommission max rateCommission max change rateWebsite
titand tx staking create-validator \
--amount 1000000uttnt \
--from $WALLET \
--commission-rate 0.1 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--pubkey $(titand tendermint show-validator) \
--moniker "test" \
--identity "" \
--website "" \
--details "I love blockchain 💚" \
--chain-id titan-test-4 \
--gas 300000 --fees 2000uttnt \
-y
Monitoring
Security
To protect you keys please don`t share your privkey, mnemonic and follow a basic security rules
Set up ssh keys for authentication
Firewall security
Set the default to allow outgoing connections, deny all incoming, allow ssh and node p2p port
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw allow ${TITAN_PORT}656/tcp
sudo ufw enable
Delete node
sudo systemctl stop titand
sudo systemctl disable titand
sudo rm -rf /etc/systemd/system/titand.service
sudo rm $(which titand)
sudo rm -rf $HOME/.titan
sed -i "/TITAN_/d" $HOME/.bash_profile
Last updated