- Adding the SDF stable repository to your system
- Quickstart
- Installing individual packages
- Upgrading
- Running Horizon in production
- Building Packages
- Running a Full Validator
- Publishing a History archive
- Backfilling a History archive
- Monitoring
- Testnet Reset
Running your own distributed Horizon setup is highly recommended for production environments.
reminder: the SDF horizon cluster does not have an SLA!
How you achieve this distributed environment is dependent on your internal infrastructure. If possible, using managed services such as AWS (ELB,RDS,EC2) or other cloud providers will greatly simplify your environment. All nodes should be monitored. The Monitoring describes recommended tooling and provides configuration examples.
Given this, the following principles should apply to most hosting environments.
- distribute the Horizon service across multiple load-balanced instances (ELB,EC2)
- only
ingest
on 1 horizon node - run a highly available PostgreSQL cluster ( or RDS) for the
horizon
database - run a non-validating
stellar-core
instance which the Horizon cluster will use to ingest and submit transactions to- Horizon needs access to a highly available
horizon
database - Horizon needs access to stellar-core on port 11626
- Horizon needs access to stellar-core's PostgreSQL database on port 5432
- Horizon needs access to a highly available
- run a standby non-validating
stellar-core
instance which the Horizon cluster can failover to for ingestion and transaction submission - use a floating IP (also called "virtual IP" or "VIP") to manage failovers to the standby core when required
- during failover the
core-db
andstellar-core
instance accessed by Horizon need to be updated, we suggest using a DNS record to avoid having to update configuration files
- during failover the