# Node installation

## Installation

If you want to setup Gitopia fullnode manually follow the steps below

### Update and upgrade <a href="#update-and-upgrade" id="update-and-upgrade"></a>

sudo apt update && sudo apt upgrade -y

### Install GO <a href="#install-go" id="install-go"></a>

if ! \[ -x "$(command -v go)" ]; thenver="1.19.3"cd $HOMEwget "<https://golang.org/dl/go$ver.linux-amd64.tar.gz"sudo> rm -rf /usr/local/gosudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"rm "go$ver.linux-amd64.tar.gz"echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> \~/.bash\_profilesource \~/.bash\_profilefi

### Install node <a href="#install-node" id="install-node"></a>

cd $HOMErm -rf gitopiagit clone <https://github.com/gitopia-network/gitopia.gitcd> gitopiagit checkout v3.3.0make install

### Setting up vars <a href="#setting-up-vars" id="setting-up-vars"></a>

You should replace values in <> \<YOUR\_MONIKER> Here you should put name of your moniker (validator) that will be visible in explorer \<YOUR\_WALLET> Here you shoud put the name of your walletGITOPIA\_WALLET="\<YOUR\_WALLET\_NAME>"GITOPIA\_NODENAME="\<YOUR\_MONIKER>"GITOPIA\_CHAIN\_ID="gitopia"echo "export GITOPIA\_WALLET=${GITOPIA\_WALLET}export GITOPIA\_NODENAME=${GITOPIA\_NODENAME}export GITOPIA\_CHAIN\_ID=${GITOPIA\_CHAIN\_ID}" >> $HOME/.bash\_profile​source $HOME/.bash\_profile

### Configure your node <a href="#configure-your-node" id="configure-your-node"></a>

gitopiad config chain-id ${GITOPIA\_CHAIN\_ID}

### Initialize your node <a href="#initialize-your-node" id="initialize-your-node"></a>

gitopiad init ${GITOPIA\_NODENAME} --chain-id ${GITOPIA\_CHAIN\_ID}

### (OPTIONAL) Set custom ports <a href="#optional-set-custom-ports" id="optional-set-custom-ports"></a>

#### If you want to use non-default ports <a href="#if-you-want-to-use-non-default-ports" id="if-you-want-to-use-non-default-ports"></a>

GITOPIA\_PORT=\<SET\_CUSTOM\_PORT> #Example: GITOPIA\_PORT=56 (numbers from 1 to 64)sed -i.bak -e "s%^proxy\_app = \\"tcp\://127.0.0.1:26658\\"%proxy\_app = \\"tcp\://127.0.0.1:${GITOPIA\_PORT}658\\"%; s%^laddr = \\"tcp\://127.0.0.1:26657\\"%laddr = \\"tcp\://127.0.0.1:${GITOPIA\_PORT}657\\"%; s%^pprof\_laddr = \\"localhost:6060\\"%pprof\_laddr = \\"localhost:${GITOPIA\_PORT}060\\"%; s%^laddr = \\"tcp\://0.0.0.0:26656\\"%laddr = \\"tcp\://0.0.0.0:${GITOPIA\_PORT}656\\"%; s%^prometheus\_listen\_addr = \\":26660\\"%prometheus\_listen\_addr = \\":${GITOPIA\_PORT}660\\"%" /$HOME/.gitopia/config/config.tomlsed -i.bak -e "s%^address = \\"tcp\://0.0.0.0:1317\\"%address = \\"tcp\://0.0.0.0:${GITOPIA\_PORT}317\\"%; s%^address = \\"tcp\://localhost:1317\\"%address = \\"tcp\://0.0.0.0:${GITOPIA\_PORT}317\\"%; s%^address = \\":8080\\"%address = \\":${GITOPIA\_PORT}080\\"%; s%^address = \\"0.0.0.0:9090\\"%address = \\"0.0.0.0:${GITOPIA\_PORT}090\\"%; s%^address = \\"localhost:9090\\"%address = \\"localhost:${GITOPIA\_PORT}090\\"%; s%^address = \\"0.0.0.0:9091\\"%address = \\"0.0.0.0:${GITOPIA\_PORT}091\\"%; s%^address = \\"localhost:9091\\"%address = \\"localhost:${GITOPIA\_PORT}091\\"%; s%^address = \\"0.0.0.0:8545\\"%address = \\"0.0.0.0:${GITOPIA\_PORT}545\\"%; s%^ws-address = \\"0.0.0.0:8546\\"%ws-address = \\"0.0.0.0:${GITOPIA\_PORT}546\\"%" /$HOME/.gitopia/config/app.toml

### Config pruning <a href="#config-pruning" id="config-pruning"></a>

pruning="custom"pruning\_keep\_recent="100"pruning\_keep\_every="0"pruning\_interval="50"sed -i -e "s/^pruning \*=.\*/pruning = \\"$pruning\\"/" $HOME/.gitopia/config/app.tomlsed -i -e "s/^pruning-keep-recent \*=.\*/pruning-keep-recent = \\"$pruning\_keep\_recent\\"/" $HOME/.gitopia/config/app.tomlsed -i -e "s/^pruning-keep-every \*=.\*/pruning-keep-every = \\"$pruning\_keep\_every\\"/" $HOME/.gitopia/config/app.tomlsed -i -e "s/^pruning-interval \*=.\*/pruning-interval = \\"$pruning\_interval\\"/" $HOME/.gitopia/config/app.toml

### Set minimum gas price and null indexer <a href="#set-minimum-gas-price-and-null-indexer" id="set-minimum-gas-price-and-null-indexer"></a>

sed -i -e "s/^minimum-gas-prices \*=.\*/minimum-gas-prices = \\"0.001ulore\\"/" $HOME/.gitopia/config/app.tomlsed -i -e "s/^indexer \*=.\*/indexer = \\"null\\"/" $HOME/.gitopia/config/config.toml

### Create Service <a href="#create-service" id="create-service"></a>

sudo tee /etc/systemd/system/gitopiad.service > /dev/null <\<EOF\[Unit]Description=Gitopia mainnetAfter=network-online.target​\[Service]User=$USERExecStart=$(which gitopiad) startRestart=on-failureRestartSec=3LimitNOFILE=65535​\[Install]WantedBy=multi-user.targetEOF

### Reset blockchain info and restart your node <a href="#reset-blockchain-info-and-restart-your-node" id="reset-blockchain-info-and-restart-your-node"></a>

sudo systemctl daemon-reload

sudo systemctl enable gitopiad

gitopiad tendermint unsafe-reset-all --home $HOME/.gitopia --keep-addr-book

sudo systemctl restart gitopiad && sudo journalctl -u gitopiad -f -o cat

### (OPTIONAL) Use State Sync <a href="#optional-use-state-sync" id="optional-use-state-sync"></a>

#### ​[State Sync](https://chain-services.l0vd.com/mainnets/gitopia/installation-guide)​ <a href="#state-sync" id="state-sync"></a>

### Starting a validator <a href="#starting-a-validator" id="starting-a-validator"></a>

#### 1. Add a new key <a href="#id-1.-add-a-new-key" id="id-1.-add-a-new-key"></a>

gitopiad keys add ${GITOPIA\_WALLET}

**(OR)**

#### 1. Recover your key <a href="#id-1.-recover-your-key" id="id-1.-recover-your-key"></a>

gitopiad keys add ${GITOPIA\_WALLET} --recover GITOPIA\_WALLET\_ADDR=$(gitopiad keys show ${GITOPIA\_WALLET} -a)echo "export GITOPIA\_WALLET\_ADDR=${GITOPIA\_WALLET\_ADDR}" >> $HOME/.bash\_profile​source $HOME/.bash\_profile

### 2. Create validator <a href="#id-2.-create-validator" id="id-2.-create-validator"></a>

Wait until the node is synchronized.gitopiad tx staking create-validator \\--amount 1000000ulore \\--commission-max-change-rate "0.01" \\--commission-max-rate "0.20" \\--commission-rate "0.1" \\--min-self-delegation "1" \\--details "" \\--pubkey $(gitopiad tendermint show-validator) \\--moniker ${GITOPIA\_NODENAME} \\--chain-id ${GITOPIA\_CHAIN\_ID} \\--from ${GITOPIA\_WALLET\_ADDR} \\--gas-prices 0.001ulore \\--gas-adjustment 1.5 \\--gas auto \\--yes
