Skip to content

Releases: stellar/go

Horizon v2.23.0

28 Nov 13:25
131110f
Compare
Choose a tag to compare

Upgrading to this version will trigger a state rebuild. During this process, Horizon will not ingest new ledgers.

Fixes

  • Improve performance of /claimable_balances filters. This change should significantly improve ?asset= and ?claimant= filters. (#4690).
  • Reallocate slices after offer removals in order book graph. This is done to prevent keeping a large chunks of allocated but unused memory that can lead to OOM crash.
  • The ingestion subsystem will now properly use a pool of history archives if more than one is provided. (#4687)
  • Add horizon ingest build-state command which builds state at a specific ledger. Useful for debugging. (#4636)

Horizon v2.22.1

18 Oct 14:52
012bfe5
Compare
Choose a tag to compare

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

Fixes

  • horizon db migrate commands will not apply migrations if ingestion is disabled (4664).

Horizon v2.22.0

17 Oct 18:18
11b0616
Compare
Choose a tag to compare

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

Fixes

  • Database migrations will now acquire a lock on ingestion, preventing possible deadlocks (4587).

Changes

  • Optimizes startup by preserving the Captive Core storage directory if Horizon has ingested ahead of the requested ledger (4605).

DB Schema Migration

  • Introduces a new index that optimizes account queries filtered by asset (4635).

Horizon v2.21.0

08 Sep 12:40
d771e05
Compare
Choose a tag to compare

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

Changes

  • Bump Go to the latest version, including net/http and net/url security fixes (4577)

DB Schema Migration

  • Added indexes by id for assets in the respective history_trades tables. Ingestion will stop while the migration is being applied. (4565)

Horizon v2.20.0

15 Aug 21:10
ab30ead
Compare
Choose a tag to compare

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

DB Schema Migration

  • Added indexes by id for claimable balance and liquidity pool id's in the respective tx/ops tables. Ingestion will stop while the migration is being applied. (4455)

Changes

  • Orphaned rows in lookup tables (history_accounts, history_claimable_balances and history_liquidity_pools) are removed in small batches after each ledger if --history-retention-count is set. (4518, 4525)
  • Improve restart time of Captive-Core when started with --captive-core-use-db flag. The solution does not work on Windows. (4471)
  • Fix a bug in which state verifier would run if condition checking DB query fails. (4523)

Horizon v2.19.0

29 Jul 10:21
91d56a6
Compare
Choose a tag to compare

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

Breaking Changes

  • Update core version to 19.3.0 (4485).
  • Pass --console to captive core. This is due to a breaking change in stellar-core 19.3.0 (4487).

Changes

  • Run postgres autovacuum on history_trades_60000 table more frequently. (4412).
  • Change protocols/horizon.Transaction.AccountSequence to int64 from string. (4409).
  • Add missing signer key type names. (4429).
  • Update core version to 19.2.0. (4441).
  • Add User-Agent header to history archive HTTP requests. (4463).

DB Schema Migration

The migration makes the following schema changes:

  • tunes the history_trades_60000 table to run autovacuum more frequently. Migration should be brief, does not incur any data/runtime processing. It does not need a reingestion.

Horizon v2.18.1

03 Jul 19:35
011297d
Compare
Choose a tag to compare
  • Enabled txsub system to work if/when underlying horizon db connection is read only. (4418)
  • Optimize the claimable balance SQL query for best index query plan performance(4398)

DB Schema Migration

There is a new migration step added in this release, it makes the following schema changes:

  • creates new, history_transactions_filtered_tmp table related to enabling tx sub processing on read only, only ingest writes to the table. Deprecates, drops prior txsub_results table. Migration should be brief, does not incur any data/runtime processing.

Horizon v2.18.0

26 May 10:41
c6d3b04
Compare
Choose a tag to compare

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

New features

  • New Experimental Ingestion Filters Feature: Provide the ability to select which ledger transactions are accepted at ingestion time to be stored on horizon's historical databse.

    Define filter rules through Admin API and the historical ingestion process will check the rules and only persist the ledger transactions that pass the filter rules. Initially, two filters and corresponding rules are possible:

    • 'whitelist by account id' (4221)
    • 'whitelist by canonical asset id' (4222)

    The filters and their configuration are optional features and must be enabled with horizon command line parameters admin-port=4200 and enable-ingestion-filtering=true

    Once set, filter configurations and their rules are initially empty and the filters are disabled by default. To enable filters, update the configuration settings, refer to the Admin API Docs which are published on the Admin Port at http://localhost:<admin_port>/, follow details and examples for endpoints:

    • /ingestion/filters/account
    • /ingestion/filters/asset.
  • Added disable-path-finding Horizon flag to disable the path finding endpoints. This flag should be enabled on ingesting Horizon instances which do not serve HTTP traffic (4399).

Performance improvements

  • Querying claimable balances has been optimized (4385).
  • Querying trade aggregations has been optimized (4389).

Fixes

  • Postgres connections for non ingesting Horizon instances are now configured to timeout on long running queries / transactions (4390).

DB Schema Migration

The migration makes the following schema changes:

  • adds new tables: account_filter_rules, asset_filter_rules and txsub_results

This migration will execute quickly.

Horizon v2.17.1

27 May 17:54
946a1d3
Compare
Choose a tag to compare

Performance tuning focused release.

  • Querying claimable balances has been optimized (4385).
  • Querying trade aggregations has been optimized (4389).
  • Postgres connections for non ingesting Horizon instances are now configured to timeout on long running queries / transactions (4390).
  • Added disable-path-finding Horizon flag to disable the path finding endpoints. This flag should be enabled on ingesting Horizon instances which do not serve HTTP traffic (4399).

Horizon v2.17.0

02 May 21:07
a384ff6
Compare
Choose a tag to compare

This is a promotion of the v2.17.0 release candidate with two additional changes. The following changelog summarizes changes since the last stable version, v2.16.1.

Upgrading to this version from <= v2.8.3 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.

New features

Support for Protocol 19 (4340):

  • Account records can now contain two new, optional fields:
    "sequence_ledger": 0, // uint32 ledger number
    "sequence_time": "0"  // uint64 unix time in seconds, as a string

The absence of these fields indicates that the account hasn't taken any actions since prior to the Protocol 19 release. Note that they'll either be both present or both absent.

  • Transaction records can now contain the following optional object:
    "preconditions": {
      "timebounds": {
        "min_time": "0",  // uint64 unix time in seconds, as a string
        "max_time": "0"   // as above
      },
      "ledgerbounds": {
        "min_ledger": 0,  // uint32 ledger number
        "max_ledger": 0   // as above
      },
      "min_account_sequence": "0",          // int64 sequence number, as a string
      "min_account_sequence_age": "0",      // uint64 unix time in seconds, as a string
      "min_account_sequence_ledger_gap": 0, // uint32 ledger count

      "extra_signers": [] // list of signers as StrKeys
    }

All of the top-level fields within this object are also optional. However, the "ledgerbounds" object will always have at least its min_ledger field set.

Note that the existing "valid_before_time" and "valid_after_time" fields on the top-level object will be identical in value to the "preconditions.timebounds.min_time" and "preconditions.timebounds.min_time" fields, respectively, if those exist. The "valid_before_time" and "valid_after_time" fields are now considered deprecated and will be removed in Horizon v3.0.0.

DB Schema Migration

The migration makes the following schema changes:

  • adds new, optional columns to the history_transactions table related to the new preconditions
  • adds new, optional columns to the accounts table related to the new account extension
  • amends the signer column of the accounts_signers table to allow signers of arbitrary length

This migration does not back-fill, so it should execute quickly.

Deprecations

The following fields on transaction records have been deprecated and will be removed in a future version:

  • "valid_before" and "valid_after"

These fields are now represented by preconditions.timebounds.min_time and preconditions.timebounds.max_time as strings that are int64 UNIX timestamps in seconds.

Full Diff: horizon-v2.16.1...horizon-v2.17.0
Full Changelog: services/horizon/CHANGELOG.md