Run a Full Node

Step 1: Clone the EVM Station Repository

Clone the EVM Station repository from the GitHub URL provided and navigate into the cloned directory.

git clone https://github.com/airchains-network/evm-station
cd evm-station;

Step 2: Declare and Initialize Variables

Declare and initialize variables essential for configuring the node. These variables define the node's identity, network parameters, cryptographic settings, file paths, and persistent peers.

KEYS=("dev0" "dev1" "dev2")
CHAINID="test-1234"
MONIKER="localtestnet"
PersistentPeers="id1@ip1:port1,id2@ip2:port2" // Example format replace with actual peers

KEYRING="test"
KEYALGO="eth_secp256k1"
LOGLEVEL="info"
HOMEDIR="./.evmstation"
EVMCHAINID="1234"

Step 3: Cleanup and Build Process

Ensure a clean state before compiling the source code to prevent potential conflicts from previous builds.

rm -rf ./build
make clean
make build

Step 4: Blockchain Node Initialization

Set up the basic structure for the node's operation, including directory structures and configuration files under the specified home directory.

/build/bin/evmstationd init $MONIKER --chain-id $CHAINID --home "$HOMEDIR"

Step 5: Configuration of Client and Node

Configure the node's client software to use a specific key management system and create a new key pair for transactions and blockchain interactions.

./build/bin/evmstationd config set client keyring-backend $KEYRING --home "$HOMEDIR"

./build/bin/evmstationd keys add ${KEYS[0]} --keyring-backend $KEYRING --algo $KEYALGO --home "$HOMEDIR"

Step 6: Genesis Configuration and Accounts Setup

Customize the genesis block with appropriate network parameters and account balances.

jq '.app_state["staking"]["params"]["bond_denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"

jq '.app_state["crisis"]["constant_fee"]["denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"

jq '.app_state["gov"]["deposit_params"]["min_deposit"][0]["denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"

jq '.app_state["mint"]["params"]["mint_denom"]="abera"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"

jq '.consensus["params"]["block"]["max_gas"]="30000000"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"


sed -i "/\[polaris\.polar\.chain\]/!b;n;c chain-id = \"$EVMCHAINID\"" $HOMEDIR/config/app.toml


//Note this is a test wallet address
./build/bin/evmstationd genesis add-genesis-account cosmos1yrene6g2zwjttemf0c65fscg8w8c55w58yh8rl 69000000000000000000000000abera --keyring-backend $KEYRING --home "$HOMEDIR"



for KEY in "${KEYS[@]}"; do
	./build/bin/evmstationd genesis add-genesis-account $KEY 100000000000000000000000000abera --keyring-backend $KEYRING --home "$HOMEDIR"
done

Step 7: Genesis Transaction and Validation

Finalize the genesis block by including transactions that set up the initial validators for the network.

./build/bin/evmstationd genesis gentx ${KEYS[0]} 1000000000000000000000abera --keyring-backend $KEYRING --chain-id $CHAINID --home "$HOMEDIR"

./build/bin/evmstationd genesis collect-gentxs --home "$HOMEDIR"

./build/bin/evmstationd genesis validate-genesis --home "$HOMEDIR"

Step 8: Start Node

Boot up the node, making it live and enabling it to connect to other nodes, process transactions, and participate in the blockchain network.

./build/bin/evmstationd start --pruning=nothing --log_level $LOGLEVEL --api.enabled-unsafe-cors --api.enable --api.swagger --minimum-gas-prices=0.0001abera --home "$HOMEDIR"

Follow these steps to initialize and start the EVM Station node for your blockchain network. Ensure each step is executed correctly to ensure the proper functioning of the node.

Last updated