Stake with Nodeist

Timpi Testnet Services



  • TIMPI
    timpi.png



    Timpi's proprietary web search index is the world's first completely independent and decentralized search index. It is designed to integrate blockchain technology within the framework of traditional global commerce while being autonomously governed and globally scalable.​

    Chain Explorer:

    Public Endpoints:
    Bash:
    # API ENDPOINT
    https://api-timpi.nodeist.net
    
    # RPC ENDPOINT
    https://rpc-timpi.nodeist.net
    
    # GRPC ENDPOINT
    https://grpc-timpi.nodeist.net

    Peering:

    addrbook:

    Bash:
    curl -Ls https://ss.nodeist.net/t/timpi/addrbook.json > $HOME/.TimpiChain/config/addrbook.json

    live-peers:



  • Manual Installation
    This section contains a list of commands to install the node in manual mode.

    Server Preparation
    Bash:
    apt update && apt upgrade -y
    
    apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

    Install GO
    Bash:
    ver="1.20.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"
    echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
    source $HOME/.bash_profile
    go version

    Node Installation
    Replace Nodeist_Guide in the first line with your moniker name.
    Bash:
    NODE_MONIKER="Nodeist_Guide"
    
    cd || return
    rm -rf Timpi-ChainTN
    git clone https://github.com/Timpi-official/Timpi-ChainTN.git
    cd Timpi-ChainTN
    cd cmd/TimpiChain
    go build
    cp TimpiChain /root/go/bin/timpid
    
    timpid config chain-id TimpiChainTN2
    timpid init "$NODE_MONIKER" --chain-id TimpiChainTN2
    
    curl -s https://ss.nodeist.net/t/timpi/genesis.json > $HOME/.TimpiChain/config/genesis.json
    curl -s https://ss.nodeist.net/t/timpi/addrbook.json > $HOME/.TimpiChain/config/addrbook.json
    
    SEEDS=""
    PEERS=""
    sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.TimpiChain/config/config.toml
    
    sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.TimpiChain/config/app.toml
    sed -i 's|^pruning-keep-recent  *=.*|pruning-keep-recent = "100"|g' $HOME/.TimpiChain/config/app.toml
    sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.TimpiChain/config/app.toml
    sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.TimpiChain/config/app.toml
    
    sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025utimpiTN"|g' $HOME/.TimpiChain/config/app.toml
    sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.TimpiChain/config/config.toml
    
    sudo tee /etc/systemd/system/timpid.service > /dev/null << EOF
    [Unit]
    Description=Timpi Node
    After=network-online.target
    [Service]
    User=$USER
    ExecStart=$(which timpid) start
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=10000
    [Install]
    WantedBy=multi-user.target
    EOF
    
    timpid tendermint unsafe-reset-all --home $HOME/.TimpiChain --keep-addr-book
    
    curl -L https://ss.nodeist.net/t/timpi/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.TimpiChain --strip-components 2
    
    
    sudo systemctl daemon-reload
    sudo systemctl enable timpid
    sudo systemctl start timpid
    
    sudo journalctl -fu timpid -o cat



  • HEIGHT SIZE TIMESTAMP DOWNLOAD



    Instructions
    Stop the service and reset the data

    Bash:
    sudo systemctl stop timpid
    cp $HOME/.TimpiChain/data/priv_validator_state.json $HOME/.TimpiChain/priv_validator_state.json.backup
    rm -rf $HOME/.TimpiChain/data

    Download latest snapshot
    Bash:
    curl -L https://ss.nodeist.net/t/timpi/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.TimpiChain --strip-components 2
    mv $HOME/.TimpiChain/priv_validator_state.json.backup $HOME/.TimpiChain/data/priv_validator_state.json

    Restart the service and check the log
    Bash:
    sudo systemctl restart timpid && sudo journalctl -fu timpid -o cat



  • Instructions
    Stop the service and reset the data

    Bash:
    sudo systemctl stop timpid
    cp $HOME/.TimpiChain/data/priv_validator_state.json $HOME/.TimpiChain/priv_validator_state.json.backup
    timpid tendermint unsafe-reset-all --home $HOME/.TimpiChain

    Get and configure the state sync information
    Bash:
    SNAP_RPC="https://rpc-timpi.nodeist.net:443"
    LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
    BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \
    TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
    sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
    s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
    s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
    s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.TimpiChain/config/config.toml
    
    mv $HOME/.TimpiChain/priv_validator_state.json.backup $HOME/.TimpiChain/data/priv_validator_state.json

    Restart the service and check the log
    Bash:
    sudo systemctl restart timpid && sudo journalctl -fu timpid -o cat


  • 🔑 Key management

    Add new key

    Bash:
    timpid keys add wallet

    Recover existing key
    Bash:
    timpid keys add wallet --recover

    List all keys
    Bash:
    timpid keys list

    Delete key
    Bash:
    timpid keys delete wallet

    Export key to the file
    Bash:
    timpid keys export wallet

    Import key from the file
    Bash:
    timpid keys import wallet wallet.backup

    Query wallet balance
    Bash:
    timpid q bank balances $(timpid keys show wallet -a)

    👷 Validator management
    - Please make sure you have adjusted moniker, identity, details and website to match your values.

    Create new validator
    Bash:
    timpid tx staking create-validator \
    --amount 1000000utimpiTN \
    --pubkey $(timpid tendermint show-validator) \
    --moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id TimpiChainTN2 \
    --commission-rate 0.05 \
    --commission-max-rate 0.20 \
    --commission-max-change-rate 0.01 \
    --min-self-delegation 1 \
    --from wallet \
    --gas-adjustment 1.4 \
    --gas auto \
    --gas-prices 0.025utimpiTN \
    -y

    Edit existing validator
    Bash:
    timpid tx staking edit-validator \
    --new-moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id TimpiChainTN2 \
    --commission-rate 0.05 \
    --from wallet \
    --gas-adjustment 1.4 \
    --gas auto \
    --gas-prices 0.025utimpiTN \
    -y

    Unjail validator
    Bash:
    timpid tx slashing unjail --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Jail reason
    Bash:
    timpid query slashing signing-info $(timpid tendermint show-validator)

    List all active validators
    Bash:
    timpid 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
    Bash:
    timpid 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

    View validator details
    Bash:
    timpid q staking validator $(timpid keys show wallet --bech val -a)

    💲 Token management

    Withdraw rewards from all validators

    Bash:
    timpid tx distribution withdraw-all-rewards --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Withdraw commission and rewards from your validator
    Bash:
    timpid tx distribution withdraw-rewards $(timpid keys show wallet --bech val -a) --commission --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Delegate tokens to yourself
    Bash:
    timpid tx staking delegate $(timpid keys show wallet --bech val -a) 1000000utimpiTN --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Delegate tokens to validator
    Bash:
    timpid tx staking delegate <TO_VALOPER_ADDRESS> 1000000utimpiTN --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Redelegate tokens to another validator
    Bash:
    timpid tx staking redelegate $(timpid keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000utimpiTN --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Unbond tokens from your validator
    Bash:
    timpid tx staking unbond $(timpid keys show wallet --bech val -a) 1000000utimpiTN --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Send tokens to the wallet
    Bash:
    timpid tx bank send wallet <TO_WALLET_ADDRESS> 1000000utimpiTN --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    🗳 Governance

    List all proposals

    Bash:
    timpid query gov proposals

    View proposal by id
    Bash:
    timpid query gov proposal 1

    Vote 'Yes'
    Bash:
    timpid tx gov vote 1 yes --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Vote 'No'
    Bash:
    timpid tx gov vote 1 no --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Vote 'Abstain'
    Bash:
    timpid tx gov vote 1 abstain --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    Vote 'NoWithVeto'
    Bash:
    timpid tx gov vote 1 NoWithVeto --from wallet --chain-id TimpiChainTN2 --gas-adjustment 1.4 --gas auto --gas-prices 0.025utimpiTN -y

    ⚡️ Utility

    Update Indexer

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

    Update pruning
    Bash:
    sed -i \
      -e 's|^pruning *=.*|pruning = "custom"|' \
      -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
      -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
      -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
      $HOME/.TimpiChain/config/app.toml

    🚨 Maintenance

    Get validator info

    Bash:
    timpid status 2>&1 | jq .ValidatorInfo

    Get sync info
    Bash:
    timpid status 2>&1 | jq .SyncInfo

    Get node peer
    Bash:
    echo $(timpid tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.TimpiChain/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

    Check if validator key is correct
    Bash:
    [[ $(timpid q staking validator $(timpid keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(timpid 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 live peers
    Bash:
    curl -sS http://localhost:27657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

    Set minimum gas price
    Bash:
    sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025utimpiTN\"/" $HOME/.TimpiChain/config/app.toml

    Enable prometheus
    Bash:
    sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.TimpiChain/config/config.toml

    Reset chain data
    Bash:
    timpid tendermint unsafe-reset-all --home $HOME/.TimpiChain --keep-addr-book

    Remove node
    - Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!


    Bash:
    cd $HOME
    sudo systemctl stop timpid
    sudo systemctl disable timpid
    sudo rm /etc/systemd/system/timpid.service
    sudo systemctl daemon-reload
    rm -f $(which timpid)
    rm -rf $HOME/.TimpiChain
    rm -rf $HOME/timpid

    ⚙️ Service Management

    Reload service configuration

    Bash:
    sudo systemctl daemon-reload

    Enable service
    Bash:
    sudo systemctl enable timpid

    Disable service
    Bash:
    sudo systemctl disable timpid

    Start service
    Bash:
    sudo systemctl start timpid

    Stop service
    Bash:
    sudo systemctl stop timpid

    Restart service
    Bash:
    sudo systemctl restart timpid

    Check service status
    Bash:
    sudo systemctl status timpid

    Check service logs
    Bash:
    sudo journalctl -u timpid -f --no-hostname -o cat

 
Last edited:
Up