Releases: stellar/go
Horizon v2.28.1
Changelog
Fixed
- Submitting transaction with a future gapped sequence number greater than 1 past current source account sequence, may result in delayed 60s timeout response, rather than expected HTTP 400 error response with
tx_bad_seq
(5191)
Horizon v2.28.0
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 toFALSE
, whenTRUE
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 andSorobanMeta
will be nil. - API transaction model for
result_meta_xdr
will have same empty serialized xdr forxdr.TransactionMeta.V3
,Operations
,TxChangesAfter
,TxChangesBefore
will empty arrays andSorobanMeta
will be nil. - API
Operation
model forInvokeHostFunctionOp
type, will have emptyasset_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, orSTELLAR_CORE_URL
is present orCAPTIVE-CORE-HTTP-PORT
is present and set to non-zero value, orCAPTIVE-CORE_CONFIG_PATH
is used and the toml hasHTTP_PORT
set to non-zero andPUBLIC_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>
-
horizonclient-v13.0.0 & txnbuild
This is the stable release of Horizon Client with protocol 20 (Soroban support).
Key changes to support protocol 20 (Soroban)
New XDR Schema:
-
Support for new XDR schemas.
-
Three new operations related to Soroban and state expiration (see Interacting with Soroban via Stellar and State Expiration):
- invokeHostFunctionOp: Invoke contract actions.
- bumpExpirationFootprintOp: Bump expiration ledger of specified keys.
- restoreFootprintOp: Restore expiration of specified ledger keys.
Horizon API Changes:
/effects
can produce two new effects:contract_credited
occurs when a Stellar asset moves into its corresponding Stellar Asset Contract instancecontract_debited
occurs when a Stellar asset moves out of its corresponding Stellar Asset Contract instance
/assets/:name
contains two new fields:num_contracts
- the integer quantity of contracts that hold this assetcontracts_amount
- the total units of that asset held by contracts
/operations
has three new response schemas corresponding to the Soroban operations (described above)
Horizon v2.27.0
The following release notes are a combination of the release candidates (see RC1 and RC2 for deltas) and changes since then.
Upgrading to this version from <= 2.26.1 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.
This stable release adds support for Protocol 20.
Changelog
Breaking Changes
- The command line flag
--remote-captive-core-url
has been removed, as remote captive core functionality is now deprecated (4940). - XDR has been updated to the latest stable version for Protocol 20 (
stellar-xdr
@ bb54e50, 5079).
Added
- Added new command-line flag
--network
to specify the Stellar network (pubnet or testnet), aiming at simplifying the configuration process by automatically configuring the following parameters based on the chosen network:--history-archive-urls
,--network-passphrase
, and--captive-core-config-path
(4949). - Added
contract_credited
andcontract_debited
effects which are emitted whenever a Soroban contracts sends or receives a Stellar asset (4832). - Added
num_contracts
(total number of Soroban contracts which hold an asset) andcontracts_amount
(total amount of the asset held by all Soroban contracts) fields to asset stat summaries at/assets
(4805). - Added responses for new operations introduced in Protocol 20:
invoke_host_function
,extend_footprint_ttl
, andrestore_footprint
(4905). - Added a
ScVal.String()
method to thexdr
package (5112).
Fixed
- The same slippage calculation from the
v2.26.1
hotfix now properly excludes spikes for smoother trade aggregation plots (4999). - The ledger changes collected by
ingest.GetChangesFromLedgerEntryChanges
are now sorted in a deterministic order (5070). - Eviction of Soroban ledger entries is accommodated by the asset stats endpoint (5033).
- Database migration performance has improved (5056).
Horizon v2.27.0 RC2
Refer to prior Horizon-v2.27.0-rc1 release for information on bulk of changes present in 2.27.0, this is maintenance patch applied on top of Horizon-v2.27.0-rc1
for bug fix.
Fixed
- treat null is_payment values as equivalent to false values, avoid sql nil conversion errors(5060).
Horizon v2.27.0 Release Candidate
Upgrading to this version from <= 2.26.1 will trigger a state rebuild. During this process (which will take at least 10 minutes), Horizon will not ingest new ledgers.
This release adds support for Protocol 20
Breaking Changes
- The command line flag
--remote-captive-core-url
has been removed, as remote captive core functionality is now deprecated (4940).
Added
- Added new command-line flag
--network
to specify the Stellar network (pubnet or testnet), aiming at simplifying the configuration process by automatically configuring the following parameters based on the chosen network:--history-archive-urls
,--network-passphrase
, and--captive-core-config-path
(4949). - Added
contract_credited
andcontract_debited
effects which are emitted whenever a Soroban contracts sends or receives a Stellar asset (4832).
- Added
num_contracts
(total number of Soroban contracts which hold an asset) andcontracts_amount
(total amount of the asset held by all Soroban contracts) fields to asset stat summaries at/assets
(4805). - Added responses for new operations introduced in protocol 20:
invoke_host_function
,bump_footprint_expiration
, andrestore_footprint
(4905).
Fixed
horizonclient-v12.0.0 & txnbuild
First version of Horizon Client with protocol 20:Soroban support.
What's Changed
New XDR Schema:
-
Support for new XDR schemas.
-
Three new operations related to Soroban and state expiration (see Interacting with Soroban via Stellar and State Expiration):
- invokeHostFunctionOp: Invoke contract actions.
- bumpExpirationFootprintOp: Bump expiration ledger of specified keys.
- restoreFootprintOp: Restore expiration of specified ledger keys.
Horizon API Changes:
/effects
can produce two new effects:contract_credited
occurs when a Stellar asset moves into its corresponding Stellar Asset Contract instancecontract_debited
occurs when a Stellar asset moves out of its corresponding Stellar Asset Contract instance
/assets/:name
contains two new fields:num_contracts
- the integer quantity of contracts that hold this assetcontracts_amount
- the total units of that asset held by contracts
/operations
has three new response schemas corresponding to the Soroban operations (described above)
horizon-v2.26.2-pre-soroban
The latest horizon master branch before soroban features were merged in
Horizon v2.26.1
Fixes
- This hotfix allows ledger ingestion to continue in case of a liquidity pool slippage miscalculation. Its only side effect is that
/trades
and/trade_aggregations
may contain incorrect slippage (9a7522e
).
Horizon v2.26.0
Changes
- Improve error handling for when stellar-core crashes (4893)
- Suppress Core timeout error in log output such as
error ticking app: context deadline exceeded
when ingestion state machine is in build state. (4860)
Breaking Changes
- Modify the default value of
--captive-core-use-db
to true (4856)- This updates the default behavior of captive core to start in on-disk mode.
- To continue using the previous in-memory mode, explicitly set the
--captive-core-use-db
flag to false