This release makes several improvements to captive-core.
Stability improvements
- Enable in-memory LedgerTxn for in-memory mode this restores nominal performance for captive core (lost with the changes in 15.5.0 that was using in memory sqlite).
- Harden bucket apply path, fixes an edge case in captive-core
- Uint128 t misuse prevention . This makes it more difficult to introduce bugs when using uint128 (used when performing high precision calculations)
- Make ApplyBucketsWork independent of merges in progress
- Bump to gcc 8 and llvm10
- Refresh dependencies April 2021
New features
- Captive core fast startup. This change reduces the time for captive-core to rejoin the network on restart by rebuilding ledger state from buckets (stored on disk) as well as preserving peer information across restarts. Expected to reduce downtime from 5 minutes to 30 seconds.
- Add scripts/Dockerfile.testing for one-off test images
- add metric to track time spent writing into meta stream
Breaking changes
- Simulation: Improve transaction application simulation by allowing multiple durations with different weights. This change deprecates --simulate-apply-per-op flag, and replaces it with configs