# Node Deployment

### Pillar

For the Pillar deployment process one will need access to both a local and a remote machine. The local machine is represented by the controller wallet, where you create the Pillar Slot and register the Pillar on the network. The remote machine is usually represented by a VPS with some minimum recommended specs and a public IP that is actively participating in the consensus protocol.

You will need to generate 3 distinct addresses for the Pillar creation tutorial:

* `pillarAddress` = address from which the Pillar is registered that contains the necessary funds (15,000 ZNN that will be locked and can be recovered after you disassemble the Pillar and 150,000 QSR + additional 10,000 QSR for every new Pillar Slot in the network that will be burned and cannot be recovered)
* `pillarRewardsAddress` = address used to collect the Pillar rewards
* `producerAddress` = address used to produce the momentums that is stored on the remote machine; must be generated from a different seed than your local wallet keyStore for security purposes

### Sentinel

The Sentinel deployment process is similar to the Pillar deployment process.

### Controller Wallet

The latest version of the `s y r i u s` wallet is recommended to be used as controller wallet. Advanced users can use the `znn-cli` instead.

### Remote Machine

These commands should be issued from your remote machine (e.g. VPS). If you won't use a VPS provider, you will need an\
additional setup including enabling port forwarding. This tutorial is intended for a VPS with some minimum recommended specs and a public IP.

### Minimum Requirements

#### Hardware:

* `CPU >= 4 cores`
* `RAM >= 4 GB`
* `Storage >= 40 GB free space`
* `>100Mbps network dedicated bandwidth`

#### Software:

* `Linux distros` e.g. Ubuntu 20.04 LTS/Debian 11
* Recommended `NTP configuration`\*
* Recommended `Watchdog service`\*

(\*) Included if the setup is performed using the znn-controller

## Steps

### 1. Download the `znn-controller`

See [zenon-network / go-zenon](https://github.com/zenon-network/go-zenon/releases) for the latest releases.

### 2. Run `znn-controller` as root

```
sudo ./znn-controller
```

### 3. Follow the provided instructions


---

# 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://docs.zenon.org/hypercore/technical/legacy/tutorials/linux/node-deployment.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.
