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

# Running a node

> Learn how to run your own Abstract node.

## Prerequisites

* **Installations Required:**
  * [Docker](https://docs.docker.com/get-docker/)
  * [Docker Compose](https://docs.docker.com/compose/install/)

## Setup Instructions

Clone the Abstract node repository and navigate to `external-node/`:

```bash theme={null}
git clone https://github.com/Abstract-Foundation/abstract-node
cd abstract-node/external-node
```

## Running an Abstract Node Locally

### Starting the Node

```bash theme={null}
docker compose --file testnet-external-node.yml up -d
```

### Reading Logs

```bash theme={null}
docker logs -f --tail=0 <container name>
```

Container name options:

* `testnet-node-external-node-1`
* `testnet-node-postgres-1`
* `testnet-node-prometheus-1`
* `testnet-node-grafana-1`

### Resetting the Node State

```bash theme={null}
docker compose --file testnet-external-node.yml down --volumes
```

### Monitoring Node Status

Access the [local Grafana dashboard](http://localhost:3000/d/0/external-node) to see the node status after recovery.

### API Access

* **HTTP JSON-RPC API:** Port `3060`
* **WebSocket API:** Port `3061`

### Important Notes

* **Initial Recovery:** The node will recover from genesis (until we set up a snapshot) on its first run, which may take up to a while. During
  this period, the API server will not serve any requests.
* **Historical Data:** For access to historical transaction data, consider recovery from DB dumps. Refer to the Advanced Setup section for more details.
* **DB Dump:** For nodes that operate from a DB dump, which allows starting an Abstract node with a full historical
  transactions history, refer to the documentation on running from DB dumps at [03\_running.md](https://github.com/matter-labs/zksync-era/blob/78af2bf786bb4f7a639fef9fd169594101818b79/docs/src/guides/external-node/03_running.md).

## System Requirements

The following are minimal requirements:

* **CPU:** A relatively modern CPU is recommended.
* **RAM:** 32 GB
* **Storage:**
  * **Testnet Nodes:** 30 GB
  * **Mainnet Nodes:** 300 GB, with the state growing about 1TB per month.
* **Network:** 100 Mbps connection (1 Gbps+ recommended)

## Advanced Setup

For additional configurations like monitoring, backups, recovery from DB dump or snapshot, and custom PostgreSQL
settings, please refer to the [ansible-en-role repository](https://github.com/matter-labs/ansible-en-role).
