> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polygon.technology/llms.txt
> Use this file to discover all available pages before exploring further.

# Prerequisites

> System requirements, port configuration, and setup checklist for running a Polygon Chain full node or validator node.

## Node system requirements

Please note that all system requirements listed below are presented in a *Minimum/Recommended* format.

### Mainnet specs

| Node type             | RAM         | CPU            | Storage                                                                       | Network bandwidth |
| --------------------- | ----------- | -------------- | ----------------------------------------------------------------------------- | ----------------- |
| Full Node/Sentry Node | 32 GB/64 GB | 8 core/16 core | 4 TB/6 TB                                                                     | 1 Gbit/s          |
| Validator Node        | 32 GB/64 GB | 8 core/16 core | 4 TB/6 TB                                                                     | 1 Gbit/s          |
| Archive Node (Erigon) | 64 GB       | 16 core        | 16 TB(`io1` or above with at least 20k+ iops and RAID-0 based disk structure) | 1 Gbit/s          |

### Testnet (Amoy) specs

| Node type             | RAM        | CPU            | Storage                                                                            | Network bandwidth |
| --------------------- | ---------- | -------------- | ---------------------------------------------------------------------------------- | ----------------- |
| Full Node/Sentry Node | 8 GB/16 GB | 8 core/16 core | 1 TB/2 TB                                                                          | 1 Gbit/s          |
| Validator Node        | 8 GB/16 GB | 8 core/16 core | 1 TB/2 TB                                                                          | 1 Gbit/s          |
| Archive Node (Erigon) | 16 GB      | 16 core        | 1 TB/2 TB (`io1` or above with at least 20k+ iops and RAID-0 based disk structure) | 1 Gbit/s          |

## Downloading the snapshot

It is recommended that you keep your snapshots handy before setting up the node. Link to the snapshot documentation [here](https://docs.polygon.technology/pos/how-to/snapshots/).

## Open necessary ports

### Sentry/full nodes

|           Port          |  Protocol | Description                                                                                                                                 |
| :---------------------: | :-------: | ------------------------------------------------------------------------------------------------------------------------------------------- |
|         `26656`         |    TCP    | Heimdall (CometBFT) P2P. Heimdall service connects your node to another node’s Heimdall service using this port.                            |
|         `30303`         | TCP + UDP | Bor P2P. TCP carries peer connections (RLPx); UDP carries peer discovery. Both must be open or your node will struggle to find peers.       |
|           `22`          |    TCP    | For the validator to be able to SSH from wherever they are.                                                                                 |
|         `26660`         |    TCP    | Prometheus port for CometBFT/Heimdall. Not required to be opened to the public. Only allow for the monitoring systems (Prometheus/Datadog). |
|          `7071`         |    TCP    | Metric port for Bor. Only needs to be opened for the Monitoring system.                                                                     |
| `8545`, `8546`,  `1317` |    TCP    | Can be opened for Bor HTTP RPC, Bor WS RPC, and Heimdall REST API respectively; but only if really necessary.                               |

### Validator nodes

|   Port  |  Protocol | Description                                                                                                                                                            |
| :-----: | :-------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   `22`  |    TCP    | Opening this to the public is not a good idea as the default SSH port 22 is prone to attacks. It is better to secure it by allowing it only in a closed network (VPN). |
| `30303` | TCP + UDP | To be opened to only the sentry to which the validator is connected, for Bor P2P (TCP) and peer discovery (UDP).                                                       |
| `26656` |    TCP    | To be opened to only the sentry to which the validator is connected, for Heimdall (CometBFT) P2P.                                                                      |
| `26660` |    TCP    | Prometheus port for CometBFT/Heimdall. Not required to be opened to the public. Only allow for the monitoring systems (Prometheus/Datadog).                            |
|  `7071` |    TCP    | Metric port for Bor. Only needs to be opened for the monitoring system.                                                                                                |

## Install RabbitMQ

<Note title="Only for validator nodes">
  This step is only relevant for validator nodes.
</Note>

Before setting up your validator node, it’s advisable to install the RabbitMQ service. You can use the following commands to set up RabbitMQ (if it’s not already installed):

```bash theme={null}
sudo apt-get update
sudo apt install build-essential
sudo apt install erlang
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.8/rabbitmq-server_3.10.8-1_all.deb
sudo dpkg -i rabbitmq-server_3.10.8-1_all.deb
```

## Connect to Ethereum RPC endpoint

<Note title="Only for validator nodes">
  This step is only relevant for validator nodes.
</Note>

Validator nodes need to connect to an Ethereum RPC endpoint. You may use your own Ethereum node, or utilize [external infrastructure providers](https://www.alchemy.com/chain-connect/chain/ethereum).

## Mandatory checklist for validators

Please follow the below checklist in order to set up your validator node using binaries, Ansible, or packages.

| Checklist           | Binaries                                                                                   | Ansible                                                                                  | Packages                                                                                   |
| ------------------- | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Machines required   | 2 Machines - *sentry* & *validator*                                                        | 3 Machines - *local machine*, *sentry* and *validator*                                   | 2 Machines - *sentry* & *validator*                                                        |
| Install Go packages | Yes                                                                                        | No                                                                                       | No                                                                                         |
| Install Python      | No                                                                                         | Yes (only on the local machine where the Ansible Playbook runs)                          | No                                                                                         |
| Install Ansible     | No                                                                                         | Yes (only on one machine)                                                                | No                                                                                         |
| Install Bash        | No                                                                                         | No                                                                                       | Yes                                                                                        |
| Run Build Essential | Yes                                                                                        | No                                                                                       | No                                                                                         |
| Node setup          | [Using binaries](https://docs.polygon.technology/pos/how-to/validator/validator-binaries/) | [Using Ansible](https://docs.polygon.technology/pos/how-to/validator/validator-ansible/) | [Using packages](https://docs.polygon.technology/pos/how-to/validator/validator-packages/) |

## Related

* **[Polygon Chain overview](/pos/overview)**: what the node is participating in: dual-layer architecture, milestones, checkpoints.
* **[Become a validator](/pos/get-started/becoming-a-validator)**: staking, delegation, and the full path from node to active validator.
* **[RPC endpoints](/pos/reference/rpc-endpoints)**: if you only need a connection to the network without running your own node.
