# Installation

### Hardware requirements[​](https://docs.celestia.org/nodes/validator-node#hardware-requirements) <a href="#hardware-requirements" id="hardware-requirements"></a>

The following hardware minimum requirements are recommended for running a validator node:

* Memory: **8 GB RAM**
* CPU: **6 cores**
* Disk: **500 GB SSD Storage**
* Bandwidth: **1 Gbps for Download/1 Gbps for Upload**

**Update if needed**&#x20;

```
sudo apt update && sudo apt upgrade -y
```

## Insall packages

```
sudo apt install curl lz4 tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu -y
```

**Install GO**&#x20;

```
cd $HOME ver="1.21.1" wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" sudo rm -rf /usr/local/go sudo 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" >> $HOME/.bash_profile source $HOME/.bash_profile go version
```

```
cd $HOME
git clone https://github.com/celestiaorg/celestia-app.git
cd celestia-app
git checkout tags/v3.0.2 -b v3.0.2
make install
cd celestia-app
```

```
celestia-appd init "your node" --chain-id celestia
celestia-appd config chain-id celestia
celestia-appd config keyring-backend test
```

## Copy genesis - Minimum gas prices - Addrbook

```
cd $HOME
git clone https://github.com/celestiaorg/networks

# copy genesis
cp $HOME/networks/celestia/genesis.json $HOME/.celestia-app/config/genesis.json
```

```
SEEDS="9aa8a73ea9364aa3cf7806d4dd25b6aed88d8152@celestia.seed.mzonder.com:13156"
sed -i "s|^seeds *=.*|seeds = \"$SEEDS\"|" $HOME/.celestia-app/config/config.toml

sed -i 's/^minimum-gas-prices *=.*/minimum-gas-prices = "0.002utia"/' $HOME/.celestia-app/config/app.toml

sed -i 's/^indexer *=.*/indexer = "kv"/' $HOME/.celestia-app/config/config.toml

sed -i 's/^discard_abci_responses *=.*/discard_abci_responses = false/' $HOME/.celestia-app/config/config.toml
```

```
# pruning and snapshots
snapshot_interval="2000"

# nothing for archive
sed -i "s/^pruning *=.*/pruning = \"nothing\"/;\
s/^snapshot-interval *=.*/snapshot-interval = $snapshot_interval/" $HOME/.celestia-app/config/app.toml
```

**Create service**&#x20;

```
tee $HOME/celestia-appd.service > /dev/null <<EOF 
[Unit]
Description=celestia-appd 
After=network-online.target 
[Service] 
User=$USER 
ExecStart=$(which celestia-appd) start --home $HOME/.celestia-app 
Restart=on-failure 
RestartSec=10 LimitNOFILE=65535 
[Install] 
WantedBy=multi-user.target
EOF
sudo mv $HOME/celestia-appd.service /etc/systemd/system/
sudo systemctl enable celestia-appd
sudo systemctl daemon-reload
```

```
celestia-appd keys add wallet
```

\
Check addr Validator<br>

```
 celestia-appd keys show yourwallet --bech val -a
```

**Snapshot**

```
sudo systemctl stop celestia-appd 

cp $HOME/.celestia-app/data/priv_validator_state.json $HOME/.celestia-app/priv_validator_state.json.backup 

rm -rf $HOME/.celestia-app/data $HOME/.celestia-app/wasmPath
curl https://mainnet-files.itrocket.net/celestia/snap_celestia.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.celestia-app 

mv $HOME/.celestia-app/priv_validator_state.json.backup $HOME/.celestia-app/data/priv_validator_state.json 

sudo systemctl restart celestia-appd && sudo journalctl -u celestia-appd -f
```

Check sync\ <br>

```
celestia-appd status 2>&1 | jq .SyncInfo.catching_up
```

If it is False => Create Validator

```
CELESTIA_MONIKER=LuckyResearch
celestia-appd tx staking create-validator \
--amount=1000000utia \
--pubkey=$(celestia-appd tendermint show-validator) \
--moniker=$CELESTIA_MONIKER \
--chain-id=celestia \
--commission-rate=0.1 \
--commission-max-rate=0.2 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1000000 \
--from=wallet \
--identity=F971ECC74111BE74 \
--keyring-backend=test \
--fees=36000utia \
--gas-adjustment=1.5 \
--gas=500000 \
-y
```


---

# 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.luckyresearch.org/lucky-research-services/mainet/celestia/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.
