Overview
Move the Forest world state storage implementation out of the core ethereum/core module and into a standalone plugin, following the same pattern as the RocksDB storage plugin. This will improve modularity, reduce core dependencies, and establish a pattern for future storage format plugins.
Task Breakdown
This is a parent issue tracking the overall Forest plugin migration. The work is broken down into phases with separate child issues.
Phase 1: Plugin System Prerequisites ⚙️
Goal: Prepare the plugin system to support pluggable world state archives
Status: These changes prepare the core to work with pluggable storage formats without breaking existing functionality.
Phase 2: Forest Plugin Creation 🔌
Goal: Create the Forest plugin module and move Forest classes
Status: Not started - depends on Phase 1 completion
Phase 3: Integration & Testing 🧪
Goal: Integrate Forest plugin and ensure everything works
Status: Not started - depends on Phase 2 completion
Phase 4: Documentation & Cleanup 📚
Goal: Document the change and establish deprecation plan
Overview
Move the Forest world state storage implementation out of the core
ethereum/coremodule and into a standalone plugin, following the same pattern as the RocksDB storage plugin. This will improve modularity, reduce core dependencies, and establish a pattern for future storage format plugins.Task Breakdown
This is a parent issue tracking the overall Forest plugin migration. The work is broken down into phases with separate child issues.
Phase 1: Plugin System Prerequisites ⚙️
Goal: Prepare the plugin system to support pluggable world state archives
WorldStateArchiveProviderinterface (plugin-api)WorldStateArchiveServiceinterface (plugin-api)WorldStateArchiveServiceregistry (core)WorldStateStorageCoordinatorto remove Forest couplingBesuControllerBuilderto use provider patternKeyValueStorageProvider(discussion/deferred)Status: These changes prepare the core to work with pluggable storage formats without breaking existing functionality.
Phase 2: Forest Plugin Creation 🔌
Goal: Create the Forest plugin module and move Forest classes
plugins/forest/module structureForestStoragePluginclassForestWorldStateArchiveProviderForestWorldStateKeyValueStorageto pluginForestMutableWorldStateto pluginForestWorldStateArchiveto pluginStatus: Not started - depends on Phase 1 completion
Phase 3: Integration & Testing 🧪
Goal: Integrate Forest plugin and ensure everything works
Status: Not started - depends on Phase 2 completion
Phase 4: Documentation & Cleanup 📚
Goal: Document the change and establish deprecation plan