This release contains the initial implementation of the "Abridged History
System". It allows a horizon system to be operated without complete
knowledge of the ledger's history. With this release, horizon will start
ingesting data from the earliest point known to the connected stellar-core
instance, rather than ledger 1 as it behaved previously. See the admin
guide section titled "Ingesting stellar-core data" for more details.
- *Elder* ledgers have been introduced: An elder ledger is the oldest
ledger known to a db. For example, the `core_elder_ledger` attribute on
the root endpoint refers to the oldest known ledger stored in the connected
- Added the `history-retention-count` command line flag, used to specify
the amount of historical data to keep in the history db. This is expressed
as a number of ledgers, for example a value of `362880` would retain
roughly 6 weeks of data given an average of 10 seconds per ledger.
- Added the `history-stale-threshold` command line flag to enable stale
history protection. See the admin guide for more info.
- Horizon now reports the last ledger ingested to stellar-core using the
- Requests for data that precede the recorded window of history stored by
horizon will receive a `410 Gone` http response to allow software to
differentiate from other "not found" situations.
- The new `db reap` command will manually trigger the deletion of
unretained historical data
- A background process on the server now deletes unretained historical once
- BREAKING: When making a streaming request, a normal error response will
be returned if an error occurs prior to sending the first event.
Additionally, the initial http response and streaming preamble will not be
sent until the first event is available.
- BREAKING: `horizon_latest_ledger` has renamed to `history_latest_ledger`
- Horizon no longer needs to begin the ingestion of historical data from
ledger sequence 1.
- Rows in the `history_accounts` table are no longer identified using the
"Total Order ID" that other historical records use, but are rather using a
simple auto-incremented id.
- The `/accounts` endpoint, which lets a consumer page through the entire
set of accounts in the ledger, has been removed. The change from complete
to an abridged history in horizon makes the endpoint mostly useless, and
after consulting with the community we have decided to remove the endpoint.