The Horizon service is responsible for synchronizing with the Stellar network and processing ledger data. To understand the scope of Horizon's services, please read the configuring section before you move on to the prerequisites for computation.
The Horizon service can be installed on bare metal or a virtual machine. It is natively supported on both Linux and Windows operating systems.
Single Instance Deployment Model
For a basic setup using the Single Instance Deployment model, you will need a sum of two distinct compute profiles:
- One for hosting the Horizon service
- Another for hosting the PostgreSQL server
The minimum hardware specifications to effectively run Horizon are as follows:
Horizon Compute Instance:
- CPU: 4 cores
- RAM: 16 GB
- Storage: SSD with a capacity of 100 GB capable of handling at least 1.5K IOPS (I/O operations per second)
PostgreSQL Database Server Compute Instance:
- CPU: 4 cores
- RAM: 32 GB
- Storage: SSD with a capacity of 2 TB (NVMe or Direct Attached Storage) capable of handling at least 7K IOPS (I/O operations per second)
Please note that a minimum of PostgreSQL version 12 is required.
These specifications assume a 30-day retention window for data storage. For a longer retention window, the system requirements will be higher. For more information about data ingestion, history retention, and managing storage, check the ingestion section.
Multiple Instance Deployment
To achieve high availability, redundancy, and high throughput, explore the scaling strategy. It provides detailed prerequisites and guidelines to determine the appropriate number of Horizon instances to deploy.
Ensure that the Horizon instance can establish a connection with the PostgreSQL database instance. The default port for PostgreSQL is 5432.
A stable and fast network connection with the Internet is required for any Horizon instance running the ingestion role. This is to ensure it has efficient outbound connectivity to remote hosts in the quorum set and archive urls for the chosen Stellar network. During ingestion, the Horizon instance communicates with these hosts, receiving network transaction data through its local captive core sub-process.
Hardware requirements may increase as the Stellar network grows and/or if you're sharing resources or using custom configs.