Releases: stellar/go
horizonclient & txnbuild v14.0.0
This release includes support for Protocol 21
horizonclient
- services/horizon: return null txmeta in api model when SKIP_TXMETA enabled (#5228)
- clients/horizonclient: allow sending user-defined headers on requests (#5214)
- clients/stellarcore horizon: Obtain and expose diagnostic events in transaction endpoint (#5148)
- Bump go version to 1.22 (#5232)
txnbuild
- Bump XDR for soroban-pubnet release (#5079)
Full Changelog: horizonclient-v13.0.0...horizonclient-v14.0.0
Horizon v2.30.0
What's Changed
This is the first release that supports Protocol 21.
Added
- Bump XDR for protocol 21
- Make reaping batch sizes configurable via --history-retention-reap-count (#5272)
- Log tx meta when ingestion failures occur (#5268)
- Add deprecation warning for --captive-core-use-db (#5231)
Fixed
- Optimized reingestion by addressing performance slowdown due to unnecessary operations on history_transactions_filtered_tmp. Removed obsolete EnableIngestionFiltering flag. (#5283)
- Fix deadlock in parallel ingestion (#5263)
- Add missing tables to TruncateIngestStateTables() (#5253)
- Performance improvements in ingest library
- Reduce memory consumption of CheckpointChangeReader during state verification and state rebuild (#5270)
- Remove unnecessary use of ChangeCompactor to reduce memory bloat during ingestion (#5252)
Full Changelog: horizon-v2.29.0...horizon-v2.30.0
Horizon v2.29.0
Changelog
Added
- New
db_error_total
metrics key with labelsctx_error
,db_error
, anddb_error_extra
(5225). - Bumped go version to the latest (1.22.1) (5232)
- Add metrics for ingestion loaders (5209).
- Add metrics for http api requests in flight and requests received (5240).
- Add
MAX_CONCURRENT_REQUESTS
, defaults to 1000, limits the number of horizon api requests in flight (5244)
Fixed
- History archive access is more effective when you pass list of URLs to Horizon: they will now be accessed in a round-robin fashion, use alternative archives on errors, and intelligently back off (5224)
- Remove captive core info request error logs (5145)
- Removed duplicate "Processed Ledger" log statement during resume state (5152)
- Fixed incorrect duration for ingestion processor metric (5216)
- Fixed sql performance on account transactions query (5229)
- Fix bug in claimable balance change processor (5246)
- Delay canceling queries from client side when there's a statement / transaction timeout configured in postgres (5223)
Breaking Changes
- The Horizon API Transaction resource field in json
result_meta_xdr
is now optional and Horizon API will not emit the field when Horizon has been configured withSKIP_TXMETA=true
, effectively null, otherwise if Horizon is configured withSKIP_TXMETA=false
which is default, then the API Transaction fieldresult_meta_xdr
will remain present and populated with base64 encoded xdr (5228).
Horizon v2.28.3
Changelog
Fixed
- Fix claimable_balance_claimants subquery in GetClaimableBalances() 5207
Added
- New optional config
SKIP_TXMETA
(5189). Defaults toFALSE
, whenTRUE
the following will occur:- history_transactions.tx_meta column will have serialized xdr that equates to empty for any protocol version, such as for
xdr.TransactionMeta.V3
,Operations
,TxChangesAfter
,TxChangesBefore
will be empty arrays andSorobanMeta
will be nil.
- history_transactions.tx_meta column will have serialized xdr that equates to empty for any protocol version, such as for
Breaking Changes
- Removed
DISABLE_SOROBAN_INGEST
configuration parameter, use the newSKIP_TXMETA
parameter instead.
horizon-v2.28.2
What's Changed
Fixed
- History archive caching would cause file corruption in certain environments 5197
- Server error in claimable balance API when claimant, asset and cursor query params are supplied 5200
Full Changelog: horizon-v2.28.1...horizon-v2.28.2
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).