Skip to content

Conversation

@AliZDev-v0
Copy link

@AliZDev-v0 AliZDev-v0 commented Dec 11, 2025

PR description

Hello, I would like to make contributions into besu, I was not able to find easier task with less changes
Feel free to close these PR, if it's irrelevant. I also can break down it to smaller PR's to make review easier

In order to create WorldStateArchiveProvider in plugin-api next interfaces were need to be moved into plugin-api module

  • MutableWorldState`
  • WorldStateArchive
  • WorldStateProof
  • StateRootCommitter
  • WorldStateKeyValueStorage
  • WorldStatePreimageStorage

For next classes interfaces were created but functionality stayed the same:

  • WorldStateQueryParams
  • WorldStateProof
  • WorldStateConfig

Javadoc was required for above classes, it was generated with AI, for me seems good

Since interface were moved from eth/core to plugin-api I was need to replace org.hyperledger.besu.ethereum.core. BlockHeader to org.hyperledger.besu.plugin.data.BlockHeader

There only one method not supported in interface is toLogString(), I added a static method to ethereum/core/Util.toLogString() to support it

The WorldStateKeyValueStorage is used instead of WorldStateStorageCoordinator because ForestWorldStateArchive do not need worldStateStorageCoordinator it needs WorldStateKeyValueStorage

 public ForestWorldStateArchive(
      final WorldStateStorageCoordinator worldStateStorageCoordinator,
      final WorldStatePreimageStorage preimageStorage,
      final EvmConfiguration evmConfiguration) {
    this.worldStateKeyValueStorage =
        worldStateStorageCoordinator.getStrategy(ForestWorldStateKeyValueStorage.class);

Fixed Issue(s)

[Plugin System] Create WorldStateArchiveProvider interface #9448

Thanks for sending a pull request! Have you done the following?

  • Checked out our contribution guidelines?
  • Considered documentation and added the doc-change-required label to this PR if updates are required. // Not sure about these
  • Considered the changelog and included an update if required.
  • For database changes (e.g. KeyValueSegmentIdentifier) considered compatibility and performed forwards and backwards compatibility tests

Locally, you can run these tests to catch failures early:

  • spotless: ./gradlew spotlessApply
  • unit tests: ./gradlew build
  • acceptance tests: ./gradlew acceptanceTest // not working on my local
  • integration tests: ./gradlew integrationTest
  • reference tests: ./gradlew ethereum:referenceTests:referenceTests
  • hive tests: Engine or other RPCs modified? // did not, can setup it upon request

@AliZDev-v0 AliZDev-v0 force-pushed the ali/create-archive-provider branch 3 times, most recently from f613f69 to 9c2ffe7 Compare December 11, 2025 02:19
@AliZDev-v0 AliZDev-v0 marked this pull request as ready for review December 11, 2025 05:15
@AliZDev-v0 AliZDev-v0 force-pushed the ali/create-archive-provider branch from 3067b8a to 456070d Compare December 20, 2025 06:16
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
Signed-off-by: Ali Zhagparov <[email protected]>
@AliZDev-v0 AliZDev-v0 force-pushed the ali/create-archive-provider branch from 456070d to 20672f5 Compare December 20, 2025 06:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants