Skip to content

Horizon v2.28.0

Compare
Choose a tag to compare
@sreuland sreuland released this 26 Jan 21:29
24a7e9f

Changelog

Fixed

  • Ingestion performance improvements (4909)
  • Trade aggregation rebuild errors reported on db reingest range with parallel workers (5168)
  • Limited global flags displayed on cli help output (5077)
  • History archive network usage has been significantly reduced with caching. Warning: To support the cache, disk requirements may increase by up to 15GB (5171).

Added

  • We now include metrics for history archive requests (5166)
  • Http history archive requests now include a unique user agent (5166)
  • Added a deprecation warning for using command-line flags when running Horizon (5051)
  • New optional config DISABLE_SOROBAN_INGEST (5175). Defaults to FALSE, when TRUE and a soroban transaction is ingested, the following will occur:
    • no effects will be generated for contract invocations.
    • history_transactions.tx_meta column will have serialized xdr that equates to an empty xdr.TransactionMeta.V3, Operations, TxChangesAfter, TxChangesBefore will empty arrays and SorobanMeta will be nil.
    • API transaction model for result_meta_xdr will have same empty serialized xdr for xdr.TransactionMeta.V3, Operations, TxChangesAfter, TxChangesBefore will empty arrays and SorobanMeta will be nil.
    • API Operation model for InvokeHostFunctionOp type, will have empty asset_balance_changes

Breaking Changes

  • Deprecation of legacy, non-captive core ingestion(5158):
    • removed configuration flags --stellar-core-url-db, --cursor-name --skip-cursor-update, they are no longer usable.

    • removed automatic updating of core cursor from ingestion background processing.

      Note for upgrading on existing horizon deployments - Since horizon will no longer maintain advancement of this cursor on core, it may require manual removal of the cursor from the core process that your horizon was using for captive core, otherwise that core process may un-necessarily retain older data in buckets on disk up to the last cursor ledger sequence set by prior horizon release.

      The captive core process to check and verify presence of cursor usage is determined by the horizon deployment, if NETWORK is present, or STELLAR_CORE_URL is present or CAPTIVE-CORE-HTTP-PORT is present and set to non-zero value, or CAPTIVE-CORE_CONFIG_PATH is used and the toml has HTTP_PORT set to non-zero and PUBLIC_HTTP_PORT is not set to false, then it is recommended to perform the following preventative measure on the machine hosting horizon after upgraded to 2.28.0 and process restarted:

      $ curl http://<captive_core_process_url:captive_core_process_port>/getcursor
      # If there are no cursors reported, done, no need for any action
      # If any horizon cursors exist they need to be dropped by id. 
      # By default horizon sets cursor id to "HORIZON" but if it was customized 
      # using the --cursor-name flag the id might be different
      $ curl http://<captive_core_process_url:captive_core_process_port>/dropcursor?id=<reported_id_from_getcursor>