> For the complete documentation index, see [llms.txt](https://skyneticlabs.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://skyneticlabs.gitbook.io/docs/services/testnet-networks/arkeo/installation.md).

# Installation

Chain ID: arkeo-testnet-4 | Latest Version Tag: v1.0.8

#### Setup validator name

```bash
MONIKER=<your_moniker>
```

#### Install dependencies

#### Update system and install build tools

```bash
sudo apt -q update
sudo apt -qy install curl git jq lz4 npm build-essential
sudo apt -qy upgrade
```

#### Install GO

```bash
sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.24.6.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)
source $HOME/.bash_profile
go version
```

#### Download and build binaries

```bash
# Download Binary
cd $HOME
rm -rf arkeo
git clone https://github.com/arkeonetwork/arkeo.git
cd arkeo
git checkout v1.0.8

TAG=testnet make install
```

#### Сreate a service

```bash
# Download and install Cosmovisor
tee /etc/systemd/system/arkeod.service > /dev/null << EOF
[Unit]
Description=Arkeo Testnet4 node service
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which arkeod) start --home $HOME/.arkeo
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable arkeod
```

#### Initialize the node

```bash
# Set node configuration
arkeod config set client chain-id arkeo-testnet-4
arkeod config set client keyring-backend test
arkeod config set client node tcp://localhost:26657

# Initialize the node
arkeod init $MONIKER --chain-id arkeo-testnet-4
# Download genesis and addrbook
curl -Ls "https://file.notion.so/f/f/9b94d254-e9ed-42bb-a295-36ad41b6fdf8/ed7fd01e-7e77-41fe-ae6c-72465b3d3d86/genesis.json?table=block&id=45d085a3-bca1-4987-a7bc-5ebc8b9f8b8b&spaceId=9b94d254-e9ed-42bb-a295-36ad41b6fdf8&expirationTimestamp=1725278400000&signature=4sMXSDhnbDPfMD9OhjBj4EEznCbhfXm3Wu4QbV2uKIA&downloadName=genesis.json" > $HOME/.arkeo/config/genesis.json


# Add seeds
seeds="beeef4607ebbb98f5b2293b6407765067a73e781@seed.innovationtheory.com:26656,85341b428cf5993fcc04a324d95d14590ae5172c@seed2.innovationtheory.com:26656"
sed -i -e "s|^seeds *=.*|seeds = \"$seeds\"|" $HOME/.arkeo/config/config.toml

# Add peers
peers="c27c96c5b54a9f2bea776858e2cff364e410d2a8@peer1.innovationtheory.com:26656,f7da702c17e45e463adf21e57b1d0d936cbc97a3@peer2.innovationtheory.com:26656"
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.arkeo/config/config.toml

# Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.001uarkeo\"|" $HOME/.arkeo/config/app.toml

# Set pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "10"|' \
  $HOME/.arkeo/config/app.toml
```

#### Set custom ports

**You can change value CUSTOM\_PORT=165 to any other ports**

```bash
CUSTOM_PORT=165
```

```bash
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}66\"%" $HOME/.arkeo/config/config.toml
sed -i -e "s%^address = \"tcp://localhost:1317\"%address = \"tcp://localhost:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"localhost:9090\"%address = \"localhost:${CUSTOM_PORT}90\"%; s%^address = \"localhost:9091\"%address = \"localhost:${CUSTOM_PORT}91\"%; s%^address = \"0.0.0.0:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}45\"%; s%^ws-address = \"0.0.0.0:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}46\"%" $HOME/.arkeo/config/app.toml

#Set config with new custom port
arkeod config set client node tcp://localhost:${CUSTOM_PORT}57
```

#### Start service and check the logs

```bash
sudo systemctl start arkeod && sudo journalctl -u arkeod -f --no-hostname -o cat
```
