Skip to content

Releases: stellar/go

horizonclient v7.1.0 & txnbuild v7.1.0

01 Jun 17:15
163fc5c
Compare
Choose a tag to compare

horizonclient

  • Added transaction and operation result codes to the horizonclient.Error string for easy glancing at string only errors for underlying cause.
  • Fix bug in the transaction submission where requests with large transaction payloads fail with an HTTP 414 URI Too Long error (#3643).

txnbuild

New features

  • Add SequenceNumber function to Transaction.
  • Add AddSignatureDecorated function to Transaction.

Bug Fix

  • BaseFee in TransactionParams when calling NewTransaction is allowed to be zero because the fee can be paid by wrapping a Transaction in a FeeBumpTransaction. (#3622)

Horizon v2.4.0

01 Jun 15:34
Compare
Choose a tag to compare

Upgrading to this version from <= v2.1.1 will trigger a state rebuild. During this process (which can take up to 20 minutes), Horizon will not ingest new ledgers.

DB State Migration

  • This release comes with a small DB schema change (new multiplexed-account-related columns are incorporated). It should not take more than five minutes to run due to new columns being NULL-able.

Deprecations

  • Deprecate --captive-core-config-append-path in favor of --captive-core-config-path. The difference between the two flags is that --captive-core-config-path will validate the configuration file to reject any fields which are not supported by captive core (3629).

New features

  • Add more in-depth Prometheus metrics (count & duration) for db queries. (3597, 3605)

  • HTTP request logs will now print the Origin header if Referer is not set. (3599)

  • Add Multiplexed Account details to API responses (additional _muxed and _muxed_id optional fields following what's described in SEP 23):

    • Transactions: account_muxed, account_muxed_id, fee_account and fee_account_muxed.
    • Operations: source_account_muxed, source_account_muxed_id and additional fields depending on the operation (e.g. from_muxed, from_muxed_id, to_muxed and to_muxed_id for Payment operations)
    • Effects: account_muxed, account_muxed_id and additional fields depending on the effect (e.g. seller_muxed and seller_muxed_id for the Trade effect).

Code Changes

  • Fix bug in horizon db reingest range command which required the --ingest flag to be set (3625).

  • Fix bug in causing database connections to be closed when the HTTP request was cancelled. (3630)

stellar-ingest v2.0.0

24 May 21:48
b2450c3
Compare
Choose a tag to compare

This release of the ingest package is related to the release of Horizon v2.3.0 and introduces some breaking changes for those building their own tools. Refer to stellar-ingest-v1.0.0 for more on this package.

Breaking Changes

  • Many APIs now require a context.Context parameter, allowing you to interact with the backends and control calls in a more finely-controlled manner. This includes the readers (ChangeReader et al.) as well as the backends themselves (CaptiveStellarCore et al.).

  • GetLedger() always blocks now, even for an UnboundedRange.

  • The CaptiveCoreBackend now requires an all-inclusive CaptiveCoreToml object to configure Captive Core rather than an assortment of individual parameters. This object can be built from a TOML file (see NewCaptiveCoreTomlFromFile) or from parameters (see NewCaptiveCoreToml) as was done before.

  • LedgerTransaction.Meta has been renamed to UnsafeMeta to highlight that users should be careful when interacting with it.

  • Remote Captive Core no longer includes the present field in the ledger response JSON.

New Features

  • NewLedgerChangeReaderFromLedgerCloseMeta and NewLedgerTransactionReaderFromLedgerCloseMeta are new ways to construct readers from a particular single ledger.

Other Changes

  • The remote Captive Core client timeout has doubled.

  • Captive Core now creates a temporary directory (captive-core-...) in the specified storage path (current directory by default) that it cleans it up on shutdown rather than in the OS's temp directory.

Horizon v2.3.0

15 May 06:39
5029e28
Compare
Choose a tag to compare

Upgrading to this version from <= v2.1.1 will trigger a state rebuild. During this process (which can take up to 20 minutes), Horizon will not ingest new ledgers.

New features

  • Introduces a flag (--ro-database-url / RO_DATABASE_URL) which allows setting a connection to a read-replica database. This flag makes Horizon take into account data propagation lag to the replica instance, adding retries if the data is out of sync (3574).

Code changes

  • Improved test suite coverage and stability (3560, 3562, 3551, and 3547).

  • Improved session handling and timeouts (3576, 3545, and 3567).

  • Improved stability of configuring Captive Core, intelligently merging parameters from the possible sources. Specifically, it will now prefer either the command-line parameter (e.g. --captive-core-peer-port or its env-var equivalent) or the user-supplied append file (--captive-core-append-path) over Horizon's internal defaults. However, if a value is set in both the append file and at the command-line, an error will be thrown unless both values are equal (3558).

horizonclient v7.0.0 & txnbuild v7.0.0

15 Apr 11:51
c8c12a1
Compare
Choose a tag to compare

Breaking changes

  • AllowTrustOpAsset was renamed to AssetCode, {Must}NewAllowTrustAsset was renamed to {Must}NewAssetCodeFromString.
  • Some methods from the Operation interface (BuildXDR(),FromXDR() and Validate()) now take an additional bool parameter (withMuxedAccounts)
    to indicate whether SEP23 M-strkeys should be enabled.

New features

  • Add support for Stellar Protocol 17 (CAP35): Clawback, ClawbackClaimableBalance and SetTrustlineFlags operations.
  • Add opt-in support for SEP23 M-strkeys for MuxedAccounts:
    • Some methods from the Operation interface (BuildXDR(),FromXDR() and Validate()) now take an additional bool parameter (withMuxedAccounts)
    • The parameters from NewFeeBumpTransaction() and NewTransaction() now include a new field (EnableMuxedAccounts) to enable M-strekeys.
    • TransactionFromXDR() now allows passing a TransactionFromXDROptionEnableMuxedAccounts option, to enable M-strkey parsing.

Horizon 2.2.0

20 Apr 15:32
7d7e580
Compare
Choose a tag to compare

Upgrading to this version will trigger state rebuild. During this process (which can take up to 20 minutes) it will not ingest new ledgers.

  • Add num_claimable_balances and claimable_balances_amount fields to asset stat summaries at /assets (3502).
  • Improve ingestion reliability when running multiple Horizon ingestion instances (3518).

Horizon v2.1.1

10 Apr 06:01
fee60c9
Compare
Choose a tag to compare
  • When ingesting a backlog of ledgers, Horizon sometimes consumes ledgers faster than the rate at which Captive Core emits them. Previously this scenario caused failures in the ingestion system. That is now fixed in (3531).

Horizon v2.1.0

30 Mar 13:44
58dc3a7
Compare
Choose a tag to compare

DB State Migration

  • This release comes with an internal DB represenatation change: the claimable_balances table now represents the claimable balance identifiers as an hexadecimal string (as opposed to base64).

The migration will be performed by the ingestion system (through a state rebuild) and, thus, if some of your Horizon nodes are not ingestors (i.e. no --ingestion flag enabled) you may experience 500s in the GET /claimable_balances/ requests until an ingestion node is upgraded. Also, it's worth noting that the rebuild process will take several minutes and no new ledgers will be ingested until the rebuild is finished.

Breaking changes

  • Add a flag --captive-core-storage-path/CAPTIVE_CORE_STORAGE_PATH that allows users to control the storage location for Captive Core bucket data (3479).
    Previously, Horizon created a directory in /tmp to store Captive Core bucket data. Now, if the captive core storage path flag is not set, Horizon will default to using the current working directory.
  • Add a flag --captive-core-log-path/CAPTIVE_CORE_LOG_PATH that allows users to control the location of the logs emitted by Captive Core (3472). If you have a LOG_FILE_PATH entry in your Captive Core toml file remove that entry and use the horizon flag instead.
  • --stellar-core-db-url / STELLAR_CORE_DATABASE_URL should only be configured if Horizon ingestion is enabled otherwise Horizon will not start (3477).

New features

  • Add an endpoint which determines if Horizon is healthy enough to receive traffic (3435).
  • Sanitize route regular expressions for Prometheus metrics (3459).
  • Add asset stat summaries per trust-line flag category (3454).
    • The amount, and num_accounts fields in /assets endpoint are deprecated. Fields will be removed in Horizon 3.0. You can find the same data under balances.authorized, and accounts.authorized, respectively.
  • Add a flag --captive-core-peer-port/CAPTIVE_CORE_PEER_PORT that allows users to control which port the Captive Core subprocess will bind to for connecting to the Stellar swarm. (3483).
  • Add 2 new HTTP endpoints GET claimable_balances/{id}/transactions and GET claimable_balances/{id}/operations, which respectively return the transactions and operations related to a provided Claimable Balance Identifier {id}.
  • Add Stellar Protocol 16 support. This release comes with support for Protocol 16 (CAP 35: asset clawback). See the downstream SDK issue template for details on what changed on Horizon's side. For full details, please read CAP 35.

Horizon v2.0.0

01 Mar 19:21
f23d046
Compare
Choose a tag to compare

Before you upgrade

Please read the Captive Core doc which contains new requirements and migration guide.

Captive Stellar-Core

Introducing the stable release with Captive Stellar-Core mode enabled by default. Captive mode relaxes Horizon's operational requirements. It allows running Horizon without a fully fledged Core instance and, most importantly, without a Core database. More information about this new mode can be found in Captive Core doc.

If you run into issues please check Known Issues or report an issue. Please ask questions in Keybase or Stack Exchange.

Breaking changes

  • There are new config params (below) required by Captive Stellar-Core. Please check the Captive Core guide for migration tips.
    • STELLAR_CORE_BINARY_PATH - a path to Stellar-Core binary,
    • CAPTIVE_CORE_CONFIG_APPEND_PATH - defines a path to a file to append to the Stellar Core configuration file used by captive core.
  • The expingest command has been renamed to ingest since the ingestion system is not experimental anymore.
  • Removed --rate-limit-redis-key and --redis-url configuration flags.

horizonclient v6.0.0 & txnbuild v6.0.0

22 Feb 18:07
24e14d4
Compare
Choose a tag to compare

Breaking changes

  • Updates the SEP-10 helper function parameters to support SEP-10 v3.1.
    • The following functions added the webAuthDomain parameter:
      • BuildChallengeTx()
      • ReadChallengeTx()
      • VerifyChallengeTxThreshold()
      • VerifyChallengeTxSigners()
    • The webAuthDomain parameter is verified in the Read* and Verify* functions if it is contained in the challenge transaction, and is ignored if the challenge transaction was generated by an older implementation that does not support the webAuthDomain.
    • The webAuthDomain parameter is included in challenge transactions generated in the Build* function, and the resulting challenge transaction is compatible with SEP-10 v2.1 or greater.
  • Use strings to represent source accounts in Operation structs (#3393) see example below:
    bumpSequenceOp := txnbuild.BumpSequence{BumpTo: 100, SourceAccount: "GB56OJGSA6VHEUFZDX6AL2YDVG2TS5JDZYQJHDYHBDH7PCD5NIQKLSDO"}
  • Remove TxEnvelope() functions from Transaction and FeeBumpTransaction to simplify the API. ToXDR() should be used instead of TxEnvelope() (#3377)