RocksDB UtxoState implementation#129
Draft
satran004 wants to merge 9 commits intodevelop/yaci-nodefrom
Draft
Conversation
Introduced configuration, data models, and tests for a new UTXO state implementation. Supports unspent/spent output tracking, rollback safety, pruning, and indexing via RocksDB. Provides both "classic" and experimental MMR-based storage options.
Introduced SyncTipContext to share and propagate the latest network tip between HeaderSyncManager and BodyFetchManager. Updated managers and logging to use this shared context for improved decision-making and distance-aware behaviors. Adjusted tests and build settings accordingly.
Reformatted code blocks to enhance readability, ensuring proper indentation and spacing. Adjusted control flow structures to improve maintainability while retaining existing functionality. Simplified exception handling and maintained adherence to coding standards.
Introduce new UTXO-related REST endpoints to fetch UTXOs by address, transaction hash, and payment credentials. Implement `PruneService` for scheduled UTXO pruning and add meta column families to maintain pruning state. Refactor `ClassicUtxoStore` to support efficient, bounded pruning operations.
UtxoResource has been removed, simplifying the API layer, while a new `PruneService` has been introduced to handle periodic pruning of UTXOs in `YaciNode`. The prune service operates on a configurable interval and integrates with the UTXO store to improve resource management.
Introduced new interfaces and classes for UTXO processing, event handling, and pruning to improve modularity and encapsulation. Enhanced RocksDB configuration with tunable options for better performance based on system resources. Added a basic web UI for node status monitoring and updated Java version in workflows to JDK 21.
Introduce `UtxoEventHandlerAsync` for sequential async UTXO processing, preserving order using a single-thread executor. Added a new configuration property `yaci.node.utxo.applyAsync` to toggle between sync and async UTXO processing. Refactored `UtxoKeyUtil` for cleaner payment credential extraction using `Address` and `AddressProvider`.
Introduce tests to validate async UTXO processing and rollback recovery. These tests ensure proper handling of concurrent block applications and chain rollback to maintain consistency in UTXO state.
Introduce `MmrUtxoStore` as an experimental UTXO backend offering Merkle Mountain Range (MMR) support for UTXO creation proofs. Added a factory for store selection (`classic` or `mmr`) and implemented tests to validate MMR functionality. This includes persistent data structure, rollback handling, and proof generation, laying the groundwork for advanced accumulator-backed verification.
|
Base automatically changed from
feat/chainsync_pipeline_2
to
develop/yaci-node
February 9, 2026 12:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




No description provided.