Releases: stellar/go
horizonclient v7.1.0 & txnbuild v7.1.0
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 toTransaction
. - Add
AddSignatureDecorated
function toTransaction
.
Bug Fix
BaseFee
inTransactionParams
when callingNewTransaction
is allowed to be zero because the fee can be paid by wrapping aTransaction
in aFeeBumpTransaction
. (#3622)
Horizon v2.4.0
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
andfee_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
andto_muxed_id
for Payment operations) - Effects:
account_muxed
,account_muxed_id
and additional fields depending on the effect (e.g.seller_muxed
andseller_muxed_id
for the Trade effect).
- Transactions:
Code Changes
stellar-ingest v2.0.0
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 anUnboundedRange
. -
The
CaptiveCoreBackend
now requires an all-inclusiveCaptiveCoreToml
object to configure Captive Core rather than an assortment of individual parameters. This object can be built from a TOML file (seeNewCaptiveCoreTomlFromFile
) or from parameters (seeNewCaptiveCoreToml
) as was done before. -
LedgerTransaction.Meta
has been renamed toUnsafeMeta
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
andNewLedgerTransactionReaderFromLedgerCloseMeta
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
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
Breaking changes
AllowTrustOpAsset
was renamed toAssetCode
,{Must}NewAllowTrustAsset
was renamed to{Must}NewAssetCodeFromString
.- Some methods from the
Operation
interface (BuildXDR()
,FromXDR()
andValidate()
) now take an additionalbool
parameter (withMuxedAccounts
)
to indicate whether SEP23 M-strkeys should be enabled.
New features
- Add support for Stellar Protocol 17 (CAP35):
Clawback
,ClawbackClaimableBalance
andSetTrustlineFlags
operations. - Add opt-in support for SEP23 M-strkeys for
MuxedAccount
s:- Some methods from the
Operation
interface (BuildXDR()
,FromXDR()
andValidate()
) now take an additionalbool
parameter (withMuxedAccounts
) - The parameters from
NewFeeBumpTransaction()
andNewTransaction()
now include a new field (EnableMuxedAccounts
) to enable M-strekeys. TransactionFromXDR()
now allows passing aTransactionFromXDROptionEnableMuxedAccounts
option, to enable M-strkey parsing.
- Some methods from the
Horizon 2.2.0
Upgrading to this version will trigger state rebuild. During this process (which can take up to 20 minutes) it will not ingest new ledgers.
Horizon v2.1.1
- 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
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 aLOG_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
, andnum_accounts
fields in/assets
endpoint are deprecated. Fields will be removed in Horizon 3.0. You can find the same data underbalances.authorized
, andaccounts.authorized
, respectively.
- The
- 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
andGET 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
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 toingest
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
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*
andVerify*
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.
- The following functions added the
- Use strings to represent source accounts in Operation structs (#3393) see example below:
bumpSequenceOp := txnbuild.BumpSequence{BumpTo: 100, SourceAccount: "GB56OJGSA6VHEUFZDX6AL2YDVG2TS5JDZYQJHDYHBDH7PCD5NIQKLSDO"}
- Remove
TxEnvelope()
functions fromTransaction
andFeeBumpTransaction
to simplify the API.ToXDR()
should be used instead ofTxEnvelope()
(#3377)