[sdf-releases] Horizon - v0.15.0

  • From: "Bartek Nowotarski" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "bartek" for DMARC)
  • To: sdf-releases@xxxxxxxxxxxxx
  • Date: Tue, 6 Nov 2018 16:14:30 +0100

https://github.com/stellar/go/releases/tag/horizon-v0.15.0

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.

This release contains several bug fixes and improvements:

* New `/operation_fee_stats` endpoint includes fee stats for the last 5
ledgers.
* "Trades"
<https://www.stellar.org/developers/horizon/reference/endpoints/trades.html>
endpoint can now be streamed.
* In "Trade Aggregations"
<https://www.stellar.org/developers/horizon/reference/endpoints/trade_aggregations.html>
endpoint, `offset` parameter has been added.
* Path finding bugs have been fixed and the algorithm has been improved.
Check #719 <https://github.com/stellar/go/pull/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
<https://brandur.org/rate-limiting#gcra>.
* Rate limiting in streams has been changed to be more fair. Now 1 *credit*
has to be *paid* every second of a stream 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}`).

### 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"
<https://www.stellar.org/developers/horizon/reference/endpoints/offers-for-account.html>,
`last_modified_time` field  endpoint can be `null` when ledger data is not
available (has not been ingested yet).
* "Trades for Offer"
<https://www.stellar.org/developers/horizon/reference/endpoints/trades-for-offer.html>
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
<https://www.stellar.org/developers/horizon/reference/resources/trade.html#synthetic-offer-ids>.
You have to reingest history to update offer IDs.

### Other bug fixes

* `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.

Other related posts:

  • » [sdf-releases] Horizon - v0.15.0 - Bartek Nowotarski