> For the complete documentation index, see [llms.txt](https://stavr-team.gitbook.io/nodes-guides/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stavr-team.gitbook.io/nodes-guides/mainnets/kusama/node-installation.md).

# Node Installation

## [TELEMETRY](https://telemetry.polkadot.io/#list/0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe)

* **Hardware requirements**:

| Node Type | CPU | RAM  | Storage |
| --------- | --- | ---- | ------- |
| Mainnet   | 8   | 32GB | 2TB     |

#### Preparing the server

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
```

## Docker and docker-compose

```bash
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
```

## Build 24.02.25

```bash
cd $HOME
mkdir -p $HOME/.kusama
chown -R $(id -u):$(id -g) $HOME/.kusama

#Start
docker run -dit \
--name kusama_node \
--restart always \
--network host \
-v $HOME/.kusama:/data -u $(id -u ${USER}):$(id -g ${USER}) \
parity/polkadot --base-path /data --chain kusama \
--validator --name "<moniker>" \
--port 30333 \
--rpc-port 9933 \
--prometheus-port 9615 \
--telemetry-url 'wss://telemetry.polkadot.io/submit/ 1' \
--telemetry-url 'wss://telemetry-backend.w3f.community/submit 1'
```

* After launch, we wait for our node to synchronize. You can track our condition using telemetry

## [TELEMETRY](https://telemetry.polkadot.io/#list/0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe)

* After the node has synchronized, we pull out the key from our node by entering the command

```python
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933
```

### Creating a validator

* Go to the [chain](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.dwellir.com#/accounts) and first create a wallet
* We create a validator. To do this, select `Network - Staking - Accounts - Validator`

## SnapShot Mainnet | RocksDB (pruned) - updated every 24 hours <a href="#snapshot-mainnet-updated-every-5-hours" id="snapshot-mainnet-updated-every-5-hours"></a>

{% hint style="success" %}
<https://kusama-snapshot.stavr.tech/>
{% endhint %}

```bash
cd $HOME
apt install lz4
docker stop kusama_node
rm -rf $HOME/.kusama/chains/ksmcc3/db
curl -o - -L https://kusama.snapshot.stavr.tech/kusama-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.kusama/chains/ksmcc3/
docker restart kusama_node && docker logs kusama_node -fn 100
```

## SnapShot Mainnet | RocksDB (Archive) - updated every 7 days <a href="#snapshot-mainnet-updated-every-5-hours" id="snapshot-mainnet-updated-every-5-hours"></a>

{% hint style="success" %}
[`https://kusama-snapshot.stavr.tech/`](https://kusama-snapshot.stavr.tech/)
{% endhint %}

<pre class="language-bash"><code class="lang-bash">cd $HOME
apt install lz4
docker stop kusama_node
<strong>rm -rf $HOME/.kusama/chains/ksmcc3/db
</strong>curl -o - -L https://kusama-archive.snapshot.stavr.tech/kusama-archive-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.kusama/chains/ksmcc3/
docker restart kusama_node &#x26;&#x26; docker logs kusama_node -fn 100
</code></pre>

## [🧩Services and Tools🧩](https://stavr-team.gitbook.io/nodes-guides/mainnets/kusama/snapshot)

## Monitoring

You can set up your node status alarm here - [Monitoring](https://stavr-team.gitbook.io/nodes-guides/monitoring)

## Security

You can create secure management of your wallet and your node by following this links.

[TMKMS](https://stavr-team.gitbook.io/nodes-guides/tmkms)               [Wallet Security](https://stavr-team.gitbook.io/nodes-guides/wallet-security)

`logs`

```python
docker logs kusama_node -fn 100
```

`restart`

```
docker restart kusama_node
```

`delete node`

```bash
docker stop kusama_node
docker rm kusama_node
rm -rf $HOME/.kusama
docker system prune -af --volumes
```
