# 🔌 Installation

### Install Go and Cosmovisor

Feel free to skip this step if you already have Go and Cosmovisor.

**Install Go**

We will use Go `v1.22.4` as example here. The code below also cleanly removes any previous Go installation.

```
sudo rm -rvf /usr/local/go/
wget https://golang.org/dl/go1.22.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
rm go1.22.4.linux-amd64.tar.gz
```

**Configure Go**

Unless you want to configure in a non-standard way, then set these in the `~/.profile` file.

```
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
```

**Install Cosmovisor**

We will use Cosmovisor `v1.0.0` as example here.

```
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0
```

### Install Node

Install the current version of node binary.

```
git clone https://github.com/allora-network/allora-chain allora
cd allora
git checkout v0.4.0
make install
```

### Configure Node

**Initialize Node**

Please replace `YOUR_MONIKER` with your own moniker.

```
allorad init YOUR_MONIKER --chain-id allora-testnet-1
```

**Download Genesis**

The genesis file link below is Polkachu's mirror download. The best practice is to find the official genesis download link.

```
wget -O genesis.json https://snapshots.polkachu.com/testnet-genesis/allora/genesis.json --inet4-only
mv genesis.json ~/.allorad/config
```

**Configure Seed**

```
sed -i 's/seeds = ""/seeds = "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@testnet-seeds.polkachu.com:26756"/' ~/.allorad/config/config.toml
```

### Launch Node

**Configure Cosmovisor Folder**

Create Cosmovisor folders and load the node binary.

```
# Create Cosmovisor Folders
mkdir -p ~/.allorad/cosmovisor/genesis/bin
mkdir -p ~/.allorad/cosmovisor/upgrades

# Load Node Binary into Cosmovisor Folder
cp ~/go/bin/allorad ~/.allorad/cosmovisor/genesis/bin
```

**Create Service File**

Create a `allora.service` file in the `/etc/systemd/system` folder with the following code snippet. Make sure to replace `USER` with your Linux user name. You need sudo previlege to do this step.

```
[Unit]
Description="allora node"
After=network-online.target

[Service]
User=USER
ExecStart=/home/USER/go/bin/cosmovisor start
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=allorad"
Environment="DAEMON_HOME=/home/USER/.allorad"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"

[Install]
WantedBy=multi-user.target
```

**Start Node Service**

```
# Enable service
sudo systemctl enable allora.service

# Start service
sudo service allora start

# Check logs
sudo journalctl -fu allora
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://services.noderuner.xyz/allora-network/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
