Skip to main content

Ledger v8.1.0 release notes

For the complete documentation index, see llms.txt
  • Version: v8.1.0
  • Date: May 13, 2026

High-level summary

Ledger 8.1.0 is a minor release that delivers significant storage layer improvements and enhanced wallet functionality. The release includes critical fixes to the storage-core subsystem addressing race conditions, deadlocks, and memory management issues. It also exposes finer-grained control mechanisms and event contents through WASM bindings for wallet developers.

Audience

This release note is most relevant for:

  • Node operators who benefit from improved storage stability and the new incremental garbage collector.
  • Developers using the ledger WASM bindings for wallet integrations.
  • DApp developers consuming ledger events through the WASM interface.

Summary of updates

  • Added incremental garbage collector running in a time-bounded way in storage-core.
  • Allowed ParityDB to use an existing instance and share backends through generic Deref.
  • Fixed race condition in force_as_arc that could cause deadlocks.
  • Fixed panic in Sp serialization with mixed promoted and unpromoted keys.
  • Fixed Sp::into_tracked behavior.
  • Removed pending Update from memory before cache_insert_new_key in get().
  • Fixed lock ordering in force_as_arc to prevent deadlock.
  • Exposed finer-grained control and event contents for the wallet in WASM bindings.

New features

Below is a detailed breakdown of the new capabilities introduced in this release.

Incremental garbage collector

A new incremental garbage collector in storage-core runs in a time-bounded way, preventing storage bloat without blocking the main processing loop. Databases must support a new scan operation to use this feature.

Shared ParityDB backend

ParityDB can now use an existing instance and share backends through generic Deref, reducing resource consumption when multiple components access the same database.

Enhanced wallet WASM bindings

The WASM bindings now expose finer-grained control mechanisms and event contents for wallet integrations, giving wallet developers more flexibility in how they interact with the ledger state.


Breaking changes

No breaking changes are introduced in v8.1.0.


Bug fixes and quality improvements

The following bug fixes and quality improvements are included in this release.

Race condition in force_as_arc

Fixed a race condition in force_as_arc that could cause deadlocks under concurrent access. This also resolves the lock ordering violation that could trigger the same deadlock from a different code path.

Sp serialization panic

Fixed a panic in Sp serialization that occurred when mixing promoted and unpromoted keys, preventing node crashes during state serialization.

Sp::into_tracked behavior

Corrected the behavior of Sp::into_tracked to produce accurate tracking state.

Memory leak in get()

Pending Update entries are now removed from memory before cache_insert_new_key in get(), fixing a memory leak that could accumulate over time.


Known issues

No critical known issues were identified at release time.