Skip to content

Releases: stellar/go

Horizon v0.16.1

28 Feb 17:01
Compare
Choose a tag to compare
  • Fixes high severity error in ingestion system.

Horizon v0.17.0

26 Feb 19:59
f510ce5
Compare
Choose a tag to compare

Critical!

This release contains a critical bug! Please upgrade directly to 0.17.2.

Upgrade notes

This release introduces ingestion of failed transactions. This feature is turned off by default. To turn it on set environment variable: INGEST_FAILED_TRANSACTIONS=true or CLI param: --ingest-failed-transactions=true. Please note that ingesting failed transactions can double DB space requirements (especially important for full history deployments).

Database migration notes

Previous versions work fine with new schema so you can migrate (horizon db migrate up using new binary) database without stopping the Horizon process. To reingest ledgers run horizon db reingest using Horizon 0.17.0 binary. You can take advantage of the new horizon db reingest range for parallel reingestion.

Deprecations

  • /operation_fee_stats is deprecated in favour of /fee_stats. Will be removed in v0.18.0.

Breaking changes

  • Fields removed in this version:
    • Root > protocol_version, use current_protocol_version and core_supported_protocol_version.
    • Ledger > transaction_count, use successful_transaction_count and failed_transaction_count.
    • Signer > public_key, use key.
  • This Horizon version no longer supports Core <10.0.0. Horizon can still ingest version <10 ledgers.
  • Error event name during streaming changed to error to follow W3C specification.

Changes

  • Added ingestion of failed transactions (see Upgrade notes). Use include_failed=true GET parameter to display failed transactions, operations and payments in collection endpoints. Single transaction endpoints (/transactions/{id}, /transactions/{id}/operations and /transactions/{id}/payments) display information even if a transaction is failed so it's important to check successful and transaction_successful fields.
  • /fee_stats endpoint has been extended with fee percentiles and ledger capacity usage. Both are useful in transaction fee estimations.
  • Fixed a bug causing slice bounds out of range at /account/{id}/offers endpoint during streaming.
  • Added horizon db reingest range X Y that reingests ledgers between X and Y sequence number (closed intervals).
  • Many code improvements.

Horizon v0.16.0

04 Feb 20:19
Compare
Choose a tag to compare

Upgrade notes

  • Ledger > Admins need to reingest old ledgers because we introduced successful_transaction_count and failed_transaction_count.

Database migration notes

Previous versions work fine with Horizon 0.16.0 schema so you can migrate (horizon db migrate up) database without stopping the Horizon process. To reingest ledgers run horizon db reingest using Horizon 0.16.0 binary.

Deprecations

  • Root > protocol_version will be deprecated in v0.17.0. It is relaced by current_protocol_version and core_supported_protocol_version.
  • Ledger > transaction_count will be deprecated in v0.17.0.
  • Signer > public_key will be deprecated in v0.17.0.

Changes

  • Improved horizon db migrate script. It will now either success or show a detailed message regarding why it failed.
  • Fixed effects ingestion of circular payments.
  • Improved account query performances for payments and operations.
  • Added successful_transaction_count and failed_transaction_count to ledger resource.
  • Fixed the wrong protocol version displayed in root resource by adding current_protocol_version and core_supported_protocol_version.
  • Improved streaming for single objects. It won't send an event back if the current event is the same as the last event sent.
  • Fixed ingesting effects of empty trades. Empty trades will be ignored during ingestion.

Horizon v0.15.4

17 Jan 19:19
eac57a5
Compare
Choose a tag to compare
  • Fixed multiple issues in transaction submission subsystem.
  • Support for client fingerprint headers.
  • Fixed parameter checking in horizon db backfill command.

Horizon v0.15.3

07 Jan 16:35
Compare
Choose a tag to compare
  • Fixed a bug in Horizon DB reaping code.
  • Fixed query checking code that generated ERROR-level log entries for invalid input.

Horizon v0.15.2

13 Dec 14:57
Compare
Choose a tag to compare
  • Added horizon db init-asset-stats command to initialize asset_stats table. This command should be run once before starting ingestion if asset stats are enabled (ENABLE_ASSET_STATS=true).
  • Fixed asset_stats table to support longer home_domains.
  • Fixed slow trades DB query.

Horizon v0.15.1

09 Nov 21:59
Compare
Choose a tag to compare
  • Fixed memory leak in SSE stream code.

Horizon v0.15.0

06 Nov 14:32
Compare
Choose a tag to compare

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.

Friendbot v0.0.1

16 Oct 10:05
92db8e1
Compare
Choose a tag to compare

Initial friendbot release

Horizon v0.14.2

27 Sep 11:57
Compare
Choose a tag to compare

Bug fixes

  • Fixed and improved txsub package (#695). This should resolve many issues connected to Timeout responses.
  • Improve stream error reporting (#680).
  • Checking ingest.Cursor errors in Session (#679).
  • Added account ID validation in /account/{id} endpoints (#684).