Notification-based block pinning (#13157)
* Worker * Reorganize and unpin onnotification drop * Pin in state-db, pass block number * Pin blocks in blockchain db * Switch to reference counted LRU * Disable pinning when we keep all blocks * Fix pinning hint for state-db * Remove pinning from backend layer * Improve readability * Add justifications to test * Fix justification behaviour * Remove debug prints * Convert channels to tracing_unbounded * Add comments to the test * Documentation and Cleanup * Move task start to client * Simplify cache * Improve test, remove unwanted log * Add tracing logs, remove expect for block number * Cleanup * Add conversion method for unpin handle to Finalitynotification * Revert unwanted changes * Improve naming * Make clippy happy * Fix docs Co-authored-by:Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> * Use `NumberFor` instead of u64 in API * Hand over weak reference to unpin worker task * Unwanted * &Hash -> Hash * Remove number from interface, rename `_unpin_handle`, LOG_TARGET * Move RwLock one layer up * Apply code style suggestions * Improve comments * Replace lru crate by schnellru * Only insert values for pinned items + better docs * Apply suggestions from code review Co-authored-by:
Bastian Köcher <git@kchr.de> * Improve comments, log target and test Co-authored-by:
Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by:
Bastian Köcher <git@kchr.de>
Showing
- substrate/Cargo.lock 41 additions, 11 deletionssubstrate/Cargo.lock
- substrate/client/api/src/backend.rs 21 additions, 1 deletionsubstrate/client/api/src/backend.rs
- substrate/client/api/src/client.rs 103 additions, 6 deletionssubstrate/client/api/src/client.rs
- substrate/client/api/src/in_mem.rs 6 additions, 0 deletionssubstrate/client/api/src/in_mem.rs
- substrate/client/db/Cargo.toml 1 addition, 0 deletionssubstrate/client/db/Cargo.toml
- substrate/client/db/src/lib.rs 469 additions, 62 deletionssubstrate/client/db/src/lib.rs
- substrate/client/db/src/pinned_blocks_cache.rs 231 additions, 0 deletionssubstrate/client/db/src/pinned_blocks_cache.rs
- substrate/client/finality-grandpa/src/until_imported.rs 7 additions, 6 deletionssubstrate/client/finality-grandpa/src/until_imported.rs
- substrate/client/service/src/builder.rs 3 additions, 1 deletionsubstrate/client/service/src/builder.rs
- substrate/client/service/src/client/client.rs 67 additions, 10 deletionssubstrate/client/service/src/client/client.rs
- substrate/test-utils/client/src/lib.rs 5 additions, 2 deletionssubstrate/test-utils/client/src/lib.rs
Please register or sign in to comment