# Instructions to Run Full Node Hardware --- #### Supported - **Operating System (OS):** Ubuntu 20.04 - **CPU:** 1 core - **RAM:** 2GB - **Storage:** 25GB SSD #### Recommended - **Operating System (OS):** Ubuntu 20.04 - **CPU:** 2 core - **RAM:** 4GB - **Storage:** 50GB SSD # A) Setup ## 1) Install Golang (go) 1.1) Remove any existing installation of `go` ``` sudo rm -rf /usr/local/go ``` 1.2) Install latest/required Go version (installing `go1.17.2`) ``` curl https://golang.org/dl/go1.17.2.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz ``` 1.3) Update env variables to include `go` ``` cat <<'EOF' >>$HOME/.profile export GOROOT=/usr/local/go export GOPATH=$HOME/go export GO111MODULE=on export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin EOF source $HOME/.profile ``` 1.4) Check the version of go installed ``` go version ``` ### 2) Install required software packages ``` sudo apt-get install git curl build-essential make jq -y ``` ### 3) Install `ethermint` ``` git clone https://github.com/vulcanize/ethermint.git cd ethermint git fetch --all git checkout v0.1.0-dev make install ``` ### 4) Verify your installation ``` ethermintd version --long ``` On running the above command, you should see a similar response like this. Make sure that the *version* and *commit hash* are accurate ``` name: ethermint server_name: ethermintd ``` ### 5) Initialize Node **Not required if you have already initialized before** ``` ethermintd init --chain-id ethermint_81337-1 ``` On running the above command, node will be initialized with default configuration. (config files will be saved in node's default home directory (~/.ethermintd/config) NOTE: Backup node and validator keys . You will need to use these keys at a later point in time. --- # B) Starting Node ## 1) Download Final Genesis Use `curl` to download the genesis file **Replace your **genesis** file with published genesis file** ```shell curl http://167.172.173.94:26657/genesis | jq .result.genesis > ~/.ethermintd/config/genesis.json ``` Verify sha256 hash of genesis file with the below command ``` jq -S -c -M '' ~/.ethermintd/config/genesis.json | shasum -a 256 ``` genesis sha256 hash should be ``` 4e5b68b5652a608c44c33e669c84ac179d9c0e301f958b5448f037a53c5cbb4e ``` ## 2) Update Peers & Seeds in config.toml ``` peers="5ad2e6c35f2c84ff3ee31d89a95b34d92cb6afb1@157.230.101.237:26656,defc95b08547b6ef254723ad9621967a7e819020@161.35.223.44:26656" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.ethermintd/config/config.toml ``` ## 3) Start the Full Node #### 3.1) Start node as `systemctl` service 3.1.1) Create the service file ``` sudo tee /etc/systemd/system/ethermintd.service > /dev/null <