Skip to content

Horizon v0.15.0

Compare
Choose a tag to compare
@bartekn bartekn released this 06 Nov 14:32
· 3295 commits to master since this release

DB migrations add a new fields and indexes on history_trades table. This is a very large table in CATCHUP_COMPLETE deployments so migration may take a long time (depending on your DB hardware). Please test the migrations execution time on the copy of your production DB first.

Breaking changes

  • Assets stats are disabled by default. This can be changed using an environment variable (ENABLE_ASSET_STATS=true) or CLI parameter (--enable-asset-stats=true). Please note that it has a negative impact on a DB and ingestion time.
  • In "Offers for Account", last_modified_time field endpoint can be null when ledger data is not available (has not been ingested yet).
  • "Trades for Offer" endpoint will query for trades that match the given offer on either side of trades, rather than just the "sell" offer. Offer IDs are now synthetic. You have to reingest history to update offer IDs.

Bug fixes and improvements

This release contains several bug fixes and improvements:

  • New /operation_fee_stats endpoint includes fee stats for the last 5 ledgers.
  • "Trades" endpoint can now be streamed.
  • In "Trade Aggregations" endpoint, offset parameter has been added.
  • Path finding bugs have been fixed and the algorithm has been improved. Check #719 for more information.
  • Connections (including streams) are closed after timeout defined using --connection-timeout CLI param or CONNECTION_TIMEOUT environment variable. If Horizon is behind a load balancer with idle timeout set, it is recommended to set this to a value equal a few seconds less than idle timeout so streams can be properly closed by Horizon.
  • Streams have been improved to check for updates every --sse-update-frequency CLI param or SSE_UPDATE_FREQUENCY environment variable seconds. If a new ledger has been closed in this period, new events will be sent to a stream. Previously streams checked for new events every 1 second, even when there were no new ledgers.
  • Rate limiting algorithm has been changed to GCRA.
  • Rate limiting in streams has been changed to be more fair. Now 1 credit has to be paid every time there's a new ledger instead of per request.
  • Rate limiting can be disabled completely by setting --per-hour-rate-limit=0 CLI param or PER_HOUR_RATE_LIMIT=0 environment variable.
  • Account flags now display auth_immutable value.
  • Logs can be sent to a file. Destination file can be set using an environment variable (LOG_FILE={file}) or CLI parameter (--log-file={file}).
  • horizon db backfill command has been fixed.
  • Fixed remoteAddrIP function to support IPv6.
  • Fixed route field in the logs when the request is rate limited.