Releases: stellar/stellar-core
v24.1.0
Stability improvements
- Add copilot-instructions by @sisuresh in #4890
- Minor prepared statements cleanup by @marta-lokhova in #4904
- Replace unsaturated add calculations for limits in herder by @drebelsky in #4909
- LedgerTxn thread invariance by @marta-lokhova in #4910
- Herder: do not go out of sync if we're applying an abnormally long ledger by @marta-lokhova in #4911
- Refactor SorobanNetworkConfig to be immutable and reduce its caching. by @dmkozh in #4878
- Use a separate PRNG in LedgerTxn cache by @marta-lokhova in #4914
- Fix flaky "apply generated parallel tx sets" test. by @dmkozh in #4919
- Do not delete RUST_TARGET_DIR unconditionally by @graydon in #4922
- Add past security fixes in security-protocol-release-notes.md by @anupsdf in #4920
- Guard emptyConfig with BUILD_TESTS by @dmkozh in #4923
- Parallel apply cleanup by @sisuresh in #4908
- Mempool and block production performance optimizations by @marta-lokhova in #4897
- Update quorum set documentation by @drebelsky in #4928
- properly initialize seed for RandomEviction cache by @SirTyson in #4936
- Small fixes to apply load by @SirTyson in #4935
- Remove option to use global prng in random eviction cache by @sisuresh in #4937
- Remove obsolete test (that happens to do AC_RUN and breaks some environments) by @graydon in #4938
- Changes to support Ubuntu 24.04 builds by @jacekn in #4932
- Remove rust_bridge checkValid roundtrip by @SirTyson in #4921
- Account for background work when in virtual time by @marta-lokhova in #4946
- Soroban apply optimization by @SirTyson in #4942
- Only propagate live contract count to metric by @graydon in #4934
- Clean up histogram generator and add classic txn byte sizes by @drebelsky in #4927
- Productionize background tx signature validation by @bboston7 in #4926
- commitChangesFromThreads optimization by @SirTyson in #4951
- Install llvm-19 toolchain on focal by @drebelsky in #4954
- Remove unnecessary disk write by @SirTyson in #4952
- LedgerTxn fixes by @SirTyson in #4953
- Add metrics that count the number of evicted transactions. by @dmkozh in #4955
- Add experimental flag for dalek library by @SirTyson in #4950
- Make herder tests more reproducible by @drebelsky in #4960
- Speed up offline catchup by skipping in-memory state rebuild in some cases by @marta-lokhova in #4957
- Remove kDBBackend by @SirTyson in #4961 - This change triggers a database migration.
- Bump protocol to 24, update env and xdr for BN254 by @sisuresh in #4956
- Offline catchup fix by @marta-lokhova in #4963
- Add redis to the perftests image by @jacekn in #4966
- Merge changes from v24 release branch to
masterby @dmkozh in #4970 - Consistently use
structfor the type ofProtocol23CorruptionDataVerifierby @drebelsky in #4973 - Cleanup changes merged from P24 branch. by @dmkozh in #4977
- Emit p23 mint/burn events for the SAC by @sisuresh in #4980
- Switch BucketManager to AppConnector by @marta-lokhova in #4975
- Run the build with check-test-tx-meta sequentially to get most cache hits by @anupsdf in #4918
- Avoid redundant eviction disk reads in p23 by @SirTyson in #4979
- Fix feePool upgrade logic past p24 by @sisuresh in #4984
- Cancel old runs on the same PR on every new push by @marta-lokhova in #4986
- Namespace runners by @graydon in #4988
- CI performance tweaks by @graydon in #4989
- Make state archival startup check opt-in, optimize memory consumption by @marta-lokhova in #4985
- revert ci-build.sh and build.yml to b1bd05e by @graydon in #4990
- Revert "Update autoconf to new version, to silence noise-warnings" by @marta-lokhova in #4992
New features
- Added max sac TPS test by @SirTyson in #4900
- Added batched max_sac_tps configs by @SirTyson in #4941
- Make information about (potentially) dead nodes available to operators by @drebelsky in #4931
- State Archival Consistency Invariant by @marta-lokhova in #4968
Breaking changes
- Allow specification of classic transaction sizes in bytes by @drebelsky in #4866 - drop support for
LOADGEN_OP_COUNT_FOR_TESTINGandLOADGEN_OP_COUNT_DISTRIBUTION_FOR_TESTING
Future deprecation warning
None.
Known issues
Protocol issues:
https://github.com/orgs/stellar/projects/52
Toolchain Notes
This release is the last one to support llvm-12 on focal and jammy packages. Going forward, support for focal will be dropped, and jammy will be built with llvm-19.
Full Changelog: v23.0.1...v24.1.0rc1
v24.1.0rc1
Stability improvements
- Add copilot-instructions by @sisuresh in #4890
- Minor prepared statements cleanup by @marta-lokhova in #4904
- Replace unsaturated add calculations for limits in herder by @drebelsky in #4909
- LedgerTxn thread invariance by @marta-lokhova in #4910
- Herder: do not go out of sync if we're applying an abnormally long ledger by @marta-lokhova in #4911
- Refactor SorobanNetworkConfig to be immutable and reduce its caching. by @dmkozh in #4878
- Use a separate PRNG in LedgerTxn cache by @marta-lokhova in #4914
- Fix flaky "apply generated parallel tx sets" test. by @dmkozh in #4919
- Do not delete RUST_TARGET_DIR unconditionally by @graydon in #4922
- Add past security fixes in security-protocol-release-notes.md by @anupsdf in #4920
- Guard emptyConfig with BUILD_TESTS by @dmkozh in #4923
- Parallel apply cleanup by @sisuresh in #4908
- Mempool and block production performance optimizations by @marta-lokhova in #4897
- Update quorum set documentation by @drebelsky in #4928
- properly initialize seed for RandomEviction cache by @SirTyson in #4936
- Small fixes to apply load by @SirTyson in #4935
- Remove option to use global prng in random eviction cache by @sisuresh in #4937
- Remove obsolete test (that happens to do AC_RUN and breaks some environments) by @graydon in #4938
- Changes to support Ubuntu 24.04 builds by @jacekn in #4932
- Remove rust_bridge checkValid roundtrip by @SirTyson in #4921
- Account for background work when in virtual time by @marta-lokhova in #4946
- Soroban apply optimization by @SirTyson in #4942
- Only propagate live contract count to metric by @graydon in #4934
- Clean up histogram generator and add classic txn byte sizes by @drebelsky in #4927
- Productionize background tx signature validation by @bboston7 in #4926
- commitChangesFromThreads optimization by @SirTyson in #4951
- Install llvm-19 toolchain on focal by @drebelsky in #4954
- Remove unnecessary disk write by @SirTyson in #4952
- LedgerTxn fixes by @SirTyson in #4953
- Add metrics that count the number of evicted transactions. by @dmkozh in #4955
- Add experimental flag for dalek library by @SirTyson in #4950
- Make herder tests more reproducible by @drebelsky in #4960
- Speed up offline catchup by skipping in-memory state rebuild in some cases by @marta-lokhova in #4957
- Remove kDBBackend by @SirTyson in #4961 - This change triggers a database migration.
- Bump protocol to 24, update env and xdr for BN254 by @sisuresh in #4956
- Offline catchup fix by @marta-lokhova in #4963
- Add redis to the perftests image by @jacekn in #4966
- Merge changes from v24 release branch to
masterby @dmkozh in #4970 - Consistently use
structfor the type ofProtocol23CorruptionDataVerifierby @drebelsky in #4973 - Cleanup changes merged from P24 branch. by @dmkozh in #4977
- Emit p23 mint/burn events for the SAC by @sisuresh in #4980
- Switch BucketManager to AppConnector by @marta-lokhova in #4975
- Run the build with check-test-tx-meta sequentially to get most cache hits by @anupsdf in #4918
- Avoid redundant eviction disk reads in p23 by @SirTyson in #4979
- Fix feePool upgrade logic past p24 by @sisuresh in #4984
- Cancel old runs on the same PR on every new push by @marta-lokhova in #4986
- Namespace runners by @graydon in #4988
- CI performance tweaks by @graydon in #4989
- Make state archival startup check opt-in, optimize memory consumption by @marta-lokhova in #4985
- revert ci-build.sh and build.yml to b1bd05e by @graydon in #4990
- Revert "Update autoconf to new version, to silence noise-warnings" by @marta-lokhova in #4992
New features
- Added max sac TPS test by @SirTyson in #4900
- Added batched max_sac_tps configs by @SirTyson in #4941
- Make information about (potentially) dead nodes available to operators by @drebelsky in #4931
- State Archival Consistency Invariant by @marta-lokhova in #4968
Breaking changes
- Allow specification of classic transaction sizes in bytes by @drebelsky in #4866 - drop support for
LOADGEN_OP_COUNT_FOR_TESTINGandLOADGEN_OP_COUNT_DISTRIBUTION_FOR_TESTING
Future deprecation warning
None.
Known issues
Protocol issues:
https://github.com/orgs/stellar/projects/52
Toolchain Notes
This release is the last one to support llvm-12 on focal and jammy packages. Going forward, support for focal will be dropped, and jammy will be built with llvm-19.
Full Changelog: v23.0.1...v24.1.0rc1
v24.0.0
What's Changed
- Cleanup tx queue and add more metrics by @dmkozh
- Fixed outdated eviction bug by @SirTyson
- Wire up p24 soroban submodule by @graydon
- Add xlm to the feePool to reflect p23 burn by @sisuresh
- Support different versions of banlist depending on protocol by @marta-lokhova
- Add a fix for corrupted hot archive entries on p24 upgrade by @dmkozh
- Switch to released version of soroban 24.0.0 (with XDR 24.0) by @graydon
- Prepare p24 build for CI by @dmkozh in #4967
- Add P23 data corruption verification tool. by @dmkozh in #4969
Full Changelog: v23.0.1...v24.0.0
v24.0.0rc1
What's Changed
- Cleanup tx queue and add more metrics by @dmkozh
- Fixed outdated eviction bug by @SirTyson
- Wire up p24 soroban submodule by @graydon
- Add xlm to the feePool to reflect p23 burn by @sisuresh
- Support different versions of banlist depending on protocol by @marta-lokhova
- Add a fix for corrupted hot archive entries on p24 upgrade by @dmkozh
- Switch to released version of soroban 24.0.0 (with XDR 24.0) by @graydon
- Prepare p24 build for CI by @dmkozh in #4967
- Add P23 data corruption verification tool. by @dmkozh in #4969
Full Changelog: v23.0.1...v24.0.0
v23.0.1
What's Changed
- Fix building with
--disable-postgresby @drebelsky in #4864 - Remove loadgen account creation mode, simplify upgrade path in tests by @marta-lokhova in #4827
- Add SAC invocation and mix mode to apply-load by @sisuresh in #4862
- Fix settings by @sisuresh in #4871
- Added size and count metrics for in-memory caches by @SirTyson in #4870
- Bump soroban_proto_curr to p23 by @sisuresh in #4872
- Bump env to v23.0.0 by @sisuresh in #4874
- Rust debug improvememnt by @graydon in #4863
- Tsan and unified build and misc version stuff by @graydon in #4875
- Fix apply load test by @sisuresh in #4877
- Stop rebuilding cxxbridge constantly by @graydon in #4880
- Real races and other minor fixes by @graydon in #4879
- Update testnet settings by @sisuresh in #4883
- Allow DeepWiki to automatically refresh by @marta-lokhova in #4833
- Add more parallel apply tests by @sisuresh in #4881
- Use bigger runners for GitHub actions to speed up CI by @marta-lokhova in #4860
- Add self data to survey reporting by @drebelsky in #4854
- Minor no-op cleanups by @dmkozh in #4889
- Minor cleanups by @marta-lokhova in #4888
- Some minor fixes by @graydon in #4885
- Fix "Time sliced static topology survey" test. by @drebelsky in #4892
- More minor fixes by @graydon in #4891
- Fix tracy build by @SirTyson in #4893
- Fix parallel cluster tx queue instruction limit by @SirTyson in #4894
- Memo filter fix by @sisuresh in #4895
- Check account existence before background tx sig validation by @bboston7 in #4896
- Initialize std::tm properly in isoStringToTm by @dmkozh in #4898
Full Changelog: v23.0.0...v23.0.1
v23.0.0
This is set as a pre-release until we reset testnet due to incompatibility. It contains all the protocol changes for the protocol 23 CAPs (CAP-62 to CAP-70, with the exclusion of the rejected CAP-64).
New features in protocol 23
- State archival features (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0062.md and https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md):
- Soroban live state is moved into memory
- Archived persistent entries are moved out of memory into an on-disk 'hot archive'
- State size accounting now only uses Soroban state for the rent fee purposes
InvokeHostFunctionoperations now support automatic restoration of the archived entries- Only limit the disk read entries and disk read bytes per ledger, which is only affected by the Classic and restored entries
- Added support for the parallel execution of the Soroban transactions, given a new 'parallel' transaction set structure (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md)
- Added reusable inter-ledger cache for the Soroban Wasm modules, that significantly reduces the cost of making the cross-contract calls (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0065.md)
- Support for the 'unified' events that allow for using the Soroban events for tracking any movement of the tokens on the network (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md):
- Core can now emit events that conform with SEP-41 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md) from all the operations that involve value movement. This also supports backfilling the events from genesis.
- Soroban now supports the 'multiplexed' accounts (M-accounts), and Stelllar asset contract now supports 'multiplexed' transfer destinations, which allows for implementing exchange crypto-deposits of Soroban tokens.
- Added new Soroban host functions for retrieving the contract executable (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) and String<->Bytes conversions (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md)
- Added the network configuration settings that control the Stellar Consensus Protocol timings (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0070.md)
Breaking changes
- After the upgrade to Protocol 23 Core will emit ledger metadata in LedgerCloseMetaV2 format (https://github.com/stellar/stellar-xdr/blob/4b7a2ef7931ab2ca2499be68d849f38190b443ca/Stellar-ledger.x#L642C8-L642C25). The main difference from the previous version is the new format for the transaction metadata: TransactionResultMetaV1 (https://github.com/stellar/stellar-xdr/blob/4b7a2ef7931ab2ca2499be68d849f38190b443ca/Stellar-ledger.x#L561), which has the postTxApplyFeeProcessing field for representing the fee processing that happens after all transactions have been applied. Otherwise the new metadata format has the same structure and field names as the old one (i.e. as LedgerCloseMetaV1).
- V23.0.0 drops support for the following deprecated flags:
- DEPRECATED_SQL_LEDGER_STATE
- EXPERIMENTAL_BUCKETLIST_DB
- EXPERIMENTAL_BACKGROUND_OVERLAY_PROCESSING
Summary of the breaking changes introduced in the minor releases since the v22.0.0 release:
- [v22.2.0] BucketListDB is mandatory in this release so the config flag DEPRECATED_SQL_LEDGER_STATE will be ignored. This means the following SQL tables will be unconditionally dropped:
- ACCOUNT
- TRUSTLINE
- DATA
- CLAIMABLE_BALANCE
- LIQUIDITY_POOL
- CONTRACT_DATA
- CONTRACT_CODE
- CONFIG_SETTING
- TTL
- TXSETHISTORY
- TXHISTORY
- [v22.1.0] publish: build checkpoint files during ledger close by @marta-lokhova in #4446. Drop support for txhistory, txsethistory and upgradehistory SQL tables. Drop --force-back option from run command.
Generated changes summary since the last stable release (22.4.1):
- Fixed loadgen bug for soroban upgrades by @SirTyson in #4679
- Bump XDR/p23 env to pick up CAP-67 changes. by @dmkozh in #4676
- CAP-67 part 1 - new unified events framework by @jayz22 in #4672
- Emit most classic events by @sisuresh in #4685
- Remove from_muxed_id and allow memo/muxed info in mint event by @sisuresh in #4691
- Events invariants by @sisuresh in #4689
- Add more test coverage for fee bump feeCharged value. by @dmkozh in #4694
- Fix the tx count metric by @dmkozh in #4695
- Don't emit memos for inflation and trades by @sisuresh in #4693
- CAP-0065 - Reusable module cache by @graydon in #4621
- Emit fee events and add more tests by @jayz22 in #4690
- Initial algorithm for nominating valid 'parallel' tx sets. by @dmkozh in #4486
- Add config option to skip some validator checks for testing by @bboston7 in #4703
- Split up rust bridge by @graydon in #4707
- More fixes to fee bump tx tests. by @dmkozh in #4708
- Remove limit on QUERY_SNAPSHOT_LEDGERS by @leighmcculloch in #4683
- History Archive Support for State Archival by @SirTyson in #4610
- Update core for p23 features implemented thus far. by @dmkozh in #4719
- Skip unnecessary checkValid calls on blocks by @marta-lokhova in #4711
- Adapt fee events to
TransactionEventand emit stage by @jayz22 in #4716 - Cleanup some redundant comments. by @dmkozh in #4720
- Revert unintentional rename of sorobaninfo fields. by @dmkozh in #4723
- Switch log level from DEBUG to INFO for few of them in history archive publishing path by @anupsdf in #4724
- Refactor transaction meta and results. by @dmkozh in #4687
- Remove experimental BucketListDB flags by @SirTyson in #4728
- Autorestore by @SirTyson in #4726
- Drop experimental background overlay flag by @marta-lokhova in #4734
- Update xdr and adapt to LCM v2 by @sisuresh in #4731
- Fix build by @sisuresh in #4735
- Introduce daily RND_SEED in CI test partitions by @marta-lokhova in #4737
- getledgerentry endpoint for RPC by @SirTyson in #4721
- Disk read resource by @SirTyson in #4733
- Stop skipping known results for fee bumps by @sisuresh in #4742
- Improve the check for the events invariant. by @dmkozh in #4743
- Merge 22.3 into master by @SirTyson in #4746
- Make parallel tx set builder to flexibly choose the number of stages. by @dmkozh in #4712
- Bump overlay version to 38 for v23.0.0 by @marta-lokhova in #4747
- Add test-only configs for perf testing by @marta-lokhova in #4744
- Exclude CONFIG_SETTING from getledgerentry test by @graydon in #4749
- Don't charge fees for in-memory state by @SirTyson in #4756
- Do not trigger ledger if there were side effects inside triggerNextLedger by @marta-lokhova in #4753
- Visual Studio Project fixes (June 2025) by @MonsieurNicolas in #4759
- Fix settings upgrade utils read and write byte limits by @sisuresh in #4762
- Level 0 merge by @SirTyson in #4697
- Formalize immutable complete ledger state used by the main thread by @marta-lokhova in #4754
- Gracefully handle hasLastClosedSorobanNetworkConfig on startup by @marta-lokhova in #4770
- Fix the failed result replay. by @dmkozh in #4769
- Clean up eviction scan by @SirTyson in #4773
- Added ledger entry type offsets to BucketIndex by @SirTyson in #4750
- Fix restore methods in ltx by @sisuresh in #4767
- Merge v22.4.1 branch with test fixes by @marta-lokhova in #4775
- Check for entry in command handler by @sisuresh in #4780
- Parallelize Soroban by @sisuresh in #4715
- Check result of maybeAdoptFailedReplayResult by @sisuresh in #4782
- Pass the auto-restored entry ids to invoke_host...
v23.0.0rc5
This is a preliminary release of protocol 23. It contains all the protocol changes for the protocol 23 CAPs (CAP-62 to CAP-70, with the exclusion of the rejected CAP-64). This is a release candidate for the protocol 23 that will be promoted to stable provided successful protocol 23 upgrade on Testnet.
New features in protocol 23
- State archival features (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0062.md and https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md):
- Soroban live state is moved into memory
- Archived persistent entries are moved out of memory into an on-disk 'hot archive'
- State size accounting now only uses Soroban state for the rent fee purposes
InvokeHostFunctionoperations now support automatic restoration of the archived entries- Only limit the disk read entries and disk read bytes per ledger, which is only affected by the Classic and restored entries
- Added support for the parallel execution of the Soroban transactions, given a new 'parallel' transaction set structure (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md)
- Added reusable inter-ledger cache for the Soroban Wasm modules, that significantly reduces the cost of making the cross-contract calls (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0065.md)
- Support for the 'unified' events that allow for using the Soroban events for tracking any movement of the tokens on the network (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md):
- Core can now emit events that conform with SEP-41 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md) from all the operations that involve value movement. This also supports backfilling the events from genesis.
- Soroban now supports the 'multiplexed' accounts (M-accounts), and Stelllar asset contract now supports 'multiplexed' transfer destinations, which allows for implementing exchange crypto-deposits of Soroban tokens.
- Added new Soroban host functions for retrieving the contract executable (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) and String<->Bytes conversions (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md)
- Added the network configuration settings that control the Stellar Consensus Protocol timings (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0070.md)
Breaking changes
- After the upgrade to Protocol 23 Core will emit ledger metadata in LedgerCloseMetaV2 format (https://github.com/stellar/stellar-xdr/blob/4b7a2ef7931ab2ca2499be68d849f38190b443ca/Stellar-ledger.x#L642C8-L642C25). The main difference from the previous version is the new format for the transaction metadata: TransactionResultMetaV1 (https://github.com/stellar/stellar-xdr/blob/4b7a2ef7931ab2ca2499be68d849f38190b443ca/Stellar-ledger.x#L561), which has the postTxApplyFeeProcessing field for representing the fee processing that happens after all transactions have been applied. Otherwise the new metadata format has the same structure and field names as the old one (i.e. as LedgerCloseMetaV1).
- V23.0.0 drops support for the following deprecated flags:
- DEPRECATED_SQL_LEDGER_STATE
- EXPERIMENTAL_BUCKETLIST_DB
- EXPERIMENTAL_BACKGROUND_OVERLAY_PROCESSING
Summary of the breaking changes introduced in the minor releases since the v22.0.0 release:
- [v22.2.0] BucketListDB is mandatory in this release so the config flag DEPRECATED_SQL_LEDGER_STATE will be ignored. This means the following SQL tables will be unconditionally dropped:
- ACCOUNT
- TRUSTLINE
- DATA
- CLAIMABLE_BALANCE
- LIQUIDITY_POOL
- CONTRACT_DATA
- CONTRACT_CODE
- CONFIG_SETTING
- TTL
- TXSETHISTORY
- TXHISTORY
- [v22.1.0] publish: build checkpoint files during ledger close by @marta-lokhova in #4446. Drop support for txhistory, txsethistory and upgradehistory SQL tables. Drop --force-back option from run command.
Generated changes summary since the last stable release (22.4.1):
- Fixed loadgen bug for soroban upgrades by @SirTyson in #4679
- Bump XDR/p23 env to pick up CAP-67 changes. by @dmkozh in #4676
- CAP-67 part 1 - new unified events framework by @jayz22 in #4672
- Emit most classic events by @sisuresh in #4685
- Remove from_muxed_id and allow memo/muxed info in mint event by @sisuresh in #4691
- Events invariants by @sisuresh in #4689
- Add more test coverage for fee bump feeCharged value. by @dmkozh in #4694
- Fix the tx count metric by @dmkozh in #4695
- Don't emit memos for inflation and trades by @sisuresh in #4693
- CAP-0065 - Reusable module cache by @graydon in #4621
- Emit fee events and add more tests by @jayz22 in #4690
- Initial algorithm for nominating valid 'parallel' tx sets. by @dmkozh in #4486
- Add config option to skip some validator checks for testing by @bboston7 in #4703
- Split up rust bridge by @graydon in #4707
- More fixes to fee bump tx tests. by @dmkozh in #4708
- Remove limit on QUERY_SNAPSHOT_LEDGERS by @leighmcculloch in #4683
- History Archive Support for State Archival by @SirTyson in #4610
- Update core for p23 features implemented thus far. by @dmkozh in #4719
- Skip unnecessary checkValid calls on blocks by @marta-lokhova in #4711
- Adapt fee events to
TransactionEventand emit stage by @jayz22 in #4716 - Cleanup some redundant comments. by @dmkozh in #4720
- Revert unintentional rename of sorobaninfo fields. by @dmkozh in #4723
- Switch log level from DEBUG to INFO for few of them in history archive publishing path by @anupsdf in #4724
- Refactor transaction meta and results. by @dmkozh in #4687
- Remove experimental BucketListDB flags by @SirTyson in #4728
- Autorestore by @SirTyson in #4726
- Drop experimental background overlay flag by @marta-lokhova in #4734
- Update xdr and adapt to LCM v2 by @sisuresh in #4731
- Fix build by @sisuresh in #4735
- Introduce daily RND_SEED in CI test partitions by @marta-lokhova in #4737
- getledgerentry endpoint for RPC by @SirTyson in #4721
- Disk read resource by @SirTyson in #4733
- Stop skipping known results for fee bumps by @sisuresh in #4742
- Improve the check for the events invariant. by @dmkozh in #4743
- Merge 22.3 into master by @SirTyson in #4746
- Make parallel tx set builder to flexibly choose the number of stages. by @dmkozh in #4712
- Bump overlay version to 38 for v23.0.0 by @marta-lokhova in #4747
- Add test-only configs for perf testing by @marta-lokhova in #4744
- Exclude CONFIG_SETTING from getledgerentry test by @graydon in #4749
- Don't charge fees for in-memory state by @SirTyson in #4756
- Do not trigger ledger if there were side effects inside triggerNextLedger by @marta-lokhova in #4753
- Visual Studio Project fixes (June 2025) by @MonsieurNicolas in #4759
- Fix settings upgrade utils read and write byte limits by @sisuresh in #4762
- Level 0 merge by @SirTyson in #4697
- Formalize immutable complete ledger state used by the main thread by @marta-lokhova in #4754
- Gracefully handle hasLastClosedSorobanNetworkConfig on startup by @marta-lokhova in #4770
- Fix the failed result replay. by @dmkozh in #4769
- Clean up eviction scan by @SirTyson in #4773
- Added ledger entry type offsets to BucketIndex by @SirTyson in #4750
- Fix restore methods in ltx by @sisuresh in #4767
- Merge v22.4.1 branch with test fixes by @marta-lokhova in #4775
- Check for entry in command handler by @sisuresh in #4780
- Parallelize Soroban by @sisuresh in #4715
- Check result of maybeAdoptFailedReplayResult by @sisuresh i...
23.0.0rc4
This is a preliminary release of protocol 23. It contains all the protocol changes for the protocol 23 CAPs (CAP-62 to CAP-70, with the exclusion of the rejected CAP-64). This is a release candidate for the protocol 23 that will be promoted to stable provided successful protocol 23 upgrade on Testnet.
New features in protocol 23
- State archival features (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0062.md and https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md):
- Soroban live state is moved into memory
- Archived persistent entries are moved out of memory into an on-disk 'hot archive'
- State size accounting now only uses Soroban state for the rent fee purposes
InvokeHostFunctionoperations now support automatic restoration of the archived entries- Only limit the disk read entries and disk read bytes per ledger, which is only affected by the Classic and restored entries
- Added support for the parallel execution of the Soroban transactions, given a new 'parallel' transaction set structure (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md)
- Added reusable inter-ledger cache for the Soroban Wasm modules, that significantly reduces the cost of making the cross-contract calls (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0065.md)
- Support for the 'unified' events that allow for using the Soroban events for tracking any movement of the tokens on the network (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md):
- Core can now emit events that conform with SEP-41 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md) from all the operations that involve value movement. This also supports backfilling the events from genesis.
- Soroban now supports the 'multiplexed' accounts (M-accounts), and Stelllar asset contract now supports 'multiplexed' transfer destinations, which allows for implementing exchange crypto-deposits of Soroban tokens.
- Added new Soroban host functions for retrieving the contract executable (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) and String<->Bytes conversions (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md)
- Added the network configuration settings that control the Stellar Consensus Protocol timings (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0070.md)
Breaking changes
- After the upgrade to Protocol 23 Core will emit ledger metadata in LedgerCloseMetaV2 format (https://github.com/stellar/stellar-xdr/blob/4b7a2ef7931ab2ca2499be68d849f38190b443ca/Stellar-ledger.x#L642C8-L642C25). The main difference from the previous version is the new format for the transaction metadata: TransactionResultMetaV1 (https://github.com/stellar/stellar-xdr/blob/4b7a2ef7931ab2ca2499be68d849f38190b443ca/Stellar-ledger.x#L561), which has the postTxApplyFeeProcessing field for representing the fee processing that happens after all transactions have been applied. Otherwise the new metadata format has the same structure and field names as the old one (i.e. as LedgerCloseMetaV1).
- V23.0.0 drops support for the following deprecated flags:
- DEPRECATED_SQL_LEDGER_STATE
- EXPERIMENTAL_BUCKETLIST_DB
- EXPERIMENTAL_BACKGROUND_OVERLAY_PROCESSING
Summary of the breaking changes introduced in the minor releases since the v22.0.0 release:
- [v22.2.0] BucketListDB is mandatory in this release so the config flag DEPRECATED_SQL_LEDGER_STATE will be ignored. This means the following SQL tables will be unconditionally dropped:
- ACCOUNT
- TRUSTLINE
- DATA
- CLAIMABLE_BALANCE
- LIQUIDITY_POOL
- CONTRACT_DATA
- CONTRACT_CODE
- CONFIG_SETTING
- TTL
- TXSETHISTORY
- TXHISTORY
- [v22.1.0] publish: build checkpoint files during ledger close by @marta-lokhova in #4446. Drop support for txhistory, txsethistory and upgradehistory SQL tables. Drop --force-back option from run command.
Generated changes summary since the last stable release (22.4.1):
- Fixed loadgen bug for soroban upgrades by @SirTyson in #4679
- Bump XDR/p23 env to pick up CAP-67 changes. by @dmkozh in #4676
- CAP-67 part 1 - new unified events framework by @jayz22 in #4672
- Emit most classic events by @sisuresh in #4685
- Remove from_muxed_id and allow memo/muxed info in mint event by @sisuresh in #4691
- Events invariants by @sisuresh in #4689
- Add more test coverage for fee bump feeCharged value. by @dmkozh in #4694
- Fix the tx count metric by @dmkozh in #4695
- Don't emit memos for inflation and trades by @sisuresh in #4693
- CAP-0065 - Reusable module cache by @graydon in #4621
- Emit fee events and add more tests by @jayz22 in #4690
- Initial algorithm for nominating valid 'parallel' tx sets. by @dmkozh in #4486
- Add config option to skip some validator checks for testing by @bboston7 in #4703
- Split up rust bridge by @graydon in #4707
- More fixes to fee bump tx tests. by @dmkozh in #4708
- Remove limit on QUERY_SNAPSHOT_LEDGERS by @leighmcculloch in #4683
- History Archive Support for State Archival by @SirTyson in #4610
- Update core for p23 features implemented thus far. by @dmkozh in #4719
- Skip unnecessary checkValid calls on blocks by @marta-lokhova in #4711
- Adapt fee events to
TransactionEventand emit stage by @jayz22 in #4716 - Cleanup some redundant comments. by @dmkozh in #4720
- Revert unintentional rename of sorobaninfo fields. by @dmkozh in #4723
- Switch log level from DEBUG to INFO for few of them in history archive publishing path by @anupsdf in #4724
- Refactor transaction meta and results. by @dmkozh in #4687
- Remove experimental BucketListDB flags by @SirTyson in #4728
- Autorestore by @SirTyson in #4726
- Drop experimental background overlay flag by @marta-lokhova in #4734
- Update xdr and adapt to LCM v2 by @sisuresh in #4731
- Fix build by @sisuresh in #4735
- Introduce daily RND_SEED in CI test partitions by @marta-lokhova in #4737
- getledgerentry endpoint for RPC by @SirTyson in #4721
- Disk read resource by @SirTyson in #4733
- Stop skipping known results for fee bumps by @sisuresh in #4742
- Improve the check for the events invariant. by @dmkozh in #4743
- Merge 22.3 into master by @SirTyson in #4746
- Make parallel tx set builder to flexibly choose the number of stages. by @dmkozh in #4712
- Bump overlay version to 38 for v23.0.0 by @marta-lokhova in #4747
- Add test-only configs for perf testing by @marta-lokhova in #4744
- Exclude CONFIG_SETTING from getledgerentry test by @graydon in #4749
- Don't charge fees for in-memory state by @SirTyson in #4756
- Do not trigger ledger if there were side effects inside triggerNextLedger by @marta-lokhova in #4753
- Visual Studio Project fixes (June 2025) by @MonsieurNicolas in #4759
- Fix settings upgrade utils read and write byte limits by @sisuresh in #4762
- Level 0 merge by @SirTyson in #4697
- Formalize immutable complete ledger state used by the main thread by @marta-lokhova in #4754
- Gracefully handle hasLastClosedSorobanNetworkConfig on startup by @marta-lokhova in #4770
- Fix the failed result replay. by @dmkozh in #4769
- Clean up eviction scan by @SirTyson in #4773
- Added ledger entry type offsets to BucketIndex by @SirTyson in #4750
- Fix restore methods in ltx by @sisuresh in #4767
- Merge v22.4.1 branch with test fixes by @marta-lokhova in #4775
- Check for entry in command handler by @sisuresh in #4780
- Parallelize Soroban by @sisuresh in #4715
- Check result of maybeAdoptFailedReplayResult by @sisuresh i...
v23.0.0rc3
This is a preliminary release of protocol 23. It contains all the protocol changes for the protocol 23 CAPs (CAP-62 to CAP-70, with the exclusion of the rejected CAP-64). This is a release candidate for the protocol 23 that will be promoted to stable provided successful protocol 23 upgrade on Testnet.
New features in protocol 23
- State archival features (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0062.md and https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md):
- Soroban live state is moved into memory
- Archived persistent entries are moved out of memory into an on-disk 'hot archive'
- State size accounting now only uses Soroban state for the rent fee purposes
InvokeHostFunctionoperations now support automatic restoration of the archived entries- Only limit the disk read entries and disk read bytes per ledger, which is only affected by the Classic and restored entries
- Added support for the parallel execution of the Soroban transactions, given a new 'parallel' transaction set structure (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md)
- Added reusable inter-ledger cache for the Soroban Wasm modules, that significantly reduces the cost of making the cross-contract calls (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0065.md)
- Support for the 'unified' events that allow for using the Soroban events for tracking any movement of the tokens on the network (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md):
- Core can now emit events that conform with SEP-41 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md) from all the operations that involve value movement. This also supports backfilling the events from genesis.
- Soroban now supports the 'multiplexed' accounts (M-accounts), and Stelllar asset contract now supports 'multiplexed' transfer destinations, which allows for implementing exchange crypto-deposits of Soroban tokens.
- Added new Soroban host functions for retrieving the contract executable (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) and String<->Bytes conversions (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md)
- Added the network configuration settings that control the Stellar Consensus Protocol timings (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0070.md)
Generated changes summary since the last stable release (22.4.1):
- Fixed loadgen bug for soroban upgrades by @SirTyson in #4679
- Bump XDR/p23 env to pick up CAP-67 changes. by @dmkozh in #4676
- CAP-67 part 1 - new unified events framework by @jayz22 in #4672
- Emit most classic events by @sisuresh in #4685
- Remove from_muxed_id and allow memo/muxed info in mint event by @sisuresh in #4691
- Events invariants by @sisuresh in #4689
- Add more test coverage for fee bump feeCharged value. by @dmkozh in #4694
- Fix the tx count metric by @dmkozh in #4695
- Don't emit memos for inflation and trades by @sisuresh in #4693
- CAP-0065 - Reusable module cache by @graydon in #4621
- Emit fee events and add more tests by @jayz22 in #4690
- Initial algorithm for nominating valid 'parallel' tx sets. by @dmkozh in #4486
- Add config option to skip some validator checks for testing by @bboston7 in #4703
- Split up rust bridge by @graydon in #4707
- More fixes to fee bump tx tests. by @dmkozh in #4708
- Remove limit on QUERY_SNAPSHOT_LEDGERS by @leighmcculloch in #4683
- History Archive Support for State Archival by @SirTyson in #4610
- Update core for p23 features implemented thus far. by @dmkozh in #4719
- Skip unnecessary checkValid calls on blocks by @marta-lokhova in #4711
- Adapt fee events to
TransactionEventand emit stage by @jayz22 in #4716 - Cleanup some redundant comments. by @dmkozh in #4720
- Revert unintentional rename of sorobaninfo fields. by @dmkozh in #4723
- Switch log level from DEBUG to INFO for few of them in history archive publishing path by @anupsdf in #4724
- Refactor transaction meta and results. by @dmkozh in #4687
- Remove experimental BucketListDB flags by @SirTyson in #4728
- Autorestore by @SirTyson in #4726
- Drop experimental background overlay flag by @marta-lokhova in #4734
- Update xdr and adapt to LCM v2 by @sisuresh in #4731
- Fix build by @sisuresh in #4735
- Introduce daily RND_SEED in CI test partitions by @marta-lokhova in #4737
- getledgerentry endpoint for RPC by @SirTyson in #4721
- Disk read resource by @SirTyson in #4733
- Stop skipping known results for fee bumps by @sisuresh in #4742
- Improve the check for the events invariant. by @dmkozh in #4743
- Merge 22.3 into master by @SirTyson in #4746
- Make parallel tx set builder to flexibly choose the number of stages. by @dmkozh in #4712
- Bump overlay version to 38 for v23.0.0 by @marta-lokhova in #4747
- Add test-only configs for perf testing by @marta-lokhova in #4744
- Exclude CONFIG_SETTING from getledgerentry test by @graydon in #4749
- Don't charge fees for in-memory state by @SirTyson in #4756
- Do not trigger ledger if there were side effects inside triggerNextLedger by @marta-lokhova in #4753
- Visual Studio Project fixes (June 2025) by @MonsieurNicolas in #4759
- Fix settings upgrade utils read and write byte limits by @sisuresh in #4762
- Level 0 merge by @SirTyson in #4697
- Formalize immutable complete ledger state used by the main thread by @marta-lokhova in #4754
- Gracefully handle hasLastClosedSorobanNetworkConfig on startup by @marta-lokhova in #4770
- Fix the failed result replay. by @dmkozh in #4769
- Clean up eviction scan by @SirTyson in #4773
- Added ledger entry type offsets to BucketIndex by @SirTyson in #4750
- Fix restore methods in ltx by @sisuresh in #4767
- Merge v22.4.1 branch with test fixes by @marta-lokhova in #4775
- Check for entry in command handler by @sisuresh in #4780
- Parallelize Soroban by @sisuresh in #4715
- Check result of maybeAdoptFailedReplayResult by @sisuresh in #4782
- Pass the auto-restored entry ids to invoke_host_function. by @dmkozh in #4772
- Rename RestoredKeys => RestoredEntries by @graydon in #4787
- Rename ThreadEntryMap and move LM member functions to standalone by @graydon in #4788
- Increase refundable fee in Soroban tests and regenerate meta. by @dmkozh in #4789
- Fix prng seed bug by @sisuresh in #4790
- getledgerentry returns 0 TTL for archived state by @SirTyson in #4792
- Increase fees in TxGenerator in preparation to rent calibration PR. by @dmkozh in #4795
- Event fix by @sisuresh in #4797
- Add meta restoration tests and bug fixes by @SirTyson in #4791
- Thread safety audit by @SirTyson in #4794
- xdr cleanup by @marta-lokhova in #4798
- Update the rent configuration and computation according to CAP-66. by @dmkozh in #4796
- Adapt apply load for parallel soroban by @sisuresh in #4799
- Remove MODE_ENABLES_BUCKETLIST configuration option by @marta-lokhova in https://gith...
v23.0.0rc2
This is a preliminary release of protocol 23. It contains all the protocol changes for the protocol 23 CAPs (CAP-62 to CAP-70, with the exclusion of the rejected CAP-64). This is a release candidate for the protocol 23 that will be promoted to stable provided successful protocol 23 upgrade on Testnet.
New features in protocol 23
- State archival features (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0062.md and https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md):
- Soroban live state is moved into memory
- Archived persistent entries are moved out of memory into an on-disk 'hot archive'
- State size accounting now only uses Soroban state for the rent fee purposes
InvokeHostFunctionoperations now support automatic restoration of the archived entries- Only limit the disk read entries and disk read bytes per ledger, which is only affected by the Classic and restored entries
- Added support for the parallel execution of the Soroban transactions, given a new 'parallel' transaction set structure (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md)
- Added reusable inter-ledger cache for the Soroban Wasm modules, that significantly reduces the cost of making the cross-contract calls (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0065.md)
- Support for the 'unified' events that allow for using the Soroban events for tracking any movement of the tokens on the network (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md):
- Core can now emit events that conform with SEP-41 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md) from all the operations that involve value movement. This also supports backfilling the events from genesis.
- Soroban now supports the 'multiplexed' accounts (M-accounts), and Stelllar asset contract now supports 'multiplexed' transfer destinations, which allows for implementing exchange crypto-deposits of Soroban tokens.
- Added new Soroban host functions for retrieving the contract executable (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) and String<->Bytes conversions (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md)
- Added the network configuration settings that control the Stellar Consensus Protocol timings (https://github.com/stellar/stellar-protocol/blob/master/core/cap-0070.md)
Generated changes summary since the last stable release (22.4.1):
- Fixed loadgen bug for soroban upgrades by @SirTyson in #4679
- Bump XDR/p23 env to pick up CAP-67 changes. by @dmkozh in #4676
- CAP-67 part 1 - new unified events framework by @jayz22 in #4672
- Emit most classic events by @sisuresh in #4685
- Remove from_muxed_id and allow memo/muxed info in mint event by @sisuresh in #4691
- Events invariants by @sisuresh in #4689
- Add more test coverage for fee bump feeCharged value. by @dmkozh in #4694
- Fix the tx count metric by @dmkozh in #4695
- Don't emit memos for inflation and trades by @sisuresh in #4693
- CAP-0065 - Reusable module cache by @graydon in #4621
- Emit fee events and add more tests by @jayz22 in #4690
- Initial algorithm for nominating valid 'parallel' tx sets. by @dmkozh in #4486
- Add config option to skip some validator checks for testing by @bboston7 in #4703
- Split up rust bridge by @graydon in #4707
- More fixes to fee bump tx tests. by @dmkozh in #4708
- Remove limit on QUERY_SNAPSHOT_LEDGERS by @leighmcculloch in #4683
- History Archive Support for State Archival by @SirTyson in #4610
- Update core for p23 features implemented thus far. by @dmkozh in #4719
- Skip unnecessary checkValid calls on blocks by @marta-lokhova in #4711
- Adapt fee events to
TransactionEventand emit stage by @jayz22 in #4716 - Cleanup some redundant comments. by @dmkozh in #4720
- Revert unintentional rename of sorobaninfo fields. by @dmkozh in #4723
- Switch log level from DEBUG to INFO for few of them in history archive publishing path by @anupsdf in #4724
- Refactor transaction meta and results. by @dmkozh in #4687
- Remove experimental BucketListDB flags by @SirTyson in #4728
- Autorestore by @SirTyson in #4726
- Drop experimental background overlay flag by @marta-lokhova in #4734
- Update xdr and adapt to LCM v2 by @sisuresh in #4731
- Fix build by @sisuresh in #4735
- Introduce daily RND_SEED in CI test partitions by @marta-lokhova in #4737
- getledgerentry endpoint for RPC by @SirTyson in #4721
- Disk read resource by @SirTyson in #4733
- Stop skipping known results for fee bumps by @sisuresh in #4742
- Improve the check for the events invariant. by @dmkozh in #4743
- Merge 22.3 into master by @SirTyson in #4746
- Make parallel tx set builder to flexibly choose the number of stages. by @dmkozh in #4712
- Bump overlay version to 38 for v23.0.0 by @marta-lokhova in #4747
- Add test-only configs for perf testing by @marta-lokhova in #4744
- Exclude CONFIG_SETTING from getledgerentry test by @graydon in #4749
- Don't charge fees for in-memory state by @SirTyson in #4756
- Do not trigger ledger if there were side effects inside triggerNextLedger by @marta-lokhova in #4753
- Visual Studio Project fixes (June 2025) by @MonsieurNicolas in #4759
- Fix settings upgrade utils read and write byte limits by @sisuresh in #4762
- Level 0 merge by @SirTyson in #4697
- Formalize immutable complete ledger state used by the main thread by @marta-lokhova in #4754
- Gracefully handle hasLastClosedSorobanNetworkConfig on startup by @marta-lokhova in #4770
- Fix the failed result replay. by @dmkozh in #4769
- Clean up eviction scan by @SirTyson in #4773
- Added ledger entry type offsets to BucketIndex by @SirTyson in #4750
- Fix restore methods in ltx by @sisuresh in #4767
- Merge v22.4.1 branch with test fixes by @marta-lokhova in #4775
- Check for entry in command handler by @sisuresh in #4780
- Parallelize Soroban by @sisuresh in #4715
- Check result of maybeAdoptFailedReplayResult by @sisuresh in #4782
- Pass the auto-restored entry ids to invoke_host_function. by @dmkozh in #4772
- Rename RestoredKeys => RestoredEntries by @graydon in #4787
- Rename ThreadEntryMap and move LM member functions to standalone by @graydon in #4788
- Increase refundable fee in Soroban tests and regenerate meta. by @dmkozh in #4789
- Fix prng seed bug by @sisuresh in #4790
- getledgerentry returns 0 TTL for archived state by @SirTyson in #4792
- Increase fees in TxGenerator in preparation to rent calibration PR. by @dmkozh in #4795
- Event fix by @sisuresh in #4797
- Add meta restoration tests and bug fixes by @SirTyson in #4791
- Thread safety audit by @SirTyson in #4794
- xdr cleanup by @marta-lokhova in #4798
- Update the rent configuration and computation according to CAP-66. by @dmkozh in #4796
- Adapt apply load for parallel soroban by @sisuresh in #4799
- Remove MODE_ENABLES_BUCKETLIST configuration option by @marta-lokhova in https://gith...