Skip to content

Horizon 1.0.0 Alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@abuiles abuiles released this 24 Jan 18:58
6c383f7

New Ingestion System

This alpha release previews the first major release of Horizon. This release is NOT recommended for production deployments. It is suitable for testing setups, staging servers, and developer use. This release allows Horizon operators to become familiar with Horizon's significant new features, and try them out in their own setups, in advance of the stable release.

The most substantial element of this release is a full rewrite of Horizon's ledger ingestion engine, which enables some key features:

  • A set of important new endpoints (see below). Some of these were impossible under the previous ingestion architecture.
  • An in-memory order book graph for rapid querying.
  • The ability to run parallel ingestion over multiple Horizon hosts, improving service availability for production deployments.

The new engine resolves multiple issues that were present in the old system. For example:

  • Horizon's coupling to Stellar-Core's database is dramatically reduced.
  • Data inconsistency due to lag between endpoints is eliminated.
  • Slow endpoints (path-finding for example) are now speedy.

Finally, the rearchitecting makes new reliability features possible. An example is the new internal state verifier, which guarantees consistency between the local Horizon state and the public history archives.

The testing guide contains all the information needed to start testing the new ingestion system.

Added

  • Add /accounts endpoint, which allows filtering accounts that have a given signer or a trustline to an asset.
  • Add /offers endpoint, which lists all offers on the network and allows filtering by seller account or by selling or buying asset.
  • Add /paths/strict-send endpoint, which enables discovery of optimal "strict send" paths between assets.
  • Add /paths/strict-receive endpoint, which enables discovery of optimal "strict receive" paths between assets.
  • Add the fields max_fee and fee_charged to /fee_stats.

Breaking changes

Changed

Removed

  • Remove the following fields from /fee_stats:

    • min_accepted_fee
    • mode_accepted_fee
    • p10_accepted_fee
    • p20_accepted_fee
    • p30_accepted_fee
    • p40_accepted_fee
    • p50_accepted_fee
    • p60_accepted_fee
    • p70_accepted_fee
    • p80_accepted_fee
    • p90_accepted_fee
    • p95_accepted_fee
    • p99_accepted_fee
  • Remove fee_paid field from Transaction resource (Use fee_charged and max_fee fields instead - see #1372).