LogoLogo
REStakeMeet the teamBlock ExplorerHire Us
  • 🤐WhisperNode Public Guides
  • ⚛️Nodes -- Mainnet
    • Archway
      • Full Node Build
      • Setup Cosmovisor
      • Archway Resources
    • Chihuahua
      • Full Node Build
      • Setup Cosmovisor
      • Chihuahua Resources
    • AssetMantle
      • Full Node Build
      • Setup Cosmovisor
      • CLI Cheatsheet
    • Aura Network
      • Full Node Build
      • Setup Cosmovisor
      • Aura Network Resources
    • Axelar
      • Full Node Build
      • Setup Cosmovisor
      • Axelar Resources
    • Cheqd
      • Full Node Build
      • Setup Cosmovisor
      • Cheqd Resources
    • Comdex
      • Full Node Build
      • Setup Cosmovisor
      • Comdex Resources
    • Composable Finance
      • Full node build
      • Setup Cosmovisor
      • Composable Resources
    • CosmosHub
      • ICS-Provider -- [CosmosHub]
        • Full Node Build
        • Cosmovisor
      • ICS-Consumers
        • Neutron - Build a Node
      • Cosmos Resources
    • Dymension
      • Full Node Build
      • Setup Cosmovisor
      • Dymension Resources
    • Saga
      • Full Node Build
      • Setup Cosmovisor
      • Saga Resources
    • Empower
      • Full node build
      • Setup Cosmovisor
      • CLI Cheatsheet
      • Empower Resources
    • Gitopia
      • Full Node Build
      • Setup Cosmovisor
      • Gitopia Resources
    • Injective
      • Injective Resources
    • Juno
      • Full Node Build
      • Setup Cosmovisor
      • Juno Resources
    • Kujira
      • Full Node Build
      • Setup Cosmovisor
      • Oracle Price Feeder
      • Kujira Resources
    • Celestia
      • Full Node Build
      • Setup Cosmovisor
      • Celestia Resources
    • Migaloo
      • Full Node Build
      • Setup Cosmovisor
      • Migaloo Resources
    • Osmosis
      • Full Node Build
      • Setup Cosmovisor
      • Osmosis Resources
    • Passage
      • Full Node Build
      • Setup Cosmovisor
      • Passage Resources
    • Quasar Fi
      • Full node build
      • Setup Cosmovisor
      • Quasar Resources
    • Secret Network
      • Full Node Build
      • Setup Cosmovisor
      • Secret: State Sync
      • Secret Network Resources
    • Stargaze
      • Full node build
      • Setup Cosmovisor
      • Stargaze Resources
    • Stratos
      • Full Node Build
      • Setup Cosmovisor
      • Stratos Resources
  • 🧪Nodes -- Testnet
    • Archway - Constantine-3
      • Full Node Build
      • Setup Cosmovisor
      • Archway Resources
    • Babylon
      • Full Node Build
      • Setup Cosmovisor
      • Babylon Resources
    • Composable Finance - Banksy2
      • Full node build
      • Setup Cosmovisor
      • Composable Banksy2 Resources
    • Composable Finance - Banksy3
      • Full node build
      • Setup Cosmovisor
      • Composable Banksy3 Resources
    • Cooperative Denom
      • Full node build
      • Setup Cosmovisor
      • Cooperative Denom Resources
    • Cosmos
      • Full Node Build
      • Setup Cosmovisor
      • Cosmos Testnet Resources
    • Duality
      • Full Node Build
      • Setup Cosmovisor
      • Duality Testnet Resources
    • Dymension - Froopyland
      • Full node build
      • Setup Cosmovisor
      • CLI Cheatsheet
      • Dymension Resources
    • Seda
      • Full node build
      • Setup Cosmovisor
      • Seda Resources
    • Union | Testnet
      • Full node build
      • CLI Cheatsheet
      • Union Resources
    • Mantra Chain
      • Full node build
      • Setup Cosmovisor
      • CLI Cheatsheet
      • Mantra Chain Resources
    • dYdX Testnet
      • Full node build
      • Setup Cosmovisor
      • CLI Cheatsheet
      • Dymension Resources
    • Empower
      • Full node build
      • Setup Cosmovisor
      • CLI Cheatsheet
      • Empower Resources
    • Namada
      • Full node build
      • CLI Cheatsheet
      • Namada Resources
      • Tenderduty Setup
      • TMKMS Setup
      • Horcrux Setup
    • Penumbra
      • Full node build
      • CLI Cheatsheet
      • Namada Resources
      • Tenderduty Setup
      • TMKMS Setup
      • Horcrux Setup
    • BeraChain
      • Full node build
      • Setup Cosmovisor
      • Berachain Resources
      • CLI Cheatsheet
      • TMKMS Setup
      • Horcrux Setup
    • Neutron
      • Full Node Build
      • Setup Cosmovisor
      • Neutron Testnet Resources
    • Stride
      • Full Node Build
      • Setup Cosmovisor
      • Stride Testnet Resources
  • Reference
    • Team Validator Info
    • Chain Port Prefixes
Powered by GitBook
LogoLogo

Made with ❤️ by WhisperNode // © 2024.

On this page
  • Install pre-requisites
  • Install Go
  • Build Daemon from source
  • Setting up the Node
  • Initialize the chain
  • Download the genesis file
  • Set persistent peers
  • Create (or restore) a local key pair
  • Setup cosmovisor
  • Upgrade to a validator
  • Backup critical files

Was this helpful?

Edit on GitHub
Export as PDF
  1. Nodes -- Mainnet
  2. AssetMantle

Full Node Build

PreviousAssetMantleNextSetup Cosmovisor

Last updated 1 year ago

Was this helpful?

Original guide can be found on the Cosmos Github:

Snapshots:

Install pre-requisites

# update the local package list and install any available upgrades
sudo apt-get update && sudo apt upgrade -y

# install toolchain and ensure accurate time synchronization
sudo apt-get install make build-essential gcc git jq chrony -y

Install Go

Follow the instructions to install Go.

For an Ubuntu LTS, we can use:

# find location of existing GO (if any)
which go
go version

# remove old GO if existing
sudo rm -rf /usr/local/go

# install updated GO
wget https://golang.org/dl/go1.20.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz
rm -rf go1.20.3.linux-amd64.tar.gz

Unless you want to configure in a non standard way, then set these in the .zshrc file (or whatever you're using for a profile) in the user's home (i.e. ~/) folder.

#profile
nano ~/.profile

# zsh
nano ~/.zshrc

Add the "export Pathing" rules at the bottom, and then save the file:

# add export PATHS below
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin:$GOBIN

After updating your ~/.profile or ~/.zshrc you will need to source it:

#profile
source ~/.profile

#zshrc
source ~/.zshrc

Build Daemon from source

git clone https://github.com/AssetMantle/node.git
cd node
git checkout v0.3.1
make install

The <version-tag> will need to be set to either a testnet chain-id or the latest mainnet version tag.

To confirm that the installation has succeeded, you can run:

mantleNode version --long

Setting up the Node

These instructions will direct you on how to initialize your node, synchronize to the network and upgrade your node to a validator.

Initialize the chain

mantleNode init $(openssl rand -hex 16) --chain-id mantle-1

This will generate the following files in ~/.mantleNode/config/

  • genesis.json

  • node_key.json

  • priv_validator_key.json

Download the genesis file

cd ~/.mantleNode/config
rm genesis.json
curl -fsSL https://raw.githubusercontent.com/AssetMantle/genesisTransactions/main/mantle-1/final_genesis.json >> genesis.json

This will replace the genesis file created using mantleNode init command with the mainnet genesis.json.

Set persistent peers

Using sed, we can set the persistent_peers easily:

sed -i'' 's/persistent_peers = ""/persistent_peers = "6e08b23315a9f0e1b23c7ed847934f7d6f848c8b@165.232.156.86:26656,ee27245d88c632a556cf72cc7f3587380c09b469@45.79.249.253:26656,538ebe0086f0f5e9ca922dae0462cc87e22f0a50@34.122.34.67:26656,d3209b9f88eec64f10555a11ecbf797bb0fa29f4@34.125.169.233:26656,bdc2c3d410ca7731411b7e46a252012323fbbf37@34.83.209.166:26656,585794737e6b318957088e645e17c0669f3b11fc@54.160.123.34:26656,5b4ed476e01c49b23851258d867cc0cfc0c10e58@206.189.4.227:26656"/' $HOME/.mantleNode/config/config.toml

Update Node configs

We can use sed to update various node configuration values without having to manually edit each file - which can be a pain.

Replace the values below with your own. These commands will update the following:

  • minimum_gas_prices

  • pruning configs

  • snapshot configs

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.025umntl\"|" $HOME/.mantleNode/config/app.toml
sed -i -e "s|^pruning *=.*|pruning = \"custom\"|" $HOME/.mantleNode/config/app.toml
sed -i -e "s|^pruning-keep-recent *=.*|pruning-keep-recent = \"113\"|" $HOME/.mantleNode/config/app.toml
sed -i -e "s|^pruning-keep-every *=.*|pruning-keep-every = \"0\"|" $HOME/.mantleNode/config/app.toml
sed -i -e "s|^pruning-interval *=.*|pruning-interval = \"17\"|" $HOME/.mantleNode/config/app.toml
sed -i -e "s|^snapshot-interval *=.*|snapshot-interval = \"0\"|" $HOME/.mantleNode/config/app.toml
sed -i -e "s|^snapshot-keep-recent *=.*|snapshot-keep-recent = \"2\"|" $HOME/.mantleNode/config/app.tom

Updating node ports

We'll use a powerful tool called sed for this process. sed is a stream editor that can perform operations, like substitutions, on a text file.

We will specifically focus on updating the ports to use a standardized prefix for your chain. This ensures consistency and improves overall system organization. It will also allow you to run multiple chains on a single server.

Let's start by understanding what we're updating:

  • proxy_app: This is the address used for inter-process communication between the ABCI application and the consensus engine.

  • laddr: This is the address that your node listens on for incoming connections.

  • pprof_laddr: This is the address for the profiling server to listen on.

  • prometheus_listen_addr: This is the address for the Prometheus metrics server to listen on.

  • address: These are various addresses that your node may use to listen for different types of connections.

Set Your Chain and Port Prefix

Your chain in this case is Asset Mantle. For Asset Mantle, we want to set the port prefix as 104. The port prefix will be used to replace the first 2 or 3 digits of the original ports.

# Set the prefix 
export PREFIX=104

Update config.toml

Next, we will update the config.toml file. For 5-digit ports, the first 3 digits will be replaced. Here is how to calculate the new port values and update the config.toml file:

PROXY_APP_PORT=$(echo 26658 | awk -v prefix=$PREFIX '{print prefix substr($0,4)}')
LADDR_PORT1=$(echo 26657 | awk -v prefix=$PREFIX '{print prefix substr($0,4)}')
LADDR_PORT2=$(echo 26656 | awk -v prefix=$PREFIX '{print prefix substr($0,4)}')
PPROF_LADDR_PORT=$(echo 26660 | awk -v prefix=$PREFIX '{print prefix substr($0,4)}')
PROMETHEUS_LISTEN_PORT=$(echo 26660 | awk -v prefix=$PREFIX '{print prefix substr($0,4)}')
sed -i.bak -e "\
s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:$PROXY_APP_PORT\"%; \
s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://0.0.0.0:$LADDR_PORT1\"%; \
s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:$PPROF_LADDR_PORT\"%; \
s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:$LADDR_PORT2\"%; \
s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":$PROMETHEUS_LISTEN_PORT\"%" \
$HOME/.mantleNode/config/config.toml

Update app.toml

For 4-digit ports, the first 2 digits will be replaced. Here is how to calculate the new port values and update the app.toml file:

sed -i.bak -e "\
s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:$ADDRESS_PORT1\"%; \
s%^address = \":8080\"%address = \":$ADDRESS_PORT2\"%; \
s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:$ADDRESS_PORT3\"%; \
s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:$ADDRESS_PORT4\"%" \
$HOME/.mantleNode/config/app.toml
ADDRESS_PORT1=$(echo 1317 | awk -v prefix=$PREFIX '{print prefix substr($0,3)}')
ADDRESS_PORT2=$(echo 8080 | awk -v prefix=$PREFIX '{print prefix substr($0,3)}')
ADDRESS_PORT3=$(echo 9090 | awk -v prefix=$PREFIX '{print prefix substr($0,3)}')
ADDRESS_PORT4=$(echo 9091 | awk -v prefix=$PREFIX '{print prefix substr($0,3)}')

Create (or restore) a local key pair

Either create a new key pair or restore an existing wallet for your validator:

# Create new keypair
mantleNode keys add <KEYNAME>

# Restore existing gaia wallet with mnemonic seed phrase.
# You will be prompted to enter mnemonic seed.
mantleNode keys add <KEYNAME> --recover

# Query the keystore for your public address
mantleNode keys show <KEYNAME> -a

After creating a new key, the key information and seed phrase will be shown. It is essential to write this seed phrase down and keep it in a safe place. The seed phrase is the only way to restore your keys.

Setup cosmovisor

Upgrade to a validator

Do not attempt to upgrade your node to a validator until the node is fully in sync as per the previous step.

To upgrade the node to a validator, you will need to submit a create-validator transaction:

mantleNode tx staking create-validator \
  --amount 1000000umntl \
  --commission-max-change-rate "0.1" \
  --commission-max-rate "0.20" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --details "validators write bios too" \
  --pubkey=$(mantleNode tendermint show-validator) \
  --moniker $MONIKER_NAME \
  --chain-id mantle-1 \
  --gas-prices 0.025umntl \
  --from <KEYNAME>

The above transaction is just an example. There are many more flags that can be set to customise your validator, such as your validator website, or keybase.io id, etc. To see a full list:

mantleNode tx staking create-validator --help

Backup critical files

There are certain files that you need to backup to be able to restore your validator if, for some reason, it damaged or lost in some way. Please make a secure backup of the following files located in ~/.mantleNode/config/:

  • priv_validator_key.json

  • node_key.json

It is recommended that you encrypt the backup of these files.

Follow the instructions to setup cosmovisor and start the node.

⚛️
genesisTransactions/mantle-1 at main · AssetMantle/genesisTransactions
Assetmantle Validator Node Snapshot | Polkachu
here
2. Setup Cosmovisor