Skip to content
This repository has been archived by the owner on Jan 22, 2020. It is now read-only.

v0.6.0 - Abridged history and more

Compare
Choose a tag to compare
@nullstyle nullstyle released this 20 Jul 18:48
· 145 commits to master since this release

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.

Added

  • 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 stellar-core database.
  • 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 setcursor command.
  • 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 per hour.

Changed

  • 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.

Removed

  • 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.