# 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 `laconicd` ``` git clone https://github.com/cerc-io/laconicd.git cd laconicd git fetch --all git checkout main make install ``` ### 4) Verify your installation ``` laconicd 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: laconicd server_name: laconicd ``` ### 5) Initialize Node **Not required if you have already initialized before** ``` laconicd init --chain-id laconic_81337-2 ``` On running the above command, node will be initialized with default configuration. (config files will be saved in node's default home directory (~/.laconicd/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 # Will be updated curl {GENESIS_LINK} | jq .result.genesis > ~/.laconicd/config/genesis.json ``` Verify sha256 hash of genesis file with the below command ``` jq -S -c -M '' ~/.laconicd/config/genesis.json | shasum -a 256 ``` genesis sha256 hash should be ``` {WILL BE UPDATED} ``` ## 2) Update Peers & Seeds in config.toml ``` {peers={WILL BE UPDATED}} sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.laconicd/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/laconicd.service > /dev/null <