Skip to main content

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.