Parent Issue: #9447
Goal
Create a new WorldStateArchiveProvider interface in plugin-api that allows plugins to provide world state archive implementations.
Implementation
Location
plugin-api/src/main/java/org/hyperledger/besu/plugin/services/storage/WorldStateArchiveProvider.java
Interface Definition
package org.hyperledger.besu.plugin.services.storage;
import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive;
import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator;
import org.hyperledger.besu.ethereum.worldstate.WorldStatePreimageStorage;
import org.hyperledger.besu.evm.internal.EvmConfiguration;
/**
* Provider interface for world state archive implementations.
* Plugins can implement this to provide alternative storage formats.
*/
public interface WorldStateArchiveProvider {
/**
* Creates a world state archive instance.
*
* @param worldStateStorageCoordinator the storage coordinator
* @param preimageStorage the preimage storage
* @param evmConfiguration the EVM configuration
* @return a world state archive instance
*/
WorldStateArchive create(
WorldStateStorageCoordinator worldStateStorageCoordinator,
WorldStatePreimageStorage preimageStorage,
EvmConfiguration evmConfiguration);
/**
* Returns the data storage format this provider supports.
*
* @return the supported data storage format
*/
DataStorageFormat getDataStorageFormat();
}
Acceptance Criteria
Notes
- This is a pure interface addition with no implementation
- No changes to existing code required in this task
- This enables the next steps in the plugin system refactor
Dependencies
None - this is the first step
Related Issues
Parent Issue: #9447
Goal
Create a new
WorldStateArchiveProviderinterface inplugin-apithat allows plugins to provide world state archive implementations.Implementation
Location
plugin-api/src/main/java/org/hyperledger/besu/plugin/services/storage/WorldStateArchiveProvider.javaInterface Definition
Acceptance Criteria
plugin-apimoduleNotes
Dependencies
None - this is the first step
Related Issues