# Single Node ## Pre-requisite Readings - [Install Binary](./../../quickstart/installation) {prereq} - [Install Starport](https://docs.starport.network/intro/install.html) {prereq} ## Automated Localnet (script) You can customize the localtestnet script by changing values for convinience for example: ```bash # customize the name of your key, the chain-id, moniker of the node, keyring backend, and log level KEY="mykey" CHAINID="ethermint_9000-1" MONIKER="localtestnet" KEYRING="test" LOGLEVEL="info" # Allocate genesis accounts (cosmos formatted addresses) ethermintd add-genesis-account $KEY 100000000000000000000000000aphoton --keyring-backend $KEYRING # Sign genesis transaction ethermintd gentx $KEY 1000000000000000000000aphoton --keyring-backend $KEYRING --chain-id $CHAINID ``` The default configuration will generate a single validator localnet with the chain-id `ethermint_9000-1` and one predefined account (`mykey`) with some allocated funds at the genesis. You can start the local chain using: ```bash init.sh ``` ## Manual Localnet This guide helps you create a single validator node that runs a network locally for testing and other development related uses. ### Initialize node ```bash $MONIKER=testing $KEY=mykey $CHAINID="ethermint_9000-1" ethermintd init $MONIKER --chain-id=$CHAINID ``` ::: warning Monikers can contain only ASCII characters. Using Unicode characters will render your node unreachable. ::: You can edit this `moniker` later, in the `$(HOME)/.ethermintd/config/config.toml` file: ```toml # A custom human readable name for this node moniker = "" ``` You can edit the `$HOME/.ethermintd/config/app.toml` file in order to enable the anti spam mechanism and reject incoming transactions with less than the minimum gas prices: ```toml # This is a TOML config file. # For more information, see https://github.com/toml-lang/toml ##### main base config options ##### # The minimum gas prices a validator is willing to accept for processing a # transaction. A transaction's fees must meet the minimum of any denomination # specified in this config (e.g. 10aphoton). minimum-gas-prices = "" ``` ### Genesis Procedure ```bash # Create a key to hold your account ethermintd keys add $KEY # Add that key into the genesis.app_state.accounts array in the genesis file # NOTE: this command lets you set the number of coins. Make sure this account has some coins # with the genesis.app_state.staking.params.bond_denom denom, the default is staking ethermintd add-genesis-account $(ethermintd keys show validator -a) 1000000000stake,10000000000aphoton # Generate the transaction that creates your validator ethermintd gentx --name $KEY # Add the generated bonding transaction to the genesis file ethermintd collect-gentxs # Finally, check the correctness of the genesis.json file ethermintd validate-genesis ``` ### Run Testnet Now its safe to start the daemon: ```bash ethermintd start ``` You can then stop the node using Ctrl+C.