Protocol 28
This release bumps the protocol to version 28, which includes CAP-0083, CAP-0085, and CAP-0086.
Stability improvements
- Add GHA to invoke RPC integration tests on commits to master by @Shaptic in #5161
- Parallelize in-memory state update with bucket list operations. by @dmkozh in #5284
- Change flood de-duplication to be by NodeID (not address) by @drebelsky in #5341
- Update stellar-quorum-analyzer to master and handle NoQuorum status by @jayz22 in #5342
- Fix unified build by @graydon in #5345
- Fix race condition in rebuildInMemorySorobanStateForTesting by @SirTyson in #5351
- Bump medida and batch by @graydon in #5338
- Fix replay over empty-tx-set ledgers by @bboston7 in #5355
- Don't take a global lock per hash in ShortHash. by @dmkozh in #5360
- Make log level checks lock-free via permanent loggers. by @dmkozh in #5349
- Switch SHA-256 implementation from libsodium to Rust. by @dmkozh in #5364
- Add a new CI builder that builds fuzz targets by @graydon in #5352
- Switch Rust global allocator to tcmalloc. by @dmkozh in #5344
- Don't disable ASLR when re-running tests under LLDB, to work in CI by @graydon in #5366
- Properly skip publishing if checkpoints are present, but publishing is disabled by @marta-lokhova in #5378
- Improve the CPU pinning logic for BatchExecutor. by @dmkozh in #5390
- tighten up peer query-process limit by @graydon in #5381
- Update config docs by @drebelsky in #5265
- 🐛 Link readme to updated repo by @JFWooten4 in #4757
- Lower constant in acceptance test, given recent tighter processing limit. by @graydon in #5394
- Bring back the Rust XDR parsing check. by @dmkozh in #5396
- Speed up initial in-memory Soroban state population by @drebelsky in #5252
- Update testnet settings by @sisuresh in #5391
- Run Horizon integration tests with Core compiled from source by @Shaptic in #5340
- loosen process limit by @graydon in #5406
New features
- Add --enable-fastdev-unsafe-for-production, subsuming unified buid by @graydon in #5298
- Add metrics for tracking tx e2e latency by @drebelsky in #5356
- Finish implementing byte-based flow control by @graydon in #5362
- Introduce a thread pool for batch execution of parallel CPU-bound tasks. by @dmkozh in #5354
- Record e2e measurement through tx set instead of meta by @drebelsky in #5359
- Allow private addresses for testing by @SirTyson in #5334
Breaking changes
- Add p28 host with CAP-85 support by @dmkozh in #5358
- Fix kStructurallyValidValue validation downgrade after reboot by @bboston7 in #5348
- Switch trigger timer on p28 boundary by @SirTyson in #5350
- Extend overlay ed25519 signature verification budget to protocol by @bboston7 in #5393
- CAP-83: Harden previousLedgerHash check in combineCandidates by @bboston7 in #5380
- Ungate CAP-0083 and CAP-0085, bump to protocol 28 by @sisuresh in #5397
- Bump current and min overlay versions by @marta-lokhova in #5377
Full Changelog: v27.1.0...v28.0.0