Horizon 1.0.0 Alpha
Pre-releaseNew 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
andfee_charged
to /fee_stats.
Breaking changes
Changed
-
Change multiple operation types to their canonical names for operation resources (#2134).
-
Change the type of the following fields from
number
tostring
:- Attribute
offer_id
in manage buy offer and manage sell offer operations. - Attribute
offer_id
inTrade
effect. - Attribute
id
in Offer resource. - Attribute
timestamp
andtrade_count
in Trade Aggregation resource.
- Attribute
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 (Usefee_charged
andmax_fee
fields instead - see #1372).