diff --git a/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java b/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java index 03ff0d1e6..29a021ea8 100644 --- a/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java +++ b/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java @@ -50,7 +50,7 @@ import org.hyperledger.besu.ethereum.p2p.peers.EnodeURLImpl; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProviderBuilder; import org.hyperledger.besu.ethereum.transaction.TransactionSimulator; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.evm.internal.EvmConfiguration; diff --git a/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java b/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java index c0a50432c..d58f226e7 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java @@ -68,7 +68,7 @@ import org.hyperledger.besu.cli.options.RpcWebsocketOptions; import org.hyperledger.besu.cli.options.SynchronizerOptions; import org.hyperledger.besu.cli.options.TransactionPoolOptions; import org.hyperledger.besu.cli.options.storage.DataStorageOptions; -import org.hyperledger.besu.cli.options.storage.DiffBasedSubStorageOptions; +import org.hyperledger.besu.cli.options.storage.PathBasedExtraStorageOptions; import org.hyperledger.besu.cli.options.unstable.QBFTOptions; import org.hyperledger.besu.cli.presynctasks.PreSynchronizationTaskRunner; import org.hyperledger.besu.cli.presynctasks.PrivateDatabaseMigrationPreSyncTask; @@ -134,9 +134,9 @@ import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProviderBuilder; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration; import org.hyperledger.besu.evm.precompile.AbstractAltBnPrecompiledContract; import org.hyperledger.besu.evm.precompile.BigIntegerModularExponentiationPrecompiledContract; import org.hyperledger.besu.evm.precompile.KZGPointEvalPrecompiledContract; @@ -1652,7 +1652,7 @@ public class BesuCommand implements DefaultCommandValues, Runnable { "--Xsnapsync-synchronizer-flat option can only be used when --Xbonsai-full-flat-db-enabled is true", dataStorageOptions .toDomainObject() - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getFullFlatDbEnabled(), asList( @@ -1805,8 +1805,8 @@ public class BesuCommand implements DefaultCommandValues, Runnable { .apiConfiguration(apiConfigurationSupplier.get()) .besuComponent(besuComponent); if (DataStorageFormat.BONSAI.equals(getDataStorageConfiguration().getDataStorageFormat())) { - final DiffBasedSubStorageConfiguration subStorageConfiguration = - getDataStorageConfiguration().getDiffBasedSubStorageConfiguration(); + final PathBasedExtraStorageConfiguration subStorageConfiguration = + getDataStorageConfiguration().getPathBasedExtraStorageConfiguration(); besuControllerBuilder.isParallelTxProcessingEnabled( subStorageConfiguration.getUnstable().isParallelTxProcessingEnabled()); } @@ -2144,30 +2144,30 @@ public class BesuCommand implements DefaultCommandValues, Runnable { if (SyncMode.FULL.equals(getDefaultSyncModeIfNotSet()) && DataStorageFormat.BONSAI.equals(dataStorageConfiguration.getDataStorageFormat())) { - final DiffBasedSubStorageConfiguration diffBasedSubStorageConfiguration = - dataStorageConfiguration.getDiffBasedSubStorageConfiguration(); - if (diffBasedSubStorageConfiguration.getLimitTrieLogsEnabled()) { + final PathBasedExtraStorageConfiguration pathBasedExtraStorageConfiguration = + dataStorageConfiguration.getPathBasedExtraStorageConfiguration(); + if (pathBasedExtraStorageConfiguration.getLimitTrieLogsEnabled()) { if (CommandLineUtils.isOptionSet( - commandLine, DiffBasedSubStorageOptions.LIMIT_TRIE_LOGS_ENABLED)) { + commandLine, PathBasedExtraStorageOptions.LIMIT_TRIE_LOGS_ENABLED)) { throw new ParameterException( commandLine, String.format( "Cannot enable %s with --sync-mode=%s and --data-storage-format=%s. You must set %s or use a different sync-mode", - DiffBasedSubStorageOptions.LIMIT_TRIE_LOGS_ENABLED, + PathBasedExtraStorageOptions.LIMIT_TRIE_LOGS_ENABLED, SyncMode.FULL, DataStorageFormat.BONSAI, - DiffBasedSubStorageOptions.LIMIT_TRIE_LOGS_ENABLED + "=false")); + PathBasedExtraStorageOptions.LIMIT_TRIE_LOGS_ENABLED + "=false")); } dataStorageConfiguration = ImmutableDataStorageConfiguration.copyOf(dataStorageConfiguration) - .withDiffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.copyOf( - dataStorageConfiguration.getDiffBasedSubStorageConfiguration()) + .withPathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.copyOf( + dataStorageConfiguration.getPathBasedExtraStorageConfiguration()) .withLimitTrieLogsEnabled(false)); logger.warn( "Forcing {}, since it cannot be enabled with --sync-mode={} and --data-storage-format={}.", - DiffBasedSubStorageOptions.LIMIT_TRIE_LOGS_ENABLED + "=false", + PathBasedExtraStorageOptions.LIMIT_TRIE_LOGS_ENABLED + "=false", SyncMode.FULL, DataStorageFormat.BONSAI); } @@ -2734,8 +2734,8 @@ public class BesuCommand implements DefaultCommandValues, Runnable { } if (DataStorageFormat.BONSAI.equals(getDataStorageConfiguration().getDataStorageFormat())) { - final DiffBasedSubStorageConfiguration subStorageConfiguration = - getDataStorageConfiguration().getDiffBasedSubStorageConfiguration(); + final PathBasedExtraStorageConfiguration subStorageConfiguration = + getDataStorageConfiguration().getPathBasedExtraStorageConfiguration(); if (subStorageConfiguration.getLimitTrieLogsEnabled()) { builder.setLimitTrieLogsEnabled(); builder.setTrieLogRetentionLimit(subStorageConfiguration.getMaxLayersToLoad()); diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/storage/DataStorageOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/storage/DataStorageOptions.java index fbc57f50d..0f1ff1a67 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/storage/DataStorageOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/storage/DataStorageOptions.java @@ -50,12 +50,12 @@ public class DataStorageOptions implements CLIOptions private Boolean receiptCompactionEnabled = DEFAULT_RECEIPT_COMPACTION_ENABLED; /** - * Options specific to diff-based storage modes. Holds the necessary parameters to configure - * diff-based storage, such as the Bonsai mode or Verkle in the future. + * Options specific to path-based storage modes. Holds the necessary parameters to configure + * path-based storage, such as the Bonsai mode or Verkle in the future. */ @Mixin - private DiffBasedSubStorageOptions diffBasedSubStorageOptions = - DiffBasedSubStorageOptions.create(); + private PathBasedExtraStorageOptions pathBasedExtraStorageOptions = + PathBasedExtraStorageOptions.create(); /** Default Constructor. */ DataStorageOptions() {} @@ -75,7 +75,7 @@ public class DataStorageOptions implements CLIOptions * @param commandLine the full commandLine to check all the options specified by the user */ public void validate(final CommandLine commandLine) { - diffBasedSubStorageOptions.validate(commandLine, dataStorageFormat); + pathBasedExtraStorageOptions.validate(commandLine, dataStorageFormat); } /** @@ -88,8 +88,9 @@ public class DataStorageOptions implements CLIOptions final DataStorageOptions dataStorageOptions = DataStorageOptions.create(); dataStorageOptions.dataStorageFormat = domainObject.getDataStorageFormat(); dataStorageOptions.receiptCompactionEnabled = domainObject.getReceiptCompactionEnabled(); - dataStorageOptions.diffBasedSubStorageOptions = - DiffBasedSubStorageOptions.fromConfig(domainObject.getDiffBasedSubStorageConfiguration()); + dataStorageOptions.pathBasedExtraStorageOptions = + PathBasedExtraStorageOptions.fromConfig( + domainObject.getPathBasedExtraStorageConfiguration()); return dataStorageOptions; } @@ -99,14 +100,14 @@ public class DataStorageOptions implements CLIOptions ImmutableDataStorageConfiguration.builder() .dataStorageFormat(dataStorageFormat) .receiptCompactionEnabled(receiptCompactionEnabled) - .diffBasedSubStorageConfiguration(diffBasedSubStorageOptions.toDomainObject()); + .pathBasedExtraStorageConfiguration(pathBasedExtraStorageOptions.toDomainObject()); return builder.build(); } @Override public List getCLIOptions() { final List cliOptions = CommandLineUtils.getCLIOptions(this, new DataStorageOptions()); - cliOptions.addAll(diffBasedSubStorageOptions.getCLIOptions()); + cliOptions.addAll(pathBasedExtraStorageOptions.getCLIOptions()); return cliOptions; } diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/storage/DiffBasedSubStorageOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/storage/PathBasedExtraStorageOptions.java similarity index 80% rename from besu/src/main/java/org/hyperledger/besu/cli/options/storage/DiffBasedSubStorageOptions.java rename to besu/src/main/java/org/hyperledger/besu/cli/options/storage/PathBasedExtraStorageOptions.java index c95a76682..cfa47ed6c 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/storage/DiffBasedSubStorageOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/storage/PathBasedExtraStorageOptions.java @@ -14,17 +14,17 @@ */ package org.hyperledger.besu.cli.options.storage; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DEFAULT_LIMIT_TRIE_LOGS_ENABLED; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DEFAULT_TRIE_LOG_PRUNING_WINDOW_SIZE; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DiffBasedUnstable.DEFAULT_CODE_USING_CODE_HASH_ENABLED; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DiffBasedUnstable.DEFAULT_FULL_FLAT_DB_ENABLED; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.DEFAULT_LIMIT_TRIE_LOGS_ENABLED; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.DEFAULT_TRIE_LOG_PRUNING_WINDOW_SIZE; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.PathBasedUnstable.DEFAULT_CODE_USING_CODE_HASH_ENABLED; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.PathBasedUnstable.DEFAULT_FULL_FLAT_DB_ENABLED; import org.hyperledger.besu.cli.options.CLIOptions; import org.hyperledger.besu.cli.util.CommandLineUtils; -import org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import java.util.List; @@ -33,7 +33,8 @@ import picocli.CommandLine; import picocli.CommandLine.Option; /** The Data storage CLI options. */ -public class DiffBasedSubStorageOptions implements CLIOptions { +public class PathBasedExtraStorageOptions + implements CLIOptions { /** The maximum number of historical layers to load. */ public static final String MAX_LAYERS_TO_LOAD = "--bonsai-historical-block-limit"; @@ -80,10 +81,10 @@ public class DiffBasedSubStorageOptions implements CLIOptions getCLIOptions() { - return CommandLineUtils.getCLIOptions(this, new DiffBasedSubStorageOptions()); + return CommandLineUtils.getCLIOptions(this, new PathBasedExtraStorageOptions()); } } diff --git a/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelper.java b/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelper.java index b96fdaca1..dc4b8c0d6 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelper.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelper.java @@ -15,10 +15,10 @@ package org.hyperledger.besu.cli.subcommands.storage; import static com.google.common.base.Preconditions.checkArgument; -import static org.hyperledger.besu.cli.options.storage.DiffBasedSubStorageOptions.MAX_LAYERS_TO_LOAD; -import static org.hyperledger.besu.cli.options.storage.DiffBasedSubStorageOptions.TRIE_LOG_PRUNING_WINDOW_SIZE; +import static org.hyperledger.besu.cli.options.storage.PathBasedExtraStorageOptions.MAX_LAYERS_TO_LOAD; +import static org.hyperledger.besu.cli.options.storage.PathBasedExtraStorageOptions.TRIE_LOG_PRUNING_WINDOW_SIZE; import static org.hyperledger.besu.controller.BesuController.DATABASE_PATH; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DEFAULT_TRIE_LOG_PRUNING_WINDOW_SIZE; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.DEFAULT_TRIE_LOG_PRUNING_WINDOW_SIZE; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; @@ -26,11 +26,11 @@ import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPInput; import org.hyperledger.besu.ethereum.rlp.RLP; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog.TrieLogFactoryImpl; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog.TrieLogFactoryImpl; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration; import java.io.File; import java.io.FileInputStream; @@ -65,7 +65,7 @@ public class TrieLogHelper { boolean prune( final DataStorageConfiguration config, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final MutableBlockchain blockchain, final Path dataDirectoryPath) { @@ -74,7 +74,7 @@ public class TrieLogHelper { validatePruneConfiguration(config); - final long layersToRetain = config.getDiffBasedSubStorageConfiguration().getMaxLayersToLoad(); + final long layersToRetain = config.getPathBasedExtraStorageConfiguration().getMaxLayersToLoad(); final long chainHeight = blockchain.getChainHeadBlockNumber(); @@ -121,7 +121,7 @@ public class TrieLogHelper { } private void processTrieLogBatches( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final MutableBlockchain blockchain, final long chainHeight, final long lastBlockNumberToRetainTrieLogsFor, @@ -150,7 +150,7 @@ public class TrieLogHelper { private void saveTrieLogBatches( final String batchFileName, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final List trieLogKeys) { try { @@ -162,7 +162,7 @@ public class TrieLogHelper { } private void restoreTrieLogBatches( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final long batchNumber, final String batchFileNameBase) { @@ -215,7 +215,7 @@ public class TrieLogHelper { final MutableBlockchain blockchain, final long chainHeight, final long lastBlockNumberToRetainTrieLogsFor, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final long layersToRetain) { if (lastBlockNumberToRetainTrieLogsFor < 0) { @@ -255,7 +255,7 @@ public class TrieLogHelper { } private void recreateTrieLogs( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final long batchNumber, final String batchFileNameBase) throws IOException { @@ -275,7 +275,7 @@ public class TrieLogHelper { final int chunkSize, final List keys, final IdentityHashMap trieLogsToRetain, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage) { + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage) { var updater = rootWorldStateStorage.updater(); int endIndex = Math.min(startIndex + chunkSize, keys.size()); @@ -292,14 +292,14 @@ public class TrieLogHelper { @VisibleForTesting void validatePruneConfiguration(final DataStorageConfiguration config) { - final DiffBasedSubStorageConfiguration subStorageConfiguration = - config.getDiffBasedSubStorageConfiguration(); + final PathBasedExtraStorageConfiguration subStorageConfiguration = + config.getPathBasedExtraStorageConfiguration(); checkArgument( subStorageConfiguration.getMaxLayersToLoad() - >= DiffBasedSubStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT, + >= PathBasedExtraStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT, String.format( MAX_LAYERS_TO_LOAD + " minimum value is %d", - DiffBasedSubStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT)); + PathBasedExtraStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT)); checkArgument( subStorageConfiguration.getTrieLogPruningWindowSize() > 0, String.format( @@ -316,7 +316,7 @@ public class TrieLogHelper { private void saveTrieLogsInFile( final List trieLogsKeys, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final String batchFileName) throws IOException { @@ -353,7 +353,7 @@ public class TrieLogHelper { private void saveTrieLogsAsRlpInFile( final List trieLogsKeys, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final String batchFileName) { File file = new File(batchFileName); if (file.exists()) { @@ -399,7 +399,7 @@ public class TrieLogHelper { private IdentityHashMap getTrieLogs( final List trieLogKeys, - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage) { + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage) { IdentityHashMap trieLogsToRetain = new IdentityHashMap<>(); LOG.info("Obtaining trielogs from db, this may take a few minutes..."); @@ -412,7 +412,7 @@ public class TrieLogHelper { } TrieLogCount getCount( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final int limit, final Blockchain blockchain) { final AtomicInteger total = new AtomicInteger(); @@ -453,7 +453,7 @@ public class TrieLogHelper { } void importTrieLog( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, final Path trieLogFilePath) { + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final Path trieLogFilePath) { var trieLog = readTrieLogsAsRlpFromFile(trieLogFilePath.toString()); @@ -463,7 +463,7 @@ public class TrieLogHelper { } void exportTrieLog( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final List trieLogHash, final Path directoryPath) throws IOException { diff --git a/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommand.java b/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommand.java index 24636a01d..d02add602 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommand.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommand.java @@ -25,11 +25,11 @@ import org.hyperledger.besu.controller.BesuController; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.storage.StorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogPruner; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogPruner; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import java.io.IOException; @@ -91,9 +91,9 @@ public class TrieLogSubCommand implements Runnable { .setupControllerBuilder() .dataStorageConfiguration( ImmutableDataStorageConfiguration.copyOf(config) - .withDiffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.copyOf( - config.getDiffBasedSubStorageConfiguration()) + .withPathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.copyOf( + config.getPathBasedExtraStorageConfiguration()) .withLimitTrieLogsEnabled(false))) .build(); } diff --git a/besu/src/main/java/org/hyperledger/besu/components/BesuComponent.java b/besu/src/main/java/org/hyperledger/besu/components/BesuComponent.java index b0d5c3da0..2a14a337a 100644 --- a/besu/src/main/java/org/hyperledger/besu/components/BesuComponent.java +++ b/besu/src/main/java/org/hyperledger/besu/components/BesuComponent.java @@ -17,8 +17,8 @@ package org.hyperledger.besu.components; import org.hyperledger.besu.cli.BesuCommand; import org.hyperledger.besu.ethereum.eth.transactions.BlobCache; import org.hyperledger.besu.ethereum.eth.transactions.BlobCacheModule; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; import org.hyperledger.besu.metrics.MetricsSystemModule; import org.hyperledger.besu.plugin.services.MetricsSystem; import org.hyperledger.besu.services.BesuPluginContextImpl; diff --git a/besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java b/besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java index 3af121034..a333d1fd8 100644 --- a/besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java +++ b/besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java @@ -85,14 +85,14 @@ import org.hyperledger.besu.ethereum.p2p.config.SubProtocolConfiguration; import org.hyperledger.besu.ethereum.storage.StorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; import org.hyperledger.besu.ethereum.transaction.TransactionSimulator; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogPruner; import org.hyperledger.besu.ethereum.trie.forest.ForestWorldStateArchive; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogPruner; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive.WorldStateHealer; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; @@ -786,8 +786,8 @@ public abstract class BesuControllerBuilder implements MiningParameterOverrides protocolContext, protocolSchedule, miningConfiguration); if (DataStorageFormat.BONSAI.equals(dataStorageConfiguration.getDataStorageFormat())) { - final DiffBasedSubStorageConfiguration subStorageConfiguration = - dataStorageConfiguration.getDiffBasedSubStorageConfiguration(); + final PathBasedExtraStorageConfiguration subStorageConfiguration = + dataStorageConfiguration.getPathBasedExtraStorageConfiguration(); if (subStorageConfiguration.getLimitTrieLogsEnabled()) { final TrieLogManager trieLogManager = ((BonsaiWorldStateProvider) worldStateArchive).getTrieLogManager(); @@ -850,8 +850,8 @@ public abstract class BesuControllerBuilder implements MiningParameterOverrides final Blockchain blockchain, final EthScheduler scheduler) { final boolean isProofOfStake = genesisConfigOptions.getTerminalTotalDifficulty().isPresent(); - final DiffBasedSubStorageConfiguration subStorageConfiguration = - dataStorageConfiguration.getDiffBasedSubStorageConfiguration(); + final PathBasedExtraStorageConfiguration subStorageConfiguration = + dataStorageConfiguration.getPathBasedExtraStorageConfiguration(); final TrieLogPruner trieLogPruner = new TrieLogPruner( (BonsaiWorldStateKeyValueStorage) worldStateStorage, @@ -1140,7 +1140,7 @@ public abstract class BesuControllerBuilder implements MiningParameterOverrides blockchain, Optional.of( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getMaxLayersToLoad()), bonsaiCachedMerkleTrieLoader, besuComponent.map(BesuComponent::getBesuPluginContext).orElse(null), diff --git a/besu/src/main/java/org/hyperledger/besu/services/BlockSimulatorServiceImpl.java b/besu/src/main/java/org/hyperledger/besu/services/BlockSimulatorServiceImpl.java index 60494d177..11b68dbfd 100644 --- a/besu/src/main/java/org/hyperledger/besu/services/BlockSimulatorServiceImpl.java +++ b/besu/src/main/java/org/hyperledger/besu/services/BlockSimulatorServiceImpl.java @@ -27,7 +27,7 @@ import org.hyperledger.besu.ethereum.transaction.BlockSimulator; import org.hyperledger.besu.ethereum.transaction.BlockStateCall; import org.hyperledger.besu.ethereum.transaction.CallParameter; import org.hyperledger.besu.ethereum.transaction.TransactionSimulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.plugin.Unstable; import org.hyperledger.besu.plugin.data.BlockOverrides; diff --git a/besu/src/main/java/org/hyperledger/besu/services/SynchronizationServiceImpl.java b/besu/src/main/java/org/hyperledger/besu/services/SynchronizationServiceImpl.java index b2dffbca5..1713c78d1 100644 --- a/besu/src/main/java/org/hyperledger/besu/services/SynchronizationServiceImpl.java +++ b/besu/src/main/java/org/hyperledger/besu/services/SynchronizationServiceImpl.java @@ -14,7 +14,7 @@ */ package org.hyperledger.besu.services; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import org.hyperledger.besu.consensus.merge.MergeContext; import org.hyperledger.besu.datatypes.Hash; @@ -26,9 +26,9 @@ import org.hyperledger.besu.ethereum.core.Synchronizer; import org.hyperledger.besu.ethereum.eth.sync.state.SyncState; import org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.plugin.data.BlockBody; import org.hyperledger.besu.plugin.data.BlockHeader; @@ -51,7 +51,7 @@ public class SynchronizationServiceImpl implements SynchronizationService { private final Synchronizer synchronizer; private final SyncState syncState; - private final Optional worldStateArchive; + private final Optional worldStateArchive; /** * Constructor for SynchronizationServiceImpl. @@ -74,8 +74,8 @@ public class SynchronizationServiceImpl implements SynchronizationService { this.syncState = syncState; this.worldStateArchive = Optional.ofNullable(worldStateArchive) - .filter(z -> z instanceof DiffBasedWorldStateProvider) - .map(DiffBasedWorldStateProvider.class::cast); + .filter(z -> z instanceof PathBasedWorldStateProvider) + .map(PathBasedWorldStateProvider.class::cast); } @Override @@ -147,14 +147,14 @@ public class SynchronizationServiceImpl implements SynchronizationService { worldStateArchive.ifPresent( archive -> { archive.getWorldStateSharedSpec().setTrieDisabled(true); - final DiffBasedWorldStateKeyValueStorage worldStateStorage = + final PathBasedWorldStateKeyValueStorage worldStateStorage = archive.getWorldStateKeyValueStorage(); final Optional worldStateBlockHash = worldStateStorage.getWorldStateBlockHash(); final Optional worldStateRootHash = worldStateStorage.getWorldStateRootHash(); if (worldStateRootHash.isPresent() && worldStateBlockHash.isPresent()) { worldStateStorage.clearTrie(); // keep root and block hash in the trie branch - final DiffBasedWorldStateKeyValueStorage.Updater updater = worldStateStorage.updater(); + final PathBasedWorldStateKeyValueStorage.Updater updater = worldStateStorage.updater(); updater.saveWorldState( worldStateBlockHash.get(), Bytes32.wrap(worldStateRootHash.get()), Bytes.EMPTY); updater.commit(); diff --git a/besu/src/test/java/org/hyperledger/besu/FlexGroupPrivacyTest.java b/besu/src/test/java/org/hyperledger/besu/FlexGroupPrivacyTest.java index b1a8829a0..77024c71f 100644 --- a/besu/src/test/java/org/hyperledger/besu/FlexGroupPrivacyTest.java +++ b/besu/src/test/java/org/hyperledger/besu/FlexGroupPrivacyTest.java @@ -40,7 +40,7 @@ import org.hyperledger.besu.ethereum.eth.transactions.BlobCacheModule; import org.hyperledger.besu.ethereum.eth.transactions.TransactionPoolConfiguration; import org.hyperledger.besu.ethereum.p2p.config.NetworkingConfiguration; import org.hyperledger.besu.ethereum.privacy.storage.PrivacyStorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.evm.precompile.PrecompiledContract; diff --git a/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java b/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java index f9682c60e..cf33e6e82 100644 --- a/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java +++ b/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java @@ -64,7 +64,7 @@ import org.hyperledger.besu.ethereum.privacy.storage.PrivacyGroupHeadBlockMap; import org.hyperledger.besu.ethereum.privacy.storage.PrivacyStorageProvider; import org.hyperledger.besu.ethereum.privacy.storage.PrivateStateStorage; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.evm.log.LogsBloomFilter; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; diff --git a/besu/src/test/java/org/hyperledger/besu/PrivacyTest.java b/besu/src/test/java/org/hyperledger/besu/PrivacyTest.java index a2a6a5685..6250b1756 100644 --- a/besu/src/test/java/org/hyperledger/besu/PrivacyTest.java +++ b/besu/src/test/java/org/hyperledger/besu/PrivacyTest.java @@ -39,7 +39,7 @@ import org.hyperledger.besu.ethereum.eth.sync.SynchronizerConfiguration; import org.hyperledger.besu.ethereum.eth.transactions.BlobCacheModule; import org.hyperledger.besu.ethereum.eth.transactions.TransactionPoolConfiguration; import org.hyperledger.besu.ethereum.p2p.config.NetworkingConfiguration; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoaderModule; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.evm.precompile.PrecompiledContract; diff --git a/besu/src/test/java/org/hyperledger/besu/chainimport/JsonBlockImporterTest.java b/besu/src/test/java/org/hyperledger/besu/chainimport/JsonBlockImporterTest.java index 780590671..fd81236ad 100644 --- a/besu/src/test/java/org/hyperledger/besu/chainimport/JsonBlockImporterTest.java +++ b/besu/src/test/java/org/hyperledger/besu/chainimport/JsonBlockImporterTest.java @@ -44,7 +44,7 @@ import org.hyperledger.besu.ethereum.eth.sync.SynchronizerConfiguration; import org.hyperledger.besu.ethereum.eth.transactions.BlobCacheModule; import org.hyperledger.besu.ethereum.eth.transactions.TransactionPoolConfiguration; import org.hyperledger.besu.ethereum.p2p.config.NetworkingConfiguration; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.metrics.MetricsSystemModule; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; diff --git a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java index ee040561d..664e5000f 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java @@ -1282,7 +1282,7 @@ public class BesuCommandTest extends CommandTestAbstract { } @Test - public void diffbasedLimitTrieLogsEnabledByDefault() { + public void pathbasedLimitTrieLogsEnabledByDefault() { parseCommand(); verify(mockControllerBuilder) .dataStorageConfiguration(dataStorageConfigurationArgumentCaptor.capture()); @@ -1292,7 +1292,7 @@ public class BesuCommandTest extends CommandTestAbstract { assertThat(dataStorageConfiguration.getDataStorageFormat()).isEqualTo(BONSAI); assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getLimitTrieLogsEnabled()) .isTrue(); assertThat(commandOutput.toString(UTF_8)).isEmpty(); @@ -1311,7 +1311,7 @@ public class BesuCommandTest extends CommandTestAbstract { assertThat(dataStorageConfiguration.getDataStorageFormat()).isEqualTo(BONSAI); assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getLimitTrieLogsEnabled()) .isFalse(); verify(mockLogger) @@ -1348,7 +1348,8 @@ public class BesuCommandTest extends CommandTestAbstract { final DataStorageConfiguration dataStorageConfiguration = dataStorageConfigurationArgumentCaptor.getValue(); assertThat(dataStorageConfiguration.getDataStorageFormat()).isEqualTo(BONSAI); - assertThat(dataStorageConfiguration.getDiffBasedSubStorageConfiguration().getMaxLayersToLoad()) + assertThat( + dataStorageConfiguration.getPathBasedExtraStorageConfiguration().getMaxLayersToLoad()) .isEqualTo(11); assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); @@ -2525,7 +2526,7 @@ public class BesuCommandTest extends CommandTestAbstract { besuCommand .getDataStorageOptions() .toDomainObject() - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getFullFlatDbEnabled()) .isTrue(); @@ -2538,7 +2539,7 @@ public class BesuCommandTest extends CommandTestAbstract { besuCommand .dataStorageOptions .toDomainObject() - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getFullFlatDbEnabled()) .isFalse(); diff --git a/besu/src/test/java/org/hyperledger/besu/cli/ConfigurationOverviewBuilderTest.java b/besu/src/test/java/org/hyperledger/besu/cli/ConfigurationOverviewBuilderTest.java index c2717afc0..10b8ca591 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/ConfigurationOverviewBuilderTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/ConfigurationOverviewBuilderTest.java @@ -162,7 +162,7 @@ class ConfigurationOverviewBuilderTest { } @Test - void setDiffbasedLimitTrieLogsEnabled() { + void setPathBasedLimitTrieLogsEnabled() { final String noTrieLogRetentionLimitSet = builder.build(); assertThat(noTrieLogRetentionLimitSet).doesNotContain("Limit trie logs enabled"); diff --git a/besu/src/test/java/org/hyperledger/besu/cli/options/stable/DataStorageOptionsTest.java b/besu/src/test/java/org/hyperledger/besu/cli/options/stable/DataStorageOptionsTest.java index b9dc4fa92..97892db4b 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/options/stable/DataStorageOptionsTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/options/stable/DataStorageOptionsTest.java @@ -15,13 +15,13 @@ package org.hyperledger.besu.cli.options.stable; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.MINIMUM_TRIE_LOG_RETENTION_LIMIT; import org.hyperledger.besu.cli.options.AbstractCLIOptionsTest; import org.hyperledger.besu.cli.options.storage.DataStorageOptions; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import org.junit.jupiter.api.Test; @@ -35,7 +35,7 @@ public class DataStorageOptionsTest dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getTrieLogPruningWindowSize()) .isEqualTo(600), "--bonsai-limit-trie-logs-enabled", @@ -49,7 +49,7 @@ public class DataStorageOptionsTest dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getTrieLogPruningWindowSize()) .isEqualTo(600), "--Xbonsai-limit-trie-logs-enabled", @@ -63,14 +63,14 @@ public class DataStorageOptionsTest dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getLimitTrieLogsEnabled()) .isEqualTo(false), "--bonsai-limit-trie-logs-enabled=false"); } @Test - public void diffbasedTrieLogPruningWindowSizeShouldBePositive() { + public void pathbasedTrieLogPruningWindowSizeShouldBePositive() { internalTestFailure( "--bonsai-trie-logs-pruning-window-size=0 must be greater than 0", "--bonsai-limit-trie-logs-enabled", @@ -79,7 +79,7 @@ public class DataStorageOptionsTest } @Test - public void diffbasedTrieLogPruningWindowSizeShouldBeAboveRetentionLimit() { + public void pathbasedTrieLogPruningWindowSizeShouldBeAboveRetentionLimit() { internalTestFailure( "--bonsai-trie-logs-pruning-window-size=512 must be greater than --bonsai-historical-block-limit=512", "--bonsai-limit-trie-logs-enabled", @@ -93,7 +93,7 @@ public class DataStorageOptionsTest dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getMaxLayersToLoad()) .isEqualTo(MINIMUM_TRIE_LOG_RETENTION_LIMIT + 1), "--bonsai-limit-trie-logs-enabled", @@ -107,7 +107,7 @@ public class DataStorageOptionsTest dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getMaxLayersToLoad()) .isEqualTo(MINIMUM_TRIE_LOG_RETENTION_LIMIT), "--bonsai-limit-trie-logs-enabled", @@ -125,12 +125,12 @@ public class DataStorageOptionsTest } @Test - public void diffbasedCodeUsingCodeHashEnabledCanBeEnabled() { + public void pathbasedCodeUsingCodeHashEnabledCanBeEnabled() { internalTestSuccess( dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getCodeStoredByCodeHashEnabled()) .isEqualTo(true), @@ -139,12 +139,12 @@ public class DataStorageOptionsTest } @Test - public void diffbasedCodeUsingCodeHashEnabledCanBeDisabled() { + public void pathbasedCodeUsingCodeHashEnabledCanBeDisabled() { internalTestSuccess( dataStorageConfiguration -> assertThat( dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getCodeStoredByCodeHashEnabled()) .isEqualTo(false), @@ -185,8 +185,8 @@ public class DataStorageOptionsTest protected DataStorageConfiguration createCustomizedDomainObject() { return ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(513L) .limitTrieLogsEnabled(true) .trieLogPruningWindowSize(514) diff --git a/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelperTest.java b/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelperTest.java index fef10457c..5650c1442 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelperTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogHelperTest.java @@ -17,7 +17,7 @@ package org.hyperledger.besu.cli.subcommands.storage; import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DEFAULT_TRIE_LOG_PRUNING_WINDOW_SIZE; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.DEFAULT_TRIE_LOG_PRUNING_WINDOW_SIZE; import static org.hyperledger.besu.plugin.services.storage.DataStorageFormat.BONSAI; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.spy; @@ -30,12 +30,12 @@ import org.hyperledger.besu.ethereum.core.BlockHeaderTestFixture; import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; import org.hyperledger.besu.ethereum.storage.StorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog.TrieLogFactoryImpl; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog.TrieLogFactoryImpl; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import java.io.FileNotFoundException; @@ -135,8 +135,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(3L) .limitTrieLogsEnabled(true) .build()) @@ -176,8 +176,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(2L) .limitTrieLogsEnabled(true) .build()) @@ -199,8 +199,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(10L) .limitTrieLogsEnabled(true) .build()) @@ -222,8 +222,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(2L) .limitTrieLogsEnabled(true) .build()) @@ -246,8 +246,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(6L) .limitTrieLogsEnabled(true) .build()) @@ -271,8 +271,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(3L) .limitTrieLogsEnabled(true) .build()) @@ -303,8 +303,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(511L) .limitTrieLogsEnabled(true) .build()) @@ -324,8 +324,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(512L) .limitTrieLogsEnabled(true) .trieLogPruningWindowSize(0) @@ -345,8 +345,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(512L) .limitTrieLogsEnabled(true) .trieLogPruningWindowSize(512) @@ -368,8 +368,8 @@ class TrieLogHelperTest { DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(3L) .limitTrieLogsEnabled(true) .build()) diff --git a/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommandTest.java b/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommandTest.java index 8e701ec67..a3ffb349a 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommandTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/subcommands/storage/TrieLogSubCommandTest.java @@ -58,9 +58,9 @@ class TrieLogSubCommandTest extends CommandTestAbstract { .dataStorageConfiguration(dataStorageConfigurationArgumentCaptor.capture()); final List configs = dataStorageConfigurationArgumentCaptor.getAllValues(); - assertThat(configs.get(0).getDiffBasedSubStorageConfiguration().getLimitTrieLogsEnabled()) + assertThat(configs.get(0).getPathBasedExtraStorageConfiguration().getLimitTrieLogsEnabled()) .isTrue(); - assertThat(configs.get(1).getDiffBasedSubStorageConfiguration().getLimitTrieLogsEnabled()) + assertThat(configs.get(1).getPathBasedExtraStorageConfiguration().getLimitTrieLogsEnabled()) .isFalse(); } @@ -75,7 +75,7 @@ class TrieLogSubCommandTest extends CommandTestAbstract { .allMatch( dataStorageConfiguration -> dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getLimitTrieLogsEnabled()); } } diff --git a/besu/src/test/java/org/hyperledger/besu/services/BesuEventsImplTest.java b/besu/src/test/java/org/hyperledger/besu/services/BesuEventsImplTest.java index b4520e4e7..39d634601 100644 --- a/besu/src/test/java/org/hyperledger/besu/services/BesuEventsImplTest.java +++ b/besu/src/test/java/org/hyperledger/besu/services/BesuEventsImplTest.java @@ -58,7 +58,7 @@ import org.hyperledger.besu.ethereum.mainnet.ValidationResult; import org.hyperledger.besu.ethereum.mainnet.feemarket.FeeMarket; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKeyBlockchainStorage; import org.hyperledger.besu.ethereum.storage.keyvalue.VariablesKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import org.hyperledger.besu.plugin.data.AddedBlockContext; diff --git a/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinator.java b/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinator.java index 62a6e123a..1ea92baa0 100644 --- a/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinator.java +++ b/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinator.java @@ -16,7 +16,7 @@ package org.hyperledger.besu.consensus.merge.blockcreation; import static java.util.stream.Collectors.joining; import static org.hyperledger.besu.consensus.merge.blockcreation.MergeMiningCoordinator.ForkchoiceResult.Status.INVALID; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import org.hyperledger.besu.consensus.merge.MergeContext; import org.hyperledger.besu.consensus.merge.PayloadWrapper; diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/graphql/internal/pojoadapter/AccountAdapter.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/graphql/internal/pojoadapter/AccountAdapter.java index 1b4c8323b..9c55acc9f 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/graphql/internal/pojoadapter/AccountAdapter.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/graphql/internal/pojoadapter/AccountAdapter.java @@ -17,7 +17,7 @@ package org.hyperledger.besu.ethereum.api.graphql.internal.pojoadapter; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; import org.hyperledger.besu.evm.account.Account; import org.hyperledger.besu.evm.account.AccountState; diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugSetHead.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugSetHead.java index e6f42f25f..cf5d71d66 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugSetHead.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugSetHead.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods; import static org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType.UNKNOWN_BLOCK; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.ProtocolContext; @@ -30,7 +30,7 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.RpcErrorType; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; import java.util.Optional; @@ -90,9 +90,9 @@ public class DebugSetHead extends AbstractBlockParameterOrBlockHashMethod { if (maybeMoveWorldstate.orElse(Boolean.FALSE)) { var archive = blockchainQueries.getWorldStateArchive(); - // Only DiffBasedWorldState's need to be moved: - if (archive instanceof DiffBasedWorldStateProvider diffBasedArchive) { - if (rollIncrementally(maybeBlockHeader.get(), blockchain, diffBasedArchive)) { + // Only PathBasedWorldState's need to be moved: + if (archive instanceof PathBasedWorldStateProvider pathBasedArchive) { + if (rollIncrementally(maybeBlockHeader.get(), blockchain, pathBasedArchive)) { return JsonRpcSuccessResponse.SUCCESS_RESULT; } } @@ -108,11 +108,11 @@ public class DebugSetHead extends AbstractBlockParameterOrBlockHashMethod { private boolean rollIncrementally( final BlockHeader target, final MutableBlockchain blockchain, - final DiffBasedWorldStateProvider archive) { + final PathBasedWorldStateProvider archive) { try { if (archive.isWorldStateAvailable(target.getStateRoot(), target.getBlockHash())) { - // WARNING, this can be dangerous for a DiffBasedWorldstate if a concurrent + // WARNING, this can be dangerous for a PathBasedWorldstate if a concurrent // process attempts to move or modify the head worldstate. // Ensure no block processing is occuring when using this feature. // No engine-api, block import, sync, mining or other rpc calls should be running. diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/privateProcessor/PrivateTracer.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/privateProcessor/PrivateTracer.java index 95a899b1b..08836c354 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/privateProcessor/PrivateTracer.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/privateProcessor/PrivateTracer.java @@ -14,7 +14,7 @@ */ package org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.privateProcessor; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/query/BlockchainQueries.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/query/BlockchainQueries.java index 64bf7fb61..4c1757b25 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/query/BlockchainQueries.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/query/BlockchainQueries.java @@ -17,7 +17,7 @@ package org.hyperledger.besu.ethereum.api.query; import static com.google.common.base.Preconditions.checkArgument; import static org.hyperledger.besu.ethereum.api.query.cache.TransactionLogBloomCacher.BLOCKS_PER_BLOOM_CACHE; import static org.hyperledger.besu.ethereum.mainnet.feemarket.ExcessBlobGasCalculator.calculateExcessBlobGasForParent; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockCreator.java b/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockCreator.java index fe0951050..ecff3912f 100644 --- a/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockCreator.java +++ b/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockCreator.java @@ -16,7 +16,7 @@ package org.hyperledger.besu.ethereum.blockcreation; import static org.hyperledger.besu.ethereum.core.BlockHeaderBuilder.createPending; import static org.hyperledger.besu.ethereum.mainnet.feemarket.ExcessBlobGasCalculator.calculateExcessBlobGasForParent; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.BlobGas; diff --git a/ethereum/blockcreation/src/test/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockTransactionSelectorTest.java b/ethereum/blockcreation/src/test/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockTransactionSelectorTest.java index e42b07dce..c074d2ea0 100644 --- a/ethereum/blockcreation/src/test/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockTransactionSelectorTest.java +++ b/ethereum/blockcreation/src/test/java/org/hyperledger/besu/ethereum/blockcreation/AbstractBlockTransactionSelectorTest.java @@ -80,7 +80,7 @@ import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKeyBlockchainStorage; import org.hyperledger.besu.ethereum.storage.keyvalue.VariablesKeyValueStorage; import org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.evm.gascalculator.GasCalculator; import org.hyperledger.besu.evm.gascalculator.LondonGasCalculator; import org.hyperledger.besu.evm.internal.EvmConfiguration; diff --git a/ethereum/core/src/integration-test/java/org/hyperledger/besu/ethereum/vm/TraceTransactionIntegrationTest.java b/ethereum/core/src/integration-test/java/org/hyperledger/besu/ethereum/vm/TraceTransactionIntegrationTest.java index 644c280e2..be8e62546 100644 --- a/ethereum/core/src/integration-test/java/org/hyperledger/besu/ethereum/vm/TraceTransactionIntegrationTest.java +++ b/ethereum/core/src/integration-test/java/org/hyperledger/besu/ethereum/vm/TraceTransactionIntegrationTest.java @@ -16,7 +16,7 @@ package org.hyperledger.besu.ethereum.vm; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.entry; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; import org.hyperledger.besu.config.GenesisConfig; import org.hyperledger.besu.crypto.KeyPair; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/MainnetBlockValidator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/MainnetBlockValidator.java index 037073877..7d2bb45ef 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/MainnetBlockValidator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/MainnetBlockValidator.java @@ -28,7 +28,7 @@ import org.hyperledger.besu.ethereum.mainnet.BlockProcessor; import org.hyperledger.besu.ethereum.mainnet.BodyValidationMode; import org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.plugin.services.exception.StorageException; import java.util.ArrayList; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessor.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessor.java index 6a419ebd5..43d7e4c85 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessor.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessor.java @@ -37,8 +37,8 @@ import org.hyperledger.besu.ethereum.mainnet.systemcall.BlockProcessingContext; import org.hyperledger.besu.ethereum.privacy.storage.PrivateMetadataUpdater; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; import org.hyperledger.besu.evm.blockhash.BlockHashLookup; import org.hyperledger.besu.evm.tracing.OperationTracer; import org.hyperledger.besu.evm.worldstate.WorldState; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/MainnetParallelBlockProcessor.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/MainnetParallelBlockProcessor.java index 470efaf3b..ee7898b91 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/MainnetParallelBlockProcessor.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/MainnetParallelBlockProcessor.java @@ -32,7 +32,7 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.mainnet.ProtocolSpecBuilder; import org.hyperledger.besu.ethereum.privacy.storage.PrivateMetadataUpdater; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; import org.hyperledger.besu.evm.blockhash.BlockHashLookup; import org.hyperledger.besu.evm.worldstate.WorldUpdater; import org.hyperledger.besu.metrics.BesuMetricCategory; @@ -221,7 +221,7 @@ public class MainnetParallelBlockProcessor extends MainnetBlockProcessor { final Address miningBeneficiary, final BlockHashLookup blockHashLookup, final Wei blobGasPrice) { - if ((protocolContext.getWorldStateArchive() instanceof DiffBasedWorldStateProvider)) { + if ((protocolContext.getWorldStateArchive() instanceof PathBasedWorldStateProvider)) { ParallelizedConcurrentTransactionProcessor parallelizedConcurrentTransactionProcessor = new ParallelizedConcurrentTransactionProcessor(transactionProcessor); // runAsyncBlock, if activated, facilitates the non-blocking parallel execution of diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java index f99f2c119..52dd47dab 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java @@ -24,10 +24,10 @@ import org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor; import org.hyperledger.besu.ethereum.mainnet.TransactionValidationParams; import org.hyperledger.besu.ethereum.privacy.storage.PrivateMetadataUpdater; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.evm.blockhash.BlockHashLookup; import org.hyperledger.besu.evm.tracing.OperationTracer; import org.hyperledger.besu.evm.worldstate.WorldView; @@ -153,8 +153,8 @@ public class ParallelizedConcurrentTransactionProcessor { ws.disableCacheMerkleTrieLoader(); final ParallelizedTransactionContext.Builder contextBuilder = new ParallelizedTransactionContext.Builder(); - final DiffBasedWorldStateUpdateAccumulator roundWorldStateUpdater = - (DiffBasedWorldStateUpdateAccumulator) ws.updater(); + final PathBasedWorldStateUpdateAccumulator roundWorldStateUpdater = + (PathBasedWorldStateUpdateAccumulator) ws.updater(); final TransactionProcessingResult result = transactionProcessor.processTransaction( roundWorldStateUpdater, @@ -244,16 +244,16 @@ public class ParallelizedConcurrentTransactionProcessor { final int transactionLocation, final Optional confirmedParallelizedTransactionCounter, final Optional conflictingButCachedTransactionCounter) { - final DiffBasedWorldState diffBasedWorldState = (DiffBasedWorldState) worldState; - final DiffBasedWorldStateUpdateAccumulator blockAccumulator = - (DiffBasedWorldStateUpdateAccumulator) diffBasedWorldState.updater(); + final PathBasedWorldState pathBasedWorldState = (PathBasedWorldState) worldState; + final PathBasedWorldStateUpdateAccumulator blockAccumulator = + (PathBasedWorldStateUpdateAccumulator) pathBasedWorldState.updater(); final ParallelizedTransactionContext parallelizedTransactionContext = parallelizedTransactionContextByLocation.remove(transactionLocation); /* * If `parallelizedTransactionContext` is not null, it means that the transaction had time to complete in the background. */ if (parallelizedTransactionContext != null) { - final DiffBasedWorldStateUpdateAccumulator transactionAccumulator = + final PathBasedWorldStateUpdateAccumulator transactionAccumulator = parallelizedTransactionContext.transactionAccumulator(); final TransactionProcessingResult transactionProcessingResult = parallelizedTransactionContext.transactionProcessingResult(); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedTransactionContext.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedTransactionContext.java index 30305ce00..aaab06ff0 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedTransactionContext.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedTransactionContext.java @@ -16,18 +16,18 @@ package org.hyperledger.besu.ethereum.mainnet.parallelization; import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import java.util.Objects; public final class ParallelizedTransactionContext { - private final DiffBasedWorldStateUpdateAccumulator transactionAccumulator; + private final PathBasedWorldStateUpdateAccumulator transactionAccumulator; private final TransactionProcessingResult transactionProcessingResult; private final boolean isMiningBeneficiaryTouchedPreRewardByTransaction; private final Wei miningBeneficiaryReward; public ParallelizedTransactionContext( - final DiffBasedWorldStateUpdateAccumulator transactionAccumulator, + final PathBasedWorldStateUpdateAccumulator transactionAccumulator, final TransactionProcessingResult transactionProcessingResult, final boolean isMiningBeneficiaryTouchedPreRewardByTransaction, final Wei miningBeneficiaryReward) { @@ -38,7 +38,7 @@ public final class ParallelizedTransactionContext { this.miningBeneficiaryReward = miningBeneficiaryReward; } - public DiffBasedWorldStateUpdateAccumulator transactionAccumulator() { + public PathBasedWorldStateUpdateAccumulator transactionAccumulator() { return transactionAccumulator; } @@ -93,13 +93,13 @@ public final class ParallelizedTransactionContext { } public static class Builder { - private DiffBasedWorldStateUpdateAccumulator transactionAccumulator; + private PathBasedWorldStateUpdateAccumulator transactionAccumulator; private TransactionProcessingResult transactionProcessingResult; private boolean isMiningBeneficiaryTouchedPreRewardByTransaction; private Wei miningBeneficiaryReward = Wei.ZERO; public Builder transactionAccumulator( - final DiffBasedWorldStateUpdateAccumulator transactionAccumulator) { + final PathBasedWorldStateUpdateAccumulator transactionAccumulator) { this.transactionAccumulator = transactionAccumulator; return this; } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetector.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetector.java index dba0ec660..76857135f 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetector.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetector.java @@ -17,10 +17,10 @@ package org.hyperledger.besu.ethereum.mainnet.parallelization; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.core.Transaction; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.StorageConsumingMap; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.StorageConsumingMap; import java.util.HashSet; import java.util.Objects; @@ -55,7 +55,7 @@ public class TransactionCollisionDetector { final Transaction transaction, final Address miningBeneficiary, final ParallelizedTransactionContext parallelizedTransactionContext, - final DiffBasedWorldStateUpdateAccumulator blockAccumulator) { + final PathBasedWorldStateUpdateAccumulator blockAccumulator) { final Set
addressesTouchedByTransaction = getAddressesTouchedByTransaction( transaction, Optional.of(parallelizedTransactionContext.transactionAccumulator())); @@ -97,21 +97,21 @@ public class TransactionCollisionDetector { */ public Set
getAddressesTouchedByTransaction( final Transaction transaction, - final Optional> accumulator) { + final Optional> accumulator) { HashSet
addresses = new HashSet<>(); addresses.add(transaction.getSender()); if (transaction.getTo().isPresent()) { addresses.add(transaction.getTo().get()); } accumulator.ifPresent( - diffBasedWorldStateUpdateAccumulator -> { - diffBasedWorldStateUpdateAccumulator + pathBasedWorldStateUpdateAccumulator -> { + pathBasedWorldStateUpdateAccumulator .getAccountsToUpdate() .forEach( - (address, diffBasedValue) -> { + (address, pathBasedValue) -> { addresses.add(address); }); - addresses.addAll(diffBasedWorldStateUpdateAccumulator.getDeletedAccountAddresses()); + addresses.addAll(pathBasedWorldStateUpdateAccumulator.getDeletedAccountAddresses()); }); return addresses; @@ -134,12 +134,12 @@ public class TransactionCollisionDetector { * returned. */ private Set getSlotsTouchedByTransactionAndByAddress( - final Optional> accumulator, final Address address) { + final Optional> accumulator, final Address address) { HashSet slots = new HashSet<>(); accumulator.ifPresent( - diffBasedWorldStateUpdateAccumulator -> { - final StorageConsumingMap> map = - diffBasedWorldStateUpdateAccumulator.getStorageToUpdate().get(address); + pathBasedWorldStateUpdateAccumulator -> { + final StorageConsumingMap> map = + pathBasedWorldStateUpdateAccumulator.getStorageToUpdate().get(address); if (map != null) { map.forEach( (storageSlotKey, slot) -> { @@ -170,19 +170,19 @@ public class TransactionCollisionDetector { */ private Optional getAddressTouchedByBlock( final Address addressToFind, - final Optional> + final Optional> maybeBlockAccumulator) { if (maybeBlockAccumulator.isPresent()) { - final DiffBasedWorldStateUpdateAccumulator blockAccumulator = + final PathBasedWorldStateUpdateAccumulator blockAccumulator = maybeBlockAccumulator.get(); - final DiffBasedValue diffBasedValue = + final PathBasedValue pathBasedValue = blockAccumulator.getAccountsToUpdate().get(addressToFind); - if (diffBasedValue != null) { + if (pathBasedValue != null) { return Optional.of( new AccountUpdateContext( addressToFind, areAccountDetailsEqualExcludingStorage( - diffBasedValue.getPrior(), diffBasedValue.getUpdated()))); + pathBasedValue.getPrior(), pathBasedValue.getUpdated()))); } } return Optional.empty(); @@ -203,12 +203,12 @@ public class TransactionCollisionDetector { * are found, or the address has no associated updates, an empty set is returned. */ private Set getSlotsTouchedByBlockAndByAddress( - final Optional> accumulator, final Address address) { + final Optional> accumulator, final Address address) { HashSet slots = new HashSet<>(); accumulator.ifPresent( - diffBasedWorldStateUpdateAccumulator -> { - final StorageConsumingMap> map = - diffBasedWorldStateUpdateAccumulator.getStorageToUpdate().get(address); + pathBasedWorldStateUpdateAccumulator -> { + final StorageConsumingMap> map = + pathBasedWorldStateUpdateAccumulator.getStorageToUpdate().get(address); if (map != null) { map.forEach( (storageSlotKey, slot) -> { @@ -235,7 +235,7 @@ public class TransactionCollisionDetector { * @return true if the account state properties are equal excluding storage, false otherwise. */ private boolean areAccountDetailsEqualExcludingStorage( - final DiffBasedAccount prior, final DiffBasedAccount next) { + final PathBasedAccount prior, final PathBasedAccount next) { return (prior == null && next == null) || (prior != null && next != null diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/FlexiblePrivacyPrecompiledContract.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/FlexiblePrivacyPrecompiledContract.java index 119f487f3..78692cc8a 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/FlexiblePrivacyPrecompiledContract.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/FlexiblePrivacyPrecompiledContract.java @@ -18,7 +18,7 @@ import static org.hyperledger.besu.ethereum.core.PrivacyParameters.FLEXIBLE_PRIV import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_IS_PERSISTING_PRIVATE_STATE; import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_PRIVATE_METADATA_UPDATER; import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_TRANSACTION_HASH; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.enclave.Enclave; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContract.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContract.java index 1285f05b6..85329b0f9 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContract.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContract.java @@ -14,7 +14,7 @@ */ package org.hyperledger.besu.ethereum.mainnet.precompiles.privacy; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.MutableWorldState; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContract.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContract.java index f0aa32ab8..96a99c821 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContract.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContract.java @@ -18,7 +18,7 @@ import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_IS_PER import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_PRIVATE_METADATA_UPDATER; import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_TRANSACTION_HASH; import static org.hyperledger.besu.ethereum.privacy.PrivateStateRootResolver.EMPTY_ROOT_HASH; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/FlexiblePrivacyGroupContract.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/FlexiblePrivacyGroupContract.java index 3b4456dc1..434b418f4 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/FlexiblePrivacyGroupContract.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/FlexiblePrivacyGroupContract.java @@ -18,7 +18,7 @@ import static org.hyperledger.besu.ethereum.core.PrivacyParameters.FLEXIBLE_PRIV import static org.hyperledger.besu.ethereum.privacy.group.FlexibleGroupManagement.CAN_EXECUTE_METHOD_SIGNATURE; import static org.hyperledger.besu.ethereum.privacy.group.FlexibleGroupManagement.GET_PARTICIPANTS_METHOD_SIGNATURE; import static org.hyperledger.besu.ethereum.privacy.group.FlexibleGroupManagement.GET_VERSION_METHOD_SIGNATURE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; import org.hyperledger.besu.crypto.SECPSignature; import org.hyperledger.besu.crypto.SignatureAlgorithm; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateGroupRehydrationBlockProcessor.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateGroupRehydrationBlockProcessor.java index 51ada13f0..c2555e900 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateGroupRehydrationBlockProcessor.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateGroupRehydrationBlockProcessor.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum.privacy; import static org.hyperledger.besu.ethereum.privacy.PrivateStateRootResolver.EMPTY_ROOT_HASH; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateStateRehydration.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateStateRehydration.java index 91933dc87..2fe71f1fa 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateStateRehydration.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateStateRehydration.java @@ -14,7 +14,7 @@ */ package org.hyperledger.besu.ethereum.privacy; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateTransactionSimulator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateTransactionSimulator.java index 52f2eb75b..096016f5a 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateTransactionSimulator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/PrivateTransactionSimulator.java @@ -14,8 +14,8 @@ */ package org.hyperledger.besu.ethereum.privacy; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; import org.hyperledger.besu.crypto.SECPSignature; import org.hyperledger.besu.crypto.SignatureAlgorithm; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigration.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigration.java index 6e0c8f519..34bacf462 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigration.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigration.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum.privacy.storage.migration; import static org.hyperledger.besu.ethereum.privacy.storage.PrivateStateKeyValueStorage.SCHEMA_VERSION_1_4_0; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/processing/TransactionProcessingResult.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/processing/TransactionProcessingResult.java index 1701aa4eb..4caeb972c 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/processing/TransactionProcessingResult.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/processing/TransactionProcessingResult.java @@ -16,7 +16,7 @@ package org.hyperledger.besu.ethereum.processing; import org.hyperledger.besu.ethereum.mainnet.ValidationResult; import org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.evm.log.Log; import java.util.List; @@ -55,7 +55,7 @@ public class TransactionProcessingResult private final ValidationResult validationResult; private final Optional revertReason; - public DiffBasedWorldStateUpdateAccumulator accumulator; + public PathBasedWorldStateUpdateAccumulator accumulator; public static TransactionProcessingResult invalid( final ValidationResult validationResult) { diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/storage/keyvalue/KeyValueStorageProvider.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/storage/keyvalue/KeyValueStorageProvider.java index 944f668cd..44a896be2 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/storage/keyvalue/KeyValueStorageProvider.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/storage/keyvalue/KeyValueStorageProvider.java @@ -19,8 +19,8 @@ import org.hyperledger.besu.ethereum.chain.VariablesStorage; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.mainnet.ScheduleBasedBlockHeaderFunctions; import org.hyperledger.besu.ethereum.storage.StorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStatePreimageStorage; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/BlockSimulator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/BlockSimulator.java index c4fcd43af..a053011fb 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/BlockSimulator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/BlockSimulator.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum.transaction; import static org.hyperledger.besu.ethereum.transaction.BlockStateCalls.fillBlockStateCalls; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulator.java index ed9f8356f..72169c275 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulator.java @@ -16,7 +16,7 @@ package org.hyperledger.besu.ethereum.transaction; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.hyperledger.besu.ethereum.mainnet.feemarket.ExcessBlobGasCalculator.calculateExcessBlobGasForParent; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.crypto.SECPSignature; import org.hyperledger.besu.crypto.SignatureAlgorithm; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/common/GenesisWorldStateProvider.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/common/GenesisWorldStateProvider.java index 7235632e9..925319807 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/common/GenesisWorldStateProvider.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/common/GenesisWorldStateProvider.java @@ -14,18 +14,18 @@ */ package org.hyperledger.besu.ethereum.trie.common; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import org.hyperledger.besu.ethereum.core.MutableWorldState; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.WorldStatePreimageKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.NoOpBonsaiCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.NoOpTrieLogManager; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.worldview.ForestMutableWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.NoOpBonsaiCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.NoOpTrieLogManager; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/ForestWorldStateArchive.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/ForestWorldStateArchive.java index 1d170a401..766dd28b9 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/ForestWorldStateArchive.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/ForestWorldStateArchive.java @@ -21,9 +21,9 @@ import org.hyperledger.besu.ethereum.core.MutableWorldState; import org.hyperledger.besu.ethereum.proof.WorldStateProof; import org.hyperledger.besu.ethereum.proof.WorldStateProofProvider; import org.hyperledger.besu.ethereum.trie.MerkleTrie; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.worldview.ForestMutableWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.ethereum.worldstate.WorldStatePreimageStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiAccount.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiAccount.java similarity index 90% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiAccount.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiAccount.java index a9f85cce9..4a17f5498 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiAccount.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiAccount.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; @@ -22,9 +22,9 @@ import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.rlp.RLPException; import org.hyperledger.besu.ethereum.rlp.RLPInput; import org.hyperledger.besu.ethereum.rlp.RLPOutput; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView; import org.hyperledger.besu.evm.ModificationNotAllowedException; import org.hyperledger.besu.evm.account.AccountStorageEntry; import org.hyperledger.besu.evm.worldstate.UpdateTrackingAccount; @@ -35,11 +35,11 @@ import java.util.Objects; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; -public class BonsaiAccount extends DiffBasedAccount { +public class BonsaiAccount extends PathBasedAccount { private Hash storageRoot; public BonsaiAccount( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final Hash addressHash, final long nonce, @@ -52,7 +52,7 @@ public class BonsaiAccount extends DiffBasedAccount { } public BonsaiAccount( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final AccountValue stateTrieAccount, final boolean mutable) { @@ -72,7 +72,7 @@ public class BonsaiAccount extends DiffBasedAccount { } public BonsaiAccount( - final BonsaiAccount toCopy, final DiffBasedWorldView context, final boolean mutable) { + final BonsaiAccount toCopy, final PathBasedWorldView context, final boolean mutable) { super( context, toCopy.address, @@ -87,7 +87,7 @@ public class BonsaiAccount extends DiffBasedAccount { } public BonsaiAccount( - final DiffBasedWorldView context, final UpdateTrackingAccount tracked) { + final PathBasedWorldView context, final UpdateTrackingAccount tracked) { super( context, tracked.getAddress(), @@ -102,7 +102,7 @@ public class BonsaiAccount extends DiffBasedAccount { } public static BonsaiAccount fromRLP( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final Bytes encoded, final boolean mutable) diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiWorldStateProvider.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiWorldStateProvider.java similarity index 92% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiWorldStateProvider.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiWorldStateProvider.java index c7d238500..f484daf4e 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiWorldStateProvider.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiWorldStateProvider.java @@ -12,19 +12,19 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.plugin.ServiceManager; @@ -40,7 +40,7 @@ import org.apache.tuweni.bytes.Bytes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class BonsaiWorldStateProvider extends DiffBasedWorldStateProvider { +public class BonsaiWorldStateProvider extends PathBasedWorldStateProvider { private static final Logger LOG = LoggerFactory.getLogger(BonsaiWorldStateProvider.class); private final BonsaiCachedMerkleTrieLoader bonsaiCachedMerkleTrieLoader; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedMerkleTrieLoader.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedMerkleTrieLoader.java similarity index 97% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedMerkleTrieLoader.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedMerkleTrieLoader.java index 402402bc0..ed471e88d 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedMerkleTrieLoader.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedMerkleTrieLoader.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache; import static org.hyperledger.besu.metrics.BesuMetricCategory.BLOCKCHAIN; @@ -21,8 +21,8 @@ import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.metrics.ObservableMetricsSystem; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedMerkleTrieLoaderModule.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedMerkleTrieLoaderModule.java similarity index 94% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedMerkleTrieLoaderModule.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedMerkleTrieLoaderModule.java index b506d5a5f..db14542b0 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedMerkleTrieLoaderModule.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedMerkleTrieLoaderModule.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache; import org.hyperledger.besu.metrics.ObservableMetricsSystem; import org.hyperledger.besu.plugin.services.MetricsSystem; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedWorldStorageManager.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedWorldStorageManager.java similarity index 56% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedWorldStorageManager.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedWorldStorageManager.java index cc4f5214f..6bfdbb533 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/BonsaiCachedWorldStorageManager.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/BonsaiCachedWorldStorageManager.java @@ -12,33 +12,33 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiSnapshotWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateLayerStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.cache.DiffBasedCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiSnapshotWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateLayerStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.cache.PathBasedCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig; import org.hyperledger.besu.evm.internal.EvmConfiguration; -public class BonsaiCachedWorldStorageManager extends DiffBasedCachedWorldStorageManager { +public class BonsaiCachedWorldStorageManager extends PathBasedCachedWorldStorageManager { public BonsaiCachedWorldStorageManager( final BonsaiWorldStateProvider archive, - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final WorldStateConfig worldStateConfig) { super(archive, worldStateKeyValueStorage, worldStateConfig); } @Override - public DiffBasedWorldState createWorldState( - final DiffBasedWorldStateProvider archive, - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + public PathBasedWorldState createWorldState( + final PathBasedWorldStateProvider archive, + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final EvmConfiguration evmConfiguration) { return new BonsaiWorldState( (BonsaiWorldStateProvider) archive, @@ -48,15 +48,15 @@ public class BonsaiCachedWorldStorageManager extends DiffBasedCachedWorldStorage } @Override - public DiffBasedWorldStateKeyValueStorage createLayeredKeyValueStorage( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage) { + public PathBasedWorldStateKeyValueStorage createLayeredKeyValueStorage( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage) { return new BonsaiWorldStateLayerStorage( (BonsaiWorldStateKeyValueStorage) worldStateKeyValueStorage); } @Override - public DiffBasedWorldStateKeyValueStorage createSnapshotKeyValueStorage( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage) { + public PathBasedWorldStateKeyValueStorage createSnapshotKeyValueStorage( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage) { return new BonsaiSnapshotWorldStateKeyValueStorage( (BonsaiWorldStateKeyValueStorage) worldStateKeyValueStorage); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/NoOpBonsaiCachedWorldStorageManager.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/NoOpBonsaiCachedWorldStorageManager.java similarity index 77% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/NoOpBonsaiCachedWorldStorageManager.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/NoOpBonsaiCachedWorldStorageManager.java index 501140fac..0c12dd099 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/NoOpBonsaiCachedWorldStorageManager.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/NoOpBonsaiCachedWorldStorageManager.java @@ -12,13 +12,13 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig; import java.util.Optional; import java.util.function.Function; @@ -34,7 +34,7 @@ public class NoOpBonsaiCachedWorldStorageManager extends BonsaiCachedWorldStorag public synchronized void addCachedLayer( final BlockHeader blockHeader, final Hash worldStateRootHash, - final DiffBasedWorldState forWorldState) { + final PathBasedWorldState forWorldState) { // no cache } @@ -44,17 +44,17 @@ public class NoOpBonsaiCachedWorldStorageManager extends BonsaiCachedWorldStorag } @Override - public Optional getWorldState(final Hash blockHash) { + public Optional getWorldState(final Hash blockHash) { return Optional.empty(); } @Override - public Optional getNearestWorldState(final BlockHeader blockHeader) { + public Optional getNearestWorldState(final BlockHeader blockHeader) { return Optional.empty(); } @Override - public Optional getHeadWorldState( + public Optional getHeadWorldState( final Function> hashBlockHeaderFunction) { return Optional.empty(); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/NoopBonsaiCachedMerkleTrieLoader.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/NoopBonsaiCachedMerkleTrieLoader.java similarity index 91% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/NoopBonsaiCachedMerkleTrieLoader.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/NoopBonsaiCachedMerkleTrieLoader.java index 8f58e697f..95e8d6f37 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/cache/NoopBonsaiCachedMerkleTrieLoader.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/cache/NoopBonsaiCachedMerkleTrieLoader.java @@ -12,12 +12,12 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; public class NoopBonsaiCachedMerkleTrieLoader extends BonsaiCachedMerkleTrieLoader { diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiPreImageProxy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiPreImageProxy.java similarity index 97% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiPreImageProxy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiPreImageProxy.java index 070e797a5..fbaa7e1ec 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiPreImageProxy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiPreImageProxy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiSnapshotWorldStateKeyValueStorage.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiSnapshotWorldStateKeyValueStorage.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiSnapshotWorldStateKeyValueStorage.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiSnapshotWorldStateKeyValueStorage.java index 2437118d6..6771faa69 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiSnapshotWorldStateKeyValueStorage.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiSnapshotWorldStateKeyValueStorage.java @@ -12,12 +12,12 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedSnapshotWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedSnapshotWorldStateKeyValueStorage; import org.hyperledger.besu.plugin.services.exception.StorageException; import org.hyperledger.besu.plugin.services.storage.KeyValueStorage; import org.hyperledger.besu.plugin.services.storage.SnappableKeyValueStorage; @@ -32,7 +32,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class BonsaiSnapshotWorldStateKeyValueStorage extends BonsaiWorldStateKeyValueStorage - implements DiffBasedSnapshotWorldStateKeyValueStorage, StorageSubscriber { + implements PathBasedSnapshotWorldStateKeyValueStorage, StorageSubscriber { protected final BonsaiWorldStateKeyValueStorage parentWorldStateStorage; private static final Logger LOG = diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateKeyValueStorage.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateKeyValueStorage.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateKeyValueStorage.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateKeyValueStorage.java index e712c66ea..948748603 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateKeyValueStorage.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateKeyValueStorage.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_INFO_STATE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_STORAGE_STORAGE; @@ -25,10 +25,10 @@ import org.hyperledger.besu.ethereum.storage.StorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat.BonsaiFlatDbStrategy; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat.BonsaiFlatDbStrategyProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.FlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat.BonsaiFlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat.BonsaiFlatDbStrategyProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.FlatDbStrategy; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; @@ -48,7 +48,7 @@ import java.util.function.Supplier; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; -public class BonsaiWorldStateKeyValueStorage extends DiffBasedWorldStateKeyValueStorage +public class BonsaiWorldStateKeyValueStorage extends PathBasedWorldStateKeyValueStorage implements WorldStateKeyValueStorage { protected final BonsaiFlatDbStrategyProvider flatDbStrategyProvider; @@ -190,7 +190,7 @@ public class BonsaiWorldStateKeyValueStorage extends DiffBasedWorldStateKeyValue getFlatDbStrategy()); } - public static class Updater implements DiffBasedWorldStateKeyValueStorage.Updater { + public static class Updater implements PathBasedWorldStateKeyValueStorage.Updater { private final SegmentedKeyValueStorageTransaction composedWorldStateTransaction; private final KeyValueStorageTransaction trieLogStorageTransaction; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateLayerStorage.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateLayerStorage.java similarity index 86% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateLayerStorage.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateLayerStorage.java index f798dfad7..6e65acbe6 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateLayerStorage.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateLayerStorage.java @@ -12,17 +12,17 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedLayeredWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedLayeredWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.plugin.services.storage.KeyValueStorage; import org.hyperledger.besu.plugin.services.storage.SnappedKeyValueStorage; import org.hyperledger.besu.services.kvstore.LayeredKeyValueStorage; public class BonsaiWorldStateLayerStorage extends BonsaiSnapshotWorldStateKeyValueStorage - implements DiffBasedLayeredWorldStateKeyValueStorage, StorageSubscriber { + implements PathBasedLayeredWorldStateKeyValueStorage, StorageSubscriber { public BonsaiWorldStateLayerStorage(final BonsaiWorldStateKeyValueStorage parent) { this( diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFlatDbStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFlatDbStrategy.java similarity index 97% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFlatDbStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFlatDbStrategy.java index d0330ed24..4bf15d10f 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFlatDbStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFlatDbStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_INFO_STATE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_STORAGE_STORAGE; @@ -21,8 +21,8 @@ import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIden import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.trie.NodeLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.CodeStorageStrategy; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.FlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.CodeStorageStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.FlatDbStrategy; import org.hyperledger.besu.plugin.services.MetricsSystem; import org.hyperledger.besu.plugin.services.storage.SegmentedKeyValueStorage; import org.hyperledger.besu.plugin.services.storage.SegmentedKeyValueStorageTransaction; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFlatDbStrategyProvider.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFlatDbStrategyProvider.java similarity index 91% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFlatDbStrategyProvider.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFlatDbStrategyProvider.java index f6157ca2f..1bce73a38 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFlatDbStrategyProvider.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFlatDbStrategyProvider.java @@ -12,13 +12,13 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.CodeStorageStrategy; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.FlatDbStrategy; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.FlatDbStrategyProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.CodeStorageStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.FlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.FlatDbStrategyProvider; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.plugin.services.MetricsSystem; @@ -41,7 +41,7 @@ public class BonsaiFlatDbStrategyProvider extends FlatDbStrategyProvider { protected FlatDbMode getRequestedFlatDbMode( final DataStorageConfiguration dataStorageConfiguration) { return dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getFullFlatDbEnabled() ? FlatDbMode.FULL diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFullFlatDbStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFullFlatDbStrategy.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFullFlatDbStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFullFlatDbStrategy.java index 7a251a03a..cfeaf56e6 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiFullFlatDbStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiFullFlatDbStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_INFO_STATE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_STORAGE_STORAGE; @@ -20,7 +20,7 @@ import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIden import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.trie.NodeLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.CodeStorageStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.CodeStorageStrategy; import org.hyperledger.besu.metrics.BesuMetricCategory; import org.hyperledger.besu.plugin.services.MetricsSystem; import org.hyperledger.besu.plugin.services.metrics.Counter; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiPartialFlatDbStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiPartialFlatDbStrategy.java similarity index 98% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiPartialFlatDbStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiPartialFlatDbStrategy.java index 301536bcc..42ed9254c 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/flat/BonsaiPartialFlatDbStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/flat/BonsaiPartialFlatDbStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_INFO_STATE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_STORAGE_STORAGE; @@ -20,7 +20,7 @@ import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIden import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.trie.NodeLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.CodeStorageStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.CodeStorageStrategy; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.trie.patricia.StoredNodeFactory; import org.hyperledger.besu.metrics.BesuMetricCategory; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogFactoryImpl.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogFactoryImpl.java similarity index 95% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogFactoryImpl.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogFactoryImpl.java index d528373d2..cdec800eb 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogFactoryImpl.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogFactoryImpl.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog; import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; @@ -23,8 +23,8 @@ import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; import org.hyperledger.besu.ethereum.rlp.RLPInput; import org.hyperledger.besu.ethereum.rlp.RLPOutput; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; import org.hyperledger.besu.plugin.data.BlockHeader; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; import org.hyperledger.besu.plugin.services.trielogs.TrieLogAccumulator; @@ -168,7 +168,7 @@ public class TrieLogFactoryImpl implements TrieLogFactory { input.leaveList(); newLayer .getAccountChanges() - .put(address, new DiffBasedValue<>(oldValue, newValue, isCleared)); + .put(address, new PathBasedValue<>(oldValue, newValue, isCleared)); } if (input.nextIsNull()) { @@ -179,13 +179,13 @@ public class TrieLogFactoryImpl implements TrieLogFactory { final Bytes newCode = nullOrValue(input, RLPInput::readBytes); final boolean isCleared = getOptionalIsCleared(input); input.leaveList(); - newLayer.getCodeChanges().put(address, new DiffBasedValue<>(oldCode, newCode, isCleared)); + newLayer.getCodeChanges().put(address, new PathBasedValue<>(oldCode, newCode, isCleared)); } if (input.nextIsNull()) { input.skipNext(); } else { - final Map> storageChanges = new TreeMap<>(); + final Map> storageChanges = new TreeMap<>(); input.enterList(); while (!input.isEndOfCurrentList()) { input.enterList(); @@ -194,7 +194,7 @@ public class TrieLogFactoryImpl implements TrieLogFactory { final UInt256 oldValue = nullOrValue(input, RLPInput::readUInt256Scalar); final UInt256 newValue = nullOrValue(input, RLPInput::readUInt256Scalar); final boolean isCleared = getOptionalIsCleared(input); - storageChanges.put(storageSlotKey, new DiffBasedValue<>(oldValue, newValue, isCleared)); + storageChanges.put(storageSlotKey, new PathBasedValue<>(oldValue, newValue, isCleared)); input.leaveList(); } input.leaveList(); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldState.java similarity index 90% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldState.java index 3f2e336bc..0a0fee7f8 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldState.java @@ -12,10 +12,10 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView.encodeTrieValue; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView.encodeTrieValue; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; @@ -25,20 +25,20 @@ import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; import org.hyperledger.besu.ethereum.trie.NoOpMerkleTrie; import org.hyperledger.besu.ethereum.trie.NodeLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.NoopBonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateLayerStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.cache.DiffBasedCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.StorageConsumingMap; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.NoopBonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateLayerStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.cache.PathBasedCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.StorageConsumingMap; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.evm.account.Account; import org.hyperledger.besu.evm.internal.EvmConfiguration; @@ -59,7 +59,7 @@ import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.rlp.RLP; import org.apache.tuweni.units.bigints.UInt256; -public class BonsaiWorldState extends DiffBasedWorldState { +public class BonsaiWorldState extends PathBasedWorldState { protected BonsaiCachedMerkleTrieLoader bonsaiCachedMerkleTrieLoader; @@ -80,7 +80,7 @@ public class BonsaiWorldState extends DiffBasedWorldState { public BonsaiWorldState( final BonsaiWorldStateKeyValueStorage worldStateKeyValueStorage, final BonsaiCachedMerkleTrieLoader bonsaiCachedMerkleTrieLoader, - final DiffBasedCachedWorldStorageManager cachedWorldStorageManager, + final PathBasedCachedWorldStorageManager cachedWorldStorageManager, final TrieLogManager trieLogManager, final EvmConfiguration evmConfiguration, final WorldStateConfig worldStateConfig) { @@ -111,8 +111,8 @@ public class BonsaiWorldState extends DiffBasedWorldState { @Override protected Hash calculateRootHash( - final Optional maybeStateUpdater, - final DiffBasedWorldStateUpdateAccumulator worldStateUpdater) { + final Optional maybeStateUpdater, + final PathBasedWorldStateUpdateAccumulator worldStateUpdater) { return internalCalculateRootHash( maybeStateUpdater.map(BonsaiWorldStateKeyValueStorage.Updater.class::cast), (BonsaiWorldStateUpdateAccumulator) worldStateUpdater); @@ -126,7 +126,7 @@ public class BonsaiWorldState extends DiffBasedWorldState { // This must be done before updating the accounts so // that we can get the storage state hash - Stream>>> + Stream>>> storageStream = worldStateUpdater.getStorageToUpdate().entrySet().stream(); if (maybeStateUpdater.isEmpty()) { storageStream = @@ -170,10 +170,10 @@ public class BonsaiWorldState extends DiffBasedWorldState { final Optional maybeStateUpdater, final BonsaiWorldStateUpdateAccumulator worldStateUpdater, final MerkleTrie accountTrie) { - for (final Map.Entry> accountUpdate : + for (final Map.Entry> accountUpdate : worldStateUpdater.getAccountsToUpdate().entrySet()) { final Bytes accountKey = accountUpdate.getKey(); - final DiffBasedValue bonsaiValue = accountUpdate.getValue(); + final PathBasedValue bonsaiValue = accountUpdate.getValue(); final BonsaiAccount updatedAccount = bonsaiValue.getUpdated(); try { if (updatedAccount == null) { @@ -203,7 +203,7 @@ public class BonsaiWorldState extends DiffBasedWorldState { final BonsaiWorldStateUpdateAccumulator worldStateUpdater) { maybeStateUpdater.ifPresent( bonsaiUpdater -> { - for (final Map.Entry> codeUpdate : + for (final Map.Entry> codeUpdate : worldStateUpdater.getCodeToUpdate().entrySet()) { final Bytes updatedCode = codeUpdate.getValue().getUpdated(); final Hash accountHash = codeUpdate.getKey().addressHash(); @@ -233,12 +233,12 @@ public class BonsaiWorldState extends DiffBasedWorldState { private void updateAccountStorageState( final Optional maybeStateUpdater, final BonsaiWorldStateUpdateAccumulator worldStateUpdater, - final Map.Entry>> + final Map.Entry>> storageAccountUpdate) { final Address updatedAddress = storageAccountUpdate.getKey(); final Hash updatedAddressHash = updatedAddress.addressHash(); if (worldStateUpdater.getAccountsToUpdate().containsKey(updatedAddress)) { - final DiffBasedValue accountValue = + final PathBasedValue accountValue = worldStateUpdater.getAccountsToUpdate().get(updatedAddress); final BonsaiAccount accountOriginal = accountValue.getPrior(); final Hash storageRoot = @@ -254,7 +254,7 @@ public class BonsaiWorldState extends DiffBasedWorldState { storageRoot); // for manicured tries and composting, collect branches here (not implemented) - for (final Map.Entry> storageUpdate : + for (final Map.Entry> storageUpdate : storageAccountUpdate.getValue().entrySet()) { final Hash slotHash = storageUpdate.getKey().getSlotHash(); final UInt256 updatedStorage = storageUpdate.getValue().getUpdated(); @@ -320,7 +320,7 @@ public class BonsaiWorldState extends DiffBasedWorldState { (location, key) -> getStorageTrieNode(addressHash, location, key), oldAccount.getStorageRoot()); try { - final StorageConsumingMap> storageToDelete = + final StorageConsumingMap> storageToDelete = worldStateUpdater.getStorageToUpdate().get(address); Map entriesToDelete = storageTrie.entriesFrom(Bytes32.ZERO, 256); while (!entriesToDelete.isEmpty()) { @@ -335,7 +335,7 @@ public class BonsaiWorldState extends DiffBasedWorldState { address.addressHash(), storageSlotKey.getSlotHash())); storageToDelete .computeIfAbsent( - storageSlotKey, key -> new DiffBasedValue<>(slotValue, null, true)) + storageSlotKey, key -> new PathBasedValue<>(slotValue, null, true)) .setPrior(slotValue); }); entriesToDelete.keySet().forEach(storageTrie::remove); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldStateUpdateAccumulator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldStateUpdateAccumulator.java similarity index 76% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldStateUpdateAccumulator.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldStateUpdateAccumulator.java index 49e8fe03d..1f19005ec 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldStateUpdateAccumulator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldStateUpdateAccumulator.java @@ -12,33 +12,33 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview; import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.datatypes.Wei; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.Consumer; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.Consumer; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.evm.worldstate.UpdateTrackingAccount; public class BonsaiWorldStateUpdateAccumulator - extends DiffBasedWorldStateUpdateAccumulator { + extends PathBasedWorldStateUpdateAccumulator { public BonsaiWorldStateUpdateAccumulator( - final DiffBasedWorldView world, - final Consumer> accountPreloader, + final PathBasedWorldView world, + final Consumer> accountPreloader, final Consumer storagePreloader, final EvmConfiguration evmConfiguration) { super(world, accountPreloader, storagePreloader, evmConfiguration); } @Override - public DiffBasedWorldStateUpdateAccumulator copy() { + public PathBasedWorldStateUpdateAccumulator copy() { final BonsaiWorldStateUpdateAccumulator copy = new BonsaiWorldStateUpdateAccumulator( wrappedWorldView(), @@ -56,13 +56,13 @@ public class BonsaiWorldStateUpdateAccumulator @Override protected BonsaiAccount copyAccount( - final BonsaiAccount toCopy, final DiffBasedWorldView context, final boolean mutable) { + final BonsaiAccount toCopy, final PathBasedWorldView context, final boolean mutable) { return new BonsaiAccount(toCopy, context, mutable); } @Override protected BonsaiAccount createAccount( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final AccountValue stateTrieAccount, final boolean mutable) { @@ -71,7 +71,7 @@ public class BonsaiWorldStateUpdateAccumulator @Override protected BonsaiAccount createAccount( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final Hash addressHash, final long nonce, @@ -85,7 +85,7 @@ public class BonsaiWorldStateUpdateAccumulator @Override protected BonsaiAccount createAccount( - final DiffBasedWorldView context, final UpdateTrackingAccount tracked) { + final PathBasedWorldView context, final UpdateTrackingAccount tracked) { return new BonsaiAccount(context, tracked); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/DiffBasedAccount.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/PathBasedAccount.java similarity index 90% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/DiffBasedAccount.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/PathBasedAccount.java index 2b81ebfba..517896ec1 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/DiffBasedAccount.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/PathBasedAccount.java @@ -12,14 +12,14 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common; +package org.hyperledger.besu.ethereum.trie.pathbased.common; import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView; import org.hyperledger.besu.evm.ModificationNotAllowedException; import org.hyperledger.besu.evm.account.MutableAccount; @@ -29,8 +29,8 @@ import java.util.Map; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.units.bigints.UInt256; -public abstract class DiffBasedAccount implements MutableAccount, AccountValue { - protected final DiffBasedWorldView context; +public abstract class PathBasedAccount implements MutableAccount, AccountValue { + protected final PathBasedWorldView context; protected boolean immutable; protected final Address address; protected final Hash addressHash; @@ -42,12 +42,12 @@ public abstract class DiffBasedAccount implements MutableAccount, AccountValue { protected final Map updatedStorage = new HashMap<>(); /** - * Constructs a new DiffBasedAccount instance without the account's code. This constructor is used + * Constructs a new PathBasedAccount instance without the account's code. This constructor is used * when the account's code is not required or will not be read from the database. It initializes * the account with its context, address, address hash, nonce, balance, code hash, and mutability * status. * - * @param context The DiffBasedWorldView context in which this account exists. + * @param context The PathBasedWorldView context in which this account exists. * @param address The Ethereum address of this account. * @param addressHash The hash of the account's address. * @param nonce The nonce of the account, representing the number of transactions sent from this @@ -57,8 +57,8 @@ public abstract class DiffBasedAccount implements MutableAccount, AccountValue { * @param mutable A boolean indicating if the account is mutable. If false, the account is * considered immutable. */ - public DiffBasedAccount( - final DiffBasedWorldView context, + public PathBasedAccount( + final PathBasedWorldView context, final Address address, final Hash addressHash, final long nonce, @@ -76,12 +76,12 @@ public abstract class DiffBasedAccount implements MutableAccount, AccountValue { } /** - * Constructs a new DiffBasedAccount instance with the account's code. This constructor is used + * Constructs a new PathBasedAccount instance with the account's code. This constructor is used * when all account information, including its code, are available. It initializes the account * with its context, address, address hash, nonce, balance, code hash, the actual code, and * mutability status. * - * @param context The DiffBasedWorldView context in which this account exists. + * @param context The PathBasedWorldView context in which this account exists. * @param address The Ethereum address of this account. * @param addressHash The hash of the account's address. * @param nonce The nonce of the account, representing the number of transactions sent from this @@ -93,8 +93,8 @@ public abstract class DiffBasedAccount implements MutableAccount, AccountValue { * @param mutable A boolean indicating if the account is mutable. If false, the account is * considered immutable. */ - public DiffBasedAccount( - final DiffBasedWorldView context, + public PathBasedAccount( + final PathBasedWorldView context, final Address address, final Hash addressHash, final long nonce, diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/DiffBasedValue.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/PathBasedValue.java similarity index 83% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/DiffBasedValue.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/PathBasedValue.java index b2b613455..b58c38366 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/DiffBasedValue.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/PathBasedValue.java @@ -12,35 +12,35 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common; +package org.hyperledger.besu.ethereum.trie.pathbased.common; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -public class DiffBasedValue implements TrieLog.LogTuple { +public class PathBasedValue implements TrieLog.LogTuple { private T prior; private T updated; private boolean lastStepCleared; private boolean clearedAtLeastOnce; - public DiffBasedValue(final T prior, final T updated) { + public PathBasedValue(final T prior, final T updated) { this.prior = prior; this.updated = updated; this.lastStepCleared = false; this.clearedAtLeastOnce = false; } - public DiffBasedValue(final T prior, final T updated, final boolean lastStepCleared) { + public PathBasedValue(final T prior, final T updated, final boolean lastStepCleared) { this.prior = prior; this.updated = updated; this.lastStepCleared = lastStepCleared; this.clearedAtLeastOnce = lastStepCleared; } - public DiffBasedValue( + public PathBasedValue( final T prior, final T updated, final boolean lastStepCleared, @@ -61,12 +61,12 @@ public class DiffBasedValue implements TrieLog.LogTuple { return updated; } - public DiffBasedValue setPrior(final T prior) { + public PathBasedValue setPrior(final T prior) { this.prior = prior; return this; } - public DiffBasedValue setUpdated(final T updated) { + public PathBasedValue setUpdated(final T updated) { this.lastStepCleared = updated == null; if (lastStepCleared) { this.clearedAtLeastOnce = true; @@ -92,7 +92,7 @@ public class DiffBasedValue implements TrieLog.LogTuple { @Override public String toString() { - return "DiffBasedValue{" + return "PathBasedValue{" + "prior=" + prior + ", updated=" @@ -110,7 +110,7 @@ public class DiffBasedValue implements TrieLog.LogTuple { if (o == null || getClass() != o.getClass()) { return false; } - DiffBasedValue that = (DiffBasedValue) o; + PathBasedValue that = (PathBasedValue) o; return new EqualsBuilder() .append(lastStepCleared, that.lastStepCleared) .append(prior, that.prior) @@ -127,7 +127,7 @@ public class DiffBasedValue implements TrieLog.LogTuple { .toHashCode(); } - public DiffBasedValue copy() { - return new DiffBasedValue(prior, updated, lastStepCleared, clearedAtLeastOnce); + public PathBasedValue copy() { + return new PathBasedValue(prior, updated, lastStepCleared, clearedAtLeastOnce); } } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/StorageSubscriber.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/StorageSubscriber.java similarity index 93% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/StorageSubscriber.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/StorageSubscriber.java index 258df5c5b..8e3b354ae 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/StorageSubscriber.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/StorageSubscriber.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common; +package org.hyperledger.besu.ethereum.trie.pathbased.common; public interface StorageSubscriber { default void onClearStorage() {} diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/cache/DiffBasedCachedWorldStorageManager.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/cache/PathBasedCachedWorldStorageManager.java similarity index 76% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/cache/DiffBasedCachedWorldStorageManager.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/cache/PathBasedCachedWorldStorageManager.java index 0a66c3540..c9504a208 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/cache/DiffBasedCachedWorldStorageManager.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/cache/PathBasedCachedWorldStorageManager.java @@ -12,20 +12,20 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.common.cache; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedLayeredWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedLayeredWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig; import org.hyperledger.besu.evm.internal.EvmConfiguration; import java.util.ArrayList; @@ -43,11 +43,11 @@ import org.apache.tuweni.bytes.Bytes32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class DiffBasedCachedWorldStorageManager implements StorageSubscriber { +public abstract class PathBasedCachedWorldStorageManager implements StorageSubscriber { public static final long RETAINED_LAYERS = 512; // at least 256 + typical rollbacks private static final Logger LOG = - LoggerFactory.getLogger(DiffBasedCachedWorldStorageManager.class); - private final DiffBasedWorldStateProvider archive; + LoggerFactory.getLogger(PathBasedCachedWorldStorageManager.class); + private final PathBasedWorldStateProvider archive; private final EvmConfiguration evmConfiguration; protected final WorldStateConfig worldStateConfig; private final Cache stateRootToBlockHeaderCache = @@ -56,13 +56,13 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc .expireAfterWrite(100, TimeUnit.MINUTES) .build(); - private final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage; - private final Map cachedWorldStatesByHash; + private final PathBasedWorldStateKeyValueStorage rootWorldStateStorage; + private final Map cachedWorldStatesByHash; - private DiffBasedCachedWorldStorageManager( - final DiffBasedWorldStateProvider archive, - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, - final Map cachedWorldStatesByHash, + private PathBasedCachedWorldStorageManager( + final PathBasedWorldStateProvider archive, + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + final Map cachedWorldStatesByHash, final EvmConfiguration evmConfiguration, final WorldStateConfig worldStateConfig) { worldStateKeyValueStorage.subscribe(this); @@ -73,9 +73,9 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc this.worldStateConfig = worldStateConfig; } - public DiffBasedCachedWorldStorageManager( - final DiffBasedWorldStateProvider archive, - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + public PathBasedCachedWorldStorageManager( + final PathBasedWorldStateProvider archive, + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final WorldStateConfig worldStateConfig) { this( archive, @@ -88,20 +88,20 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc public synchronized void addCachedLayer( final BlockHeader blockHeader, final Hash worldStateRootHash, - final DiffBasedWorldState forWorldState) { - final Optional cachedDiffBasedWorldView = + final PathBasedWorldState forWorldState) { + final Optional cachedPathBasedWorldView = Optional.ofNullable(this.cachedWorldStatesByHash.get(blockHeader.getBlockHash())); - if (cachedDiffBasedWorldView.isPresent()) { + if (cachedPathBasedWorldView.isPresent()) { // only replace if it is a layered storage if (forWorldState.isModifyingHeadWorldState() - && cachedDiffBasedWorldView.get().getWorldStateStorage() - instanceof DiffBasedLayeredWorldStateKeyValueStorage) { + && cachedPathBasedWorldView.get().getWorldStateStorage() + instanceof PathBasedLayeredWorldStateKeyValueStorage) { LOG.atDebug() .setMessage("updating layered world state for block {}, state root hash {}") .addArgument(blockHeader::toLogString) .addArgument(worldStateRootHash::toShortHexString) .log(); - cachedDiffBasedWorldView + cachedPathBasedWorldView .get() .updateWorldStateStorage( createSnapshotKeyValueStorage(forWorldState.getWorldStateStorage())); @@ -115,15 +115,15 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc if (forWorldState.isModifyingHeadWorldState()) { cachedWorldStatesByHash.put( blockHeader.getHash(), - new DiffBasedCachedWorldView( + new PathBasedCachedWorldView( blockHeader, createSnapshotKeyValueStorage(forWorldState.getWorldStateStorage()))); } else { // otherwise, add the layer to the cache cachedWorldStatesByHash.put( blockHeader.getHash(), - new DiffBasedCachedWorldView( + new PathBasedCachedWorldView( blockHeader, - ((DiffBasedLayeredWorldStateKeyValueStorage) forWorldState.getWorldStateStorage()) + ((PathBasedLayeredWorldStateKeyValueStorage) forWorldState.getWorldStateStorage()) .clone())); } // add stateroot -> blockHeader cache entry @@ -146,7 +146,7 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc } } - public Optional getWorldState(final Hash blockHash) { + public Optional getWorldState(final Hash blockHash) { if (cachedWorldStatesByHash.containsKey(blockHash)) { // return a new worldstate using worldstate storage and an isolated copy of the updater return Optional.ofNullable(cachedWorldStatesByHash.get(blockHash)) @@ -165,7 +165,7 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc return Optional.empty(); } - public Optional getNearestWorldState(final BlockHeader blockHeader) { + public Optional getNearestWorldState(final BlockHeader blockHeader) { LOG.atDebug() .setMessage("getting nearest worldstate for {}") .addArgument(blockHeader.toLogString()) @@ -173,7 +173,7 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc return Optional.ofNullable( cachedWorldStatesByHash.get(blockHeader.getParentHash())) // search parent block - .map(DiffBasedCachedWorldView::getWorldStateStorage) + .map(PathBasedCachedWorldView::getWorldStateStorage) .or( () -> { // or else search the nearest state in the cache @@ -182,13 +182,13 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc .addArgument(blockHeader.toLogString()) .log(); - final List cachedDiffBasedWorldViews = + final List cachedPathBasedWorldViews = new ArrayList<>(cachedWorldStatesByHash.values()); - return cachedDiffBasedWorldViews.stream() + return cachedPathBasedWorldViews.stream() .sorted( Comparator.comparingLong( view -> Math.abs(blockHeader.getNumber() - view.getBlockNumber()))) - .map(DiffBasedCachedWorldView::getWorldStateStorage) + .map(PathBasedCachedWorldView::getWorldStateStorage) .findFirst(); }) .map( @@ -197,7 +197,7 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc archive, createLayeredKeyValueStorage(storage), evmConfiguration)); } - public Optional getHeadWorldState( + public Optional getHeadWorldState( final Function> hashBlockHeaderFunction) { LOG.atDebug().setMessage("getting head worldstate").log(); @@ -242,13 +242,13 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc * @param rootHash rootHash to supply worldstate storage for * @return Optional worldstate storage */ - public synchronized Optional getStorageByRootHash( + public synchronized Optional getStorageByRootHash( final Hash rootHash) { return Optional.ofNullable(stateRootToBlockHeaderCache.getIfPresent(rootHash)) .flatMap( header -> Optional.ofNullable(cachedWorldStatesByHash.get(header.getHash())) - .map(DiffBasedCachedWorldView::getWorldStateStorage) + .map(PathBasedCachedWorldView::getWorldStateStorage) .or( () -> { // if not cached already, maybe fetch and cache this worldstate @@ -287,14 +287,14 @@ public abstract class DiffBasedCachedWorldStorageManager implements StorageSubsc this.cachedWorldStatesByHash.clear(); } - public abstract DiffBasedWorldState createWorldState( - final DiffBasedWorldStateProvider archive, - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + public abstract PathBasedWorldState createWorldState( + final PathBasedWorldStateProvider archive, + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final EvmConfiguration evmConfiguration); - public abstract DiffBasedWorldStateKeyValueStorage createLayeredKeyValueStorage( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage); + public abstract PathBasedWorldStateKeyValueStorage createLayeredKeyValueStorage( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage); - public abstract DiffBasedWorldStateKeyValueStorage createSnapshotKeyValueStorage( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage); + public abstract PathBasedWorldStateKeyValueStorage createSnapshotKeyValueStorage( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/cache/DiffBasedCachedWorldView.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/cache/PathBasedCachedWorldView.java similarity index 75% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/cache/DiffBasedCachedWorldView.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/cache/PathBasedCachedWorldView.java index 0d685f63d..0a7504abb 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/cache/DiffBasedCachedWorldView.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/cache/PathBasedCachedWorldView.java @@ -12,30 +12,30 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.cache; +package org.hyperledger.besu.ethereum.trie.pathbased.common.cache; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class DiffBasedCachedWorldView implements StorageSubscriber { - private DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage; +public class PathBasedCachedWorldView implements StorageSubscriber { + private PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage; private final BlockHeader blockHeader; private long worldViewSubscriberId; - private static final Logger LOG = LoggerFactory.getLogger(DiffBasedCachedWorldView.class); + private static final Logger LOG = LoggerFactory.getLogger(PathBasedCachedWorldView.class); - public DiffBasedCachedWorldView( - final BlockHeader blockHeader, final DiffBasedWorldStateKeyValueStorage worldView) { + public PathBasedCachedWorldView( + final BlockHeader blockHeader, final PathBasedWorldStateKeyValueStorage worldView) { this.blockHeader = blockHeader; this.worldStateKeyValueStorage = worldView; this.worldViewSubscriberId = worldStateKeyValueStorage.subscribe(this); } - public DiffBasedWorldStateKeyValueStorage getWorldStateStorage() { + public PathBasedWorldStateKeyValueStorage getWorldStateStorage() { return worldStateKeyValueStorage; } @@ -57,10 +57,10 @@ public class DiffBasedCachedWorldView implements StorageSubscriber { } public synchronized void updateWorldStateStorage( - final DiffBasedWorldStateKeyValueStorage newWorldStateStorage) { + final PathBasedWorldStateKeyValueStorage newWorldStateStorage) { long newSubscriberId = newWorldStateStorage.subscribe(this); this.worldStateKeyValueStorage.unSubscribe(this.worldViewSubscriberId); - final DiffBasedWorldStateKeyValueStorage oldWorldStateStorage = this.worldStateKeyValueStorage; + final PathBasedWorldStateKeyValueStorage oldWorldStateStorage = this.worldStateKeyValueStorage; this.worldStateKeyValueStorage = newWorldStateStorage; this.worldViewSubscriberId = newSubscriberId; try { diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/provider/DiffBasedWorldStateProvider.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/provider/PathBasedWorldStateProvider.java similarity index 88% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/provider/DiffBasedWorldStateProvider.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/provider/PathBasedWorldStateProvider.java index 0855efa1b..032b1dc3f 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/provider/DiffBasedWorldStateProvider.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/provider/PathBasedWorldStateProvider.java @@ -12,9 +12,9 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.provider; +package org.hyperledger.besu.ethereum.trie.pathbased.common.provider; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; @@ -24,12 +24,12 @@ import org.hyperledger.besu.ethereum.core.MutableWorldState; import org.hyperledger.besu.ethereum.proof.WorldStateProof; import org.hyperledger.besu.ethereum.proof.WorldStateProofProvider; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; -import org.hyperledger.besu.ethereum.trie.diffbased.common.cache.DiffBasedCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.cache.PathBasedCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.evm.worldstate.WorldState; @@ -46,21 +46,21 @@ import org.apache.tuweni.units.bigints.UInt256; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { +public abstract class PathBasedWorldStateProvider implements WorldStateArchive { - private static final Logger LOG = LoggerFactory.getLogger(DiffBasedWorldStateProvider.class); + private static final Logger LOG = LoggerFactory.getLogger(PathBasedWorldStateProvider.class); protected final Blockchain blockchain; protected final TrieLogManager trieLogManager; - protected DiffBasedCachedWorldStorageManager cachedWorldStorageManager; - protected DiffBasedWorldState headWorldState; - protected final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage; + protected PathBasedCachedWorldStorageManager cachedWorldStorageManager; + protected PathBasedWorldState headWorldState; + protected final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage; // Configuration that will be shared by all instances of world state at their creation protected final WorldStateConfig worldStateConfig; - public DiffBasedWorldStateProvider( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + public PathBasedWorldStateProvider( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final Blockchain blockchain, final Optional maxLayersToLoad, final ServiceManager pluginContext) { @@ -70,12 +70,12 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { new TrieLogManager( blockchain, worldStateKeyValueStorage, - maxLayersToLoad.orElse(DiffBasedCachedWorldStorageManager.RETAINED_LAYERS), + maxLayersToLoad.orElse(PathBasedCachedWorldStorageManager.RETAINED_LAYERS), pluginContext)); } - public DiffBasedWorldStateProvider( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + public PathBasedWorldStateProvider( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final Blockchain blockchain, final TrieLogManager trieLogManager) { @@ -87,11 +87,11 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { } protected void provideCachedWorldStorageManager( - final DiffBasedCachedWorldStorageManager cachedWorldStorageManager) { + final PathBasedCachedWorldStorageManager cachedWorldStorageManager) { this.cachedWorldStorageManager = cachedWorldStorageManager; } - protected void loadHeadWorldState(final DiffBasedWorldState headWorldState) { + protected void loadHeadWorldState(final PathBasedWorldState headWorldState) { this.headWorldState = headWorldState; blockchain .getBlockHeader(headWorldState.getWorldStateBlockHash()) @@ -233,7 +233,7 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { } private Optional rollFullWorldStateToBlockHash( - final DiffBasedWorldState mutableState, final Hash blockHash) { + final PathBasedWorldState mutableState, final Hash blockHash) { if (blockHash.equals(mutableState.blockHash())) { return Optional.of(mutableState); } else { @@ -282,19 +282,19 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { } // attempt the state rolling - final DiffBasedWorldStateUpdateAccumulator diffBasedUpdater = - (DiffBasedWorldStateUpdateAccumulator) mutableState.updater(); + final PathBasedWorldStateUpdateAccumulator pathBasedUpdater = + (PathBasedWorldStateUpdateAccumulator) mutableState.updater(); try { for (final TrieLog rollBack : rollBacks) { LOG.debug("Attempting Rollback of {}", rollBack.getBlockHash()); - diffBasedUpdater.rollBack(rollBack); + pathBasedUpdater.rollBack(rollBack); } for (int i = rollForwards.size() - 1; i >= 0; i--) { final var forward = rollForwards.get(i); LOG.debug("Attempting Rollforward of {}", rollForwards.get(i).getBlockHash()); - diffBasedUpdater.rollForward(forward); + pathBasedUpdater.rollForward(forward); } - diffBasedUpdater.commit(); + pathBasedUpdater.commit(); mutableState.persist(blockchain.getBlockHeader(blockHash).get()); @@ -308,7 +308,7 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { throw re; } catch (final Exception e) { // if we fail we must clean up the updater - diffBasedUpdater.reset(); + pathBasedUpdater.reset(); LOG.atDebug() .setMessage("State rolling failed on {} for block hash {}") .addArgument(mutableState.getWorldStateStorage().getClass().getSimpleName()) @@ -334,7 +334,7 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { return worldStateConfig; } - public DiffBasedWorldStateKeyValueStorage getWorldStateKeyValueStorage() { + public PathBasedWorldStateKeyValueStorage getWorldStateKeyValueStorage() { return worldStateKeyValueStorage; } @@ -342,7 +342,7 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { return trieLogManager; } - public DiffBasedCachedWorldStorageManager getCachedWorldStorageManager() { + public PathBasedCachedWorldStorageManager getCachedWorldStorageManager() { return cachedWorldStorageManager; } @@ -360,8 +360,8 @@ public abstract class DiffBasedWorldStateProvider implements WorldStateArchive { final Address accountAddress, final List accountStorageKeys, final Function, ? extends Optional> mapper) { - try (DiffBasedWorldState ws = - (DiffBasedWorldState) + try (PathBasedWorldState ws = + (PathBasedWorldState) getWorldState(withBlockHeaderAndNoUpdateNodeHead(blockHeader)).orElse(null)) { if (ws != null) { final WorldStateProofProvider worldStateProofProvider = diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/provider/WorldStateQueryParams.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/provider/WorldStateQueryParams.java similarity index 99% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/provider/WorldStateQueryParams.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/provider/WorldStateQueryParams.java index d447cc5ff..c1f91b43a 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/provider/WorldStateQueryParams.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/provider/WorldStateQueryParams.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.provider; +package org.hyperledger.besu.ethereum.trie.pathbased.common.provider; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.BlockHeader; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedLayeredWorldStateKeyValueStorage.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedLayeredWorldStateKeyValueStorage.java similarity index 74% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedLayeredWorldStateKeyValueStorage.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedLayeredWorldStateKeyValueStorage.java index 49f0b6e4b..3521137a2 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedLayeredWorldStateKeyValueStorage.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedLayeredWorldStateKeyValueStorage.java @@ -12,10 +12,10 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage; -public interface DiffBasedLayeredWorldStateKeyValueStorage - extends DiffBasedSnapshotWorldStateKeyValueStorage { +public interface PathBasedLayeredWorldStateKeyValueStorage + extends PathBasedSnapshotWorldStateKeyValueStorage { - DiffBasedWorldStateKeyValueStorage clone(); + PathBasedWorldStateKeyValueStorage clone(); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedSnapshotWorldStateKeyValueStorage.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedSnapshotWorldStateKeyValueStorage.java similarity index 77% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedSnapshotWorldStateKeyValueStorage.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedSnapshotWorldStateKeyValueStorage.java index 032d4a83b..446d8a7af 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedSnapshotWorldStateKeyValueStorage.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedSnapshotWorldStateKeyValueStorage.java @@ -12,9 +12,9 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage; -public interface DiffBasedSnapshotWorldStateKeyValueStorage { +public interface PathBasedSnapshotWorldStateKeyValueStorage { - DiffBasedWorldStateKeyValueStorage getParentWorldStateStorage(); + PathBasedWorldStateKeyValueStorage getParentWorldStateStorage(); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedWorldStateKeyValueStorage.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedWorldStateKeyValueStorage.java similarity index 94% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedWorldStateKeyValueStorage.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedWorldStateKeyValueStorage.java index 50adf7b34..6f84909e8 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/DiffBasedWorldStateKeyValueStorage.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/PathBasedWorldStateKeyValueStorage.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_INFO_STATE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_STORAGE_STORAGE; @@ -22,8 +22,8 @@ import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIden import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.storage.StorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat.FlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat.FlatDbStrategy; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; @@ -47,10 +47,10 @@ import org.apache.tuweni.bytes.Bytes32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class DiffBasedWorldStateKeyValueStorage +public abstract class PathBasedWorldStateKeyValueStorage implements WorldStateKeyValueStorage, AutoCloseable { private static final Logger LOG = - LoggerFactory.getLogger(DiffBasedWorldStateKeyValueStorage.class); + LoggerFactory.getLogger(PathBasedWorldStateKeyValueStorage.class); // 0x776f726c64526f6f74 public static final byte[] WORLD_ROOT_HASH_KEY = "worldRoot".getBytes(StandardCharsets.UTF_8); @@ -66,7 +66,7 @@ public abstract class DiffBasedWorldStateKeyValueStorage protected final SegmentedKeyValueStorage composedWorldStateStorage; protected final KeyValueStorage trieLogStorage; - public DiffBasedWorldStateKeyValueStorage(final StorageProvider provider) { + public PathBasedWorldStateKeyValueStorage(final StorageProvider provider) { this.composedWorldStateStorage = provider.getStorageBySegmentIdentifiers( List.of( @@ -75,7 +75,7 @@ public abstract class DiffBasedWorldStateKeyValueStorage provider.getStorageBySegmentIdentifier(KeyValueSegmentIdentifier.TRIE_LOG_STORAGE); } - public DiffBasedWorldStateKeyValueStorage( + public PathBasedWorldStateKeyValueStorage( final SegmentedKeyValueStorage composedWorldStateStorage, final KeyValueStorage trieLogStorage) { this.composedWorldStateStorage = composedWorldStateStorage; @@ -240,7 +240,7 @@ public abstract class DiffBasedWorldStateKeyValueStorage public interface Updater extends WorldStateKeyValueStorage.Updater { - DiffBasedWorldStateKeyValueStorage.Updater saveWorldState( + PathBasedWorldStateKeyValueStorage.Updater saveWorldState( final Bytes blockHash, final Bytes32 nodeHash, final Bytes node); SegmentedKeyValueStorageTransaction getWorldStateTransaction(); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/AccountHashCodeStorageStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/AccountHashCodeStorageStrategy.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/AccountHashCodeStorageStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/AccountHashCodeStorageStrategy.java index 58eb18b26..00744cd2a 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/AccountHashCodeStorageStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/AccountHashCodeStorageStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.CODE_STORAGE; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/CodeHashCodeStorageStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/CodeHashCodeStorageStrategy.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/CodeHashCodeStorageStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/CodeHashCodeStorageStrategy.java index 3d5516be0..cbe4b4dc9 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/CodeHashCodeStorageStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/CodeHashCodeStorageStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.CODE_STORAGE; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/CodeStorageStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/CodeStorageStrategy.java similarity index 95% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/CodeStorageStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/CodeStorageStrategy.java index 8374a8774..39802348c 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/CodeStorageStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/CodeStorageStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.plugin.services.storage.SegmentedKeyValueStorage; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/FlatDbStrategy.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/FlatDbStrategy.java similarity index 99% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/FlatDbStrategy.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/FlatDbStrategy.java index 046aaa5cc..cbf5996e3 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/FlatDbStrategy.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/FlatDbStrategy.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.metrics.BesuMetricCategory; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/FlatDbStrategyProvider.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/FlatDbStrategyProvider.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/FlatDbStrategyProvider.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/FlatDbStrategyProvider.java index 31e8598b2..f67651e78 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/FlatDbStrategyProvider.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/FlatDbStrategyProvider.java @@ -12,11 +12,11 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.CODE_STORAGE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; @@ -66,7 +66,7 @@ public abstract class FlatDbStrategyProvider { final SegmentedKeyValueStorage composedWorldStateStorage) { final boolean configCodeUsingHash = dataStorageConfiguration - .getDiffBasedSubStorageConfiguration() + .getPathBasedExtraStorageConfiguration() .getUnstable() .getCodeStoredByCodeHashEnabled(); boolean codeUsingCodeByHash = diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/NoOpTrieLogManager.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/NoOpTrieLogManager.java similarity index 79% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/NoOpTrieLogManager.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/NoOpTrieLogManager.java index 8c8c2acbf..5c3e13e61 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/NoOpTrieLogManager.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/NoOpTrieLogManager.java @@ -12,12 +12,12 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; import java.util.Optional; @@ -30,10 +30,10 @@ public class NoOpTrieLogManager extends TrieLogManager { @Override public synchronized void saveTrieLog( - final DiffBasedWorldStateUpdateAccumulator localUpdater, + final PathBasedWorldStateUpdateAccumulator localUpdater, final Hash forWorldStateRootHash, final BlockHeader forBlockHeader, - final DiffBasedWorldState forWorldState) { + final PathBasedWorldState forWorldState) { // notify trie log added observers, synchronously TrieLog trieLog = trieLogFactory.create(localUpdater, forBlockHeader); trieLogObservers.forEach(o -> o.onTrieLogAdded(new TrieLogAddedEvent(trieLog))); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogAddedEvent.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogAddedEvent.java similarity index 93% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogAddedEvent.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogAddedEvent.java index 8e69df24e..355f6a888 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogAddedEvent.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogAddedEvent.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; import org.hyperledger.besu.plugin.services.trielogs.TrieLogEvent; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogLayer.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogLayer.java similarity index 83% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogLayer.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogLayer.java index fffbe5c37..f2dc39405 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogLayer.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogLayer.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import static com.google.common.base.Preconditions.checkState; @@ -20,7 +20,7 @@ import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; import java.util.HashMap; @@ -47,21 +47,21 @@ public class TrieLogLayer implements TrieLog { protected Hash blockHash; protected Optional blockNumber = Optional.empty(); - Map> getAccounts() { + Map> getAccounts() { return accounts; } - Map> getCode() { + Map> getCode() { return code; } - Map>> getStorage() { + Map>> getStorage() { return storage; } - protected final Map> accounts; - protected final Map> code; - protected final Map>> storage; + protected final Map> accounts; + protected final Map> code; + protected final Map>> storage; protected boolean frozen = false; public TrieLogLayer() { @@ -102,14 +102,14 @@ public class TrieLogLayer implements TrieLog { public TrieLogLayer addAccountChange( final Address address, final AccountValue oldValue, final AccountValue newValue) { checkState(!frozen, "Layer is Frozen"); - accounts.put(address, new DiffBasedValue<>(oldValue, newValue)); + accounts.put(address, new PathBasedValue<>(oldValue, newValue)); return this; } public TrieLogLayer addCodeChange( final Address address, final Bytes oldValue, final Bytes newValue, final Hash blockHash) { checkState(!frozen, "Layer is Frozen"); - code.put(address, new DiffBasedValue<>(oldValue, newValue, newValue == null)); + code.put(address, new PathBasedValue<>(oldValue, newValue, newValue == null)); return this; } @@ -121,22 +121,22 @@ public class TrieLogLayer implements TrieLog { checkState(!frozen, "Layer is Frozen"); storage .computeIfAbsent(address, a -> new TreeMap<>()) - .put(slot, new DiffBasedValue<>(oldValue, newValue)); + .put(slot, new PathBasedValue<>(oldValue, newValue)); return this; } @Override - public Map> getAccountChanges() { + public Map> getAccountChanges() { return accounts; } @Override - public Map> getCodeChanges() { + public Map> getCodeChanges() { return code; } @Override - public Map>> getStorageChanges() { + public Map>> getStorageChanges() { return storage; } @@ -145,18 +145,18 @@ public class TrieLogLayer implements TrieLog { } @Override - public Map> getStorageChanges(final Address address) { + public Map> getStorageChanges(final Address address) { return storage.getOrDefault(address, Map.of()); } @Override public Optional getPriorCode(final Address address) { - return Optional.ofNullable(code.get(address)).map(DiffBasedValue::getPrior); + return Optional.ofNullable(code.get(address)).map(PathBasedValue::getPrior); } @Override public Optional getCode(final Address address) { - return Optional.ofNullable(code.get(address)).map(DiffBasedValue::getUpdated); + return Optional.ofNullable(code.get(address)).map(PathBasedValue::getUpdated); } @Override @@ -164,7 +164,7 @@ public class TrieLogLayer implements TrieLog { final Address address, final StorageSlotKey storageSlotKey) { return Optional.ofNullable(storage.get(address)) .map(i -> i.get(storageSlotKey)) - .map(DiffBasedValue::getPrior); + .map(PathBasedValue::getPrior); } @Override @@ -172,24 +172,24 @@ public class TrieLogLayer implements TrieLog { final Address address, final StorageSlotKey storageSlotKey) { return Optional.ofNullable(storage.get(address)) .map(i -> i.get(storageSlotKey)) - .map(DiffBasedValue::getUpdated); + .map(PathBasedValue::getUpdated); } @Override public Optional getPriorAccount(final Address address) { - return Optional.ofNullable(accounts.get(address)).map(DiffBasedValue::getPrior); + return Optional.ofNullable(accounts.get(address)).map(PathBasedValue::getPrior); } @Override public Optional getAccount(final Address address) { - return Optional.ofNullable(accounts.get(address)).map(DiffBasedValue::getUpdated); + return Optional.ofNullable(accounts.get(address)).map(PathBasedValue::getUpdated); } public String dump() { final StringBuilder sb = new StringBuilder(); sb.append("TrieLog{" + "blockHash=").append(blockHash).append(frozen).append('}'); sb.append("accounts\n"); - for (final Map.Entry> account : accounts.entrySet()) { + for (final Map.Entry> account : accounts.entrySet()) { sb.append(" : ").append(account.getKey()).append("\n"); if (Objects.equals(account.getValue().getPrior(), account.getValue().getUpdated())) { sb.append(" = ").append(account.getValue().getUpdated()).append("\n"); @@ -199,7 +199,7 @@ public class TrieLogLayer implements TrieLog { } } sb.append("code").append("\n"); - for (final Map.Entry> code : code.entrySet()) { + for (final Map.Entry> code : code.entrySet()) { sb.append(" : ").append(code.getKey()).append("\n"); if (Objects.equals(code.getValue().getPrior(), code.getValue().getUpdated())) { sb.append(" = ").append(code.getValue().getPrior()).append("\n"); @@ -209,10 +209,10 @@ public class TrieLogLayer implements TrieLog { } } sb.append("Storage").append("\n"); - for (final Map.Entry>> storage : + for (final Map.Entry>> storage : storage.entrySet()) { sb.append(" : ").append(storage.getKey()).append("\n"); - for (final Map.Entry> slot : + for (final Map.Entry> slot : storage.getValue().entrySet()) { final UInt256 originalValue = slot.getValue().getPrior(); final UInt256 updatedValue = slot.getValue().getUpdated(); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogManager.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogManager.java similarity index 89% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogManager.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogManager.java index 903a4a5f3..3e8b8e959 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogManager.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogManager.java @@ -12,15 +12,15 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog.TrieLogFactoryImpl; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog.TrieLogFactoryImpl; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.plugin.ServiceManager; import org.hyperledger.besu.plugin.services.TrieLogService; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; @@ -42,7 +42,7 @@ public class TrieLogManager { private static final Logger LOG = LoggerFactory.getLogger(TrieLogManager.class); public static final long LOG_RANGE_LIMIT = 1000; // restrict trielog range queries to 1k logs protected final Blockchain blockchain; - protected final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage; + protected final PathBasedWorldStateKeyValueStorage rootWorldStateStorage; protected final long maxLayersToLoad; protected final Subscribers trieLogObservers = Subscribers.create(); @@ -51,7 +51,7 @@ public class TrieLogManager { public TrieLogManager( final Blockchain blockchain, - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, final long maxLayersToLoad, final ServiceManager pluginContext) { this.blockchain = blockchain; @@ -61,15 +61,15 @@ public class TrieLogManager { } public synchronized void saveTrieLog( - final DiffBasedWorldStateUpdateAccumulator localUpdater, + final PathBasedWorldStateUpdateAccumulator localUpdater, final Hash forWorldStateRootHash, final BlockHeader forBlockHeader, - final DiffBasedWorldState forWorldState) { + final PathBasedWorldState forWorldState) { // do not overwrite a trielog layer that already exists in the database. // if it's only in memory we need to save it // for example, in case of reorg we don't replace a trielog layer if (rootWorldStateStorage.getTrieLog(forBlockHeader.getHash()).isEmpty()) { - final DiffBasedWorldStateKeyValueStorage.Updater stateUpdater = + final PathBasedWorldStateKeyValueStorage.Updater stateUpdater = forWorldState.getWorldStateStorage().updater(); boolean success = false; try { @@ -91,7 +91,7 @@ public class TrieLogManager { } private TrieLog prepareTrieLog( - final BlockHeader blockHeader, final DiffBasedWorldStateUpdateAccumulator localUpdater) { + final BlockHeader blockHeader, final PathBasedWorldStateUpdateAccumulator localUpdater) { LOG.atDebug() .setMessage("Adding layered world state for {}") .addArgument(blockHeader::toLogString) @@ -105,7 +105,7 @@ public class TrieLogManager { final BlockHeader blockHeader, final Hash worldStateRootHash, final TrieLog trieLog, - final DiffBasedWorldStateKeyValueStorage.Updater stateUpdater) { + final PathBasedWorldStateKeyValueStorage.Updater stateUpdater) { LOG.atDebug() .setMessage("Persisting trie log for block hash {} and world state root {}") .addArgument(blockHeader::toLogString) @@ -175,7 +175,7 @@ public class TrieLogManager { @Override public void saveRawTrieLogLayer( final Hash blockHash, final long blockNumber, final Bytes trieLog) { - final DiffBasedWorldStateKeyValueStorage.Updater updater = rootWorldStateStorage.updater(); + final PathBasedWorldStateKeyValueStorage.Updater updater = rootWorldStateStorage.updater(); updater .getTrieLogStorageTransaction() .put(blockHash.toArrayUnsafe(), trieLog.toArrayUnsafe()); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogPruner.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogPruner.java similarity index 97% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogPruner.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogPruner.java index 02ff553fe..96d01cfb9 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogPruner.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogPruner.java @@ -12,13 +12,13 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.ProcessableBlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; import org.hyperledger.besu.metrics.BesuMetricCategory; import org.hyperledger.besu.plugin.services.MetricsSystem; import org.hyperledger.besu.plugin.services.metrics.Counter; @@ -51,7 +51,7 @@ public class TrieLogPruner implements TrieLogEvent.TrieLogObserver { private final int pruningLimit; private final int loadingLimit; - private final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage; + private final PathBasedWorldStateKeyValueStorage rootWorldStateStorage; private final Blockchain blockchain; private final Consumer executeAsync; private final long numBlocksToRetain; @@ -64,7 +64,7 @@ public class TrieLogPruner implements TrieLogEvent.TrieLogObserver { TreeMultimap.create(Comparator.reverseOrder(), Comparator.naturalOrder()); public TrieLogPruner( - final DiffBasedWorldStateKeyValueStorage rootWorldStateStorage, + final PathBasedWorldStateKeyValueStorage rootWorldStateStorage, final Blockchain blockchain, final Consumer executeAsync, final long numBlocksToRetain, diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/DiffBasedWorldState.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/PathBasedWorldState.java similarity index 84% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/DiffBasedWorldState.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/PathBasedWorldState.java index 766e48d25..7d7a3d6a7 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/DiffBasedWorldState.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/PathBasedWorldState.java @@ -12,24 +12,24 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage.WORLD_BLOCK_HASH_KEY; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage.WORLD_BLOCK_HASH_KEY; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.MutableWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.StorageSubscriber; -import org.hyperledger.besu.ethereum.trie.diffbased.common.cache.DiffBasedCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedLayeredWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedSnapshotWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.StorageSubscriber; +import org.hyperledger.besu.ethereum.trie.pathbased.common.cache.PathBasedCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedLayeredWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedSnapshotWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.evm.account.Account; import org.hyperledger.besu.evm.worldstate.WorldUpdater; @@ -48,15 +48,15 @@ import org.apache.tuweni.units.bigints.UInt256; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class DiffBasedWorldState - implements MutableWorldState, DiffBasedWorldView, StorageSubscriber { +public abstract class PathBasedWorldState + implements MutableWorldState, PathBasedWorldView, StorageSubscriber { - private static final Logger LOG = LoggerFactory.getLogger(DiffBasedWorldState.class); + private static final Logger LOG = LoggerFactory.getLogger(PathBasedWorldState.class); - protected DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage; - protected final DiffBasedCachedWorldStorageManager cachedWorldStorageManager; + protected PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage; + protected final PathBasedCachedWorldStorageManager cachedWorldStorageManager; protected final TrieLogManager trieLogManager; - protected DiffBasedWorldStateUpdateAccumulator accumulator; + protected PathBasedWorldStateUpdateAccumulator accumulator; protected Hash worldStateRootHash; protected Hash worldStateBlockHash; @@ -74,9 +74,9 @@ public abstract class DiffBasedWorldState */ protected boolean isStorageFrozen; - protected DiffBasedWorldState( - final DiffBasedWorldStateKeyValueStorage worldStateKeyValueStorage, - final DiffBasedCachedWorldStorageManager cachedWorldStorageManager, + protected PathBasedWorldState( + final PathBasedWorldStateKeyValueStorage worldStateKeyValueStorage, + final PathBasedCachedWorldStorageManager cachedWorldStorageManager, final TrieLogManager trieLogManager, final WorldStateConfig worldStateConfig) { this.worldStateKeyValueStorage = worldStateKeyValueStorage; @@ -99,7 +99,7 @@ public abstract class DiffBasedWorldState * * @param accumulator accumulator to use. */ - public void setAccumulator(final DiffBasedWorldStateUpdateAccumulator accumulator) { + public void setAccumulator(final PathBasedWorldStateUpdateAccumulator accumulator) { this.accumulator = accumulator; } @@ -136,7 +136,7 @@ public abstract class DiffBasedWorldState private boolean isModifyingHeadWorldState( final WorldStateKeyValueStorage worldStateKeyValueStorage) { - return !(worldStateKeyValueStorage instanceof DiffBasedSnapshotWorldStateKeyValueStorage); + return !(worldStateKeyValueStorage instanceof PathBasedSnapshotWorldStateKeyValueStorage); } /** @@ -150,17 +150,17 @@ public abstract class DiffBasedWorldState } @Override - public DiffBasedWorldStateKeyValueStorage getWorldStateStorage() { + public PathBasedWorldStateKeyValueStorage getWorldStateStorage() { return worldStateKeyValueStorage; } - public DiffBasedWorldStateUpdateAccumulator getAccumulator() { + public PathBasedWorldStateUpdateAccumulator getAccumulator() { return accumulator; } protected Hash unsafeRootHashUpdate( final BlockHeader blockHeader, - final DiffBasedWorldStateKeyValueStorage.Updater stateUpdater) { + final PathBasedWorldStateKeyValueStorage.Updater stateUpdater) { // calling calculateRootHash in order to update the state calculateRootHash(isStorageFrozen ? Optional.empty() : Optional.of(stateUpdater), accumulator); return blockHeader.getStateRoot(); @@ -174,11 +174,11 @@ public abstract class DiffBasedWorldState .addArgument(maybeBlockHeader) .log(); - final DiffBasedWorldStateUpdateAccumulator localCopy = accumulator.copy(); + final PathBasedWorldStateUpdateAccumulator localCopy = accumulator.copy(); boolean success = false; - final DiffBasedWorldStateKeyValueStorage.Updater stateUpdater = + final PathBasedWorldStateKeyValueStorage.Updater stateUpdater = worldStateKeyValueStorage.updater(); Runnable saveTrieLog = () -> {}; @@ -340,8 +340,8 @@ public abstract class DiffBasedWorldState private void closeFrozenStorage() { try { - final DiffBasedLayeredWorldStateKeyValueStorage worldStateLayerStorage = - (DiffBasedLayeredWorldStateKeyValueStorage) worldStateKeyValueStorage; + final PathBasedLayeredWorldStateKeyValueStorage worldStateLayerStorage = + (PathBasedLayeredWorldStateKeyValueStorage) worldStateKeyValueStorage; if (!isModifyingHeadWorldState(worldStateLayerStorage.getParentWorldStateStorage())) { worldStateLayerStorage.getParentWorldStateStorage().close(); } @@ -383,8 +383,8 @@ public abstract class DiffBasedWorldState public abstract Optional getCode(@Nonnull final Address address, final Hash codeHash); protected abstract Hash calculateRootHash( - final Optional maybeStateUpdater, - final DiffBasedWorldStateUpdateAccumulator worldStateUpdater); + final Optional maybeStateUpdater, + final PathBasedWorldStateUpdateAccumulator worldStateUpdater); protected abstract Hash getEmptyTrieHash(); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/DiffBasedWorldView.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/PathBasedWorldView.java similarity index 88% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/DiffBasedWorldView.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/PathBasedWorldView.java index 8f3e28072..308ef2f66 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/DiffBasedWorldView.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/PathBasedWorldView.java @@ -12,13 +12,13 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; import org.hyperledger.besu.evm.worldstate.WorldUpdater; import org.hyperledger.besu.evm.worldstate.WorldView; @@ -29,7 +29,7 @@ import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.units.bigints.UInt256; -public interface DiffBasedWorldView extends WorldView { +public interface PathBasedWorldView extends WorldView { Optional getCode(Address address, final Hash codeHash); @@ -57,7 +57,7 @@ public interface DiffBasedWorldView extends WorldView { boolean isModifyingHeadWorldState(); - DiffBasedWorldStateKeyValueStorage getWorldStateStorage(); + PathBasedWorldStateKeyValueStorage getWorldStateStorage(); WorldUpdater updater(); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/WorldStateConfig.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/WorldStateConfig.java similarity index 97% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/WorldStateConfig.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/WorldStateConfig.java index 08a0c868d..00c06f79e 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/WorldStateConfig.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/WorldStateConfig.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview; /** WorldStateConfig encapsulates the shared configuration parameters for the world state. */ public class WorldStateConfig { diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/DiffBasedWorldStateUpdateAccumulator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/PathBasedWorldStateUpdateAccumulator.java similarity index 79% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/DiffBasedWorldStateUpdateAccumulator.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/PathBasedWorldStateUpdateAccumulator.java index be0ff86a7..8c3133731 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/DiffBasedWorldStateUpdateAccumulator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/PathBasedWorldStateUpdateAccumulator.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator; import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; @@ -21,14 +21,14 @@ import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.AccountConsumingMap; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.Consumer; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.StorageConsumingMap; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.AccountConsumingMap; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.Consumer; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.StorageConsumingMap; import org.hyperledger.besu.evm.account.Account; import org.hyperledger.besu.evm.account.MutableAccount; import org.hyperledger.besu.evm.internal.EvmConfiguration; @@ -55,31 +55,31 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings("unchecked") -public abstract class DiffBasedWorldStateUpdateAccumulator - extends AbstractWorldUpdater - implements DiffBasedWorldView, TrieLogAccumulator { +public abstract class PathBasedWorldStateUpdateAccumulator + extends AbstractWorldUpdater + implements PathBasedWorldView, TrieLogAccumulator { private static final Logger LOG = - LoggerFactory.getLogger(DiffBasedWorldStateUpdateAccumulator.class); - protected final Consumer> accountPreloader; + LoggerFactory.getLogger(PathBasedWorldStateUpdateAccumulator.class); + protected final Consumer> accountPreloader; protected final Consumer storagePreloader; - private final AccountConsumingMap> accountsToUpdate; - private final Map> codeToUpdate = new ConcurrentHashMap<>(); + private final AccountConsumingMap> accountsToUpdate; + private final Map> codeToUpdate = new ConcurrentHashMap<>(); private final Set
storageToClear = Collections.synchronizedSet(new HashSet<>()); protected final EvmConfiguration evmConfiguration; // storage sub mapped by _hashed_ key. This is because in self_destruct calls we need to // enumerate the old storage and delete it. Those are trie stored by hashed key by spec and the // alternative was to keep a giant pre-image cache of the entire trie. - private final Map>> + private final Map>> storageToUpdate = new ConcurrentHashMap<>(); private final Map storageKeyHashLookup = new ConcurrentHashMap<>(); protected boolean isAccumulatorStateChanged; - public DiffBasedWorldStateUpdateAccumulator( - final DiffBasedWorldView world, - final Consumer> accountPreloader, + public PathBasedWorldStateUpdateAccumulator( + final PathBasedWorldView world, + final Consumer> accountPreloader, final Consumer storagePreloader, final EvmConfiguration evmConfiguration) { super(world, evmConfiguration); @@ -90,7 +90,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator source) { + public void cloneFromUpdater(final PathBasedWorldStateUpdateAccumulator source) { accountsToUpdate.putAll(source.getAccountsToUpdate()); codeToUpdate.putAll(source.codeToUpdate); storageToClear.addAll(source.storageToClear); @@ -111,52 +111,52 @@ public abstract class DiffBasedWorldStateUpdateAccumulator source) { + final PathBasedWorldStateUpdateAccumulator source) { source .getAccountsToUpdate() .forEach( - (address, diffBasedValue) -> { + (address, pathBasedValue) -> { ACCOUNT copyPrior = - diffBasedValue.getPrior() != null - ? copyAccount(diffBasedValue.getPrior(), this, false) + pathBasedValue.getPrior() != null + ? copyAccount(pathBasedValue.getPrior(), this, false) : null; ACCOUNT copyUpdated = - diffBasedValue.getUpdated() != null - ? copyAccount(diffBasedValue.getUpdated(), this, true) + pathBasedValue.getUpdated() != null + ? copyAccount(pathBasedValue.getUpdated(), this, true) : null; accountsToUpdate.put( address, - new DiffBasedValue<>(copyPrior, copyUpdated, diffBasedValue.isLastStepCleared())); + new PathBasedValue<>(copyPrior, copyUpdated, pathBasedValue.isLastStepCleared())); }); source .getCodeToUpdate() .forEach( - (address, diffBasedValue) -> { + (address, pathBasedValue) -> { codeToUpdate.put( address, - new DiffBasedValue<>( - diffBasedValue.getPrior(), - diffBasedValue.getUpdated(), - diffBasedValue.isLastStepCleared())); + new PathBasedValue<>( + pathBasedValue.getPrior(), + pathBasedValue.getUpdated(), + pathBasedValue.isLastStepCleared())); }); source .getStorageToUpdate() .forEach( (address, slots) -> { - StorageConsumingMap> storageConsumingMap = + StorageConsumingMap> storageConsumingMap = storageToUpdate.computeIfAbsent( address, k -> new StorageConsumingMap<>( address, new ConcurrentHashMap<>(), storagePreloader)); slots.forEach( - (storageSlotKey, uInt256DiffBasedValue) -> { + (storageSlotKey, uInt256PathBasedValue) -> { storageConsumingMap.put( storageSlotKey, - new DiffBasedValue<>( - uInt256DiffBasedValue.getPrior(), - uInt256DiffBasedValue.getUpdated(), - uInt256DiffBasedValue.isLastStepCleared())); + new PathBasedValue<>( + uInt256PathBasedValue.getPrior(), + uInt256PathBasedValue.getUpdated(), + uInt256PathBasedValue.isLastStepCleared())); }); }); storageToClear.addAll(source.storageToClear); @@ -177,53 +177,53 @@ public abstract class DiffBasedWorldStateUpdateAccumulator source) { + final PathBasedWorldStateUpdateAccumulator source) { source .getAccountsToUpdate() .forEach( - (address, diffBasedValue) -> { + (address, pathBasedValue) -> { ACCOUNT copyPrior = - diffBasedValue.getPrior() != null - ? copyAccount(diffBasedValue.getPrior(), this, false) + pathBasedValue.getPrior() != null + ? copyAccount(pathBasedValue.getPrior(), this, false) : null; ACCOUNT copyUpdated = - diffBasedValue.getPrior() != null - ? copyAccount(diffBasedValue.getPrior(), this, true) + pathBasedValue.getPrior() != null + ? copyAccount(pathBasedValue.getPrior(), this, true) : null; - accountsToUpdate.putIfAbsent(address, new DiffBasedValue<>(copyPrior, copyUpdated)); + accountsToUpdate.putIfAbsent(address, new PathBasedValue<>(copyPrior, copyUpdated)); }); source .getCodeToUpdate() .forEach( - (address, diffBasedValue) -> { + (address, pathBasedValue) -> { codeToUpdate.putIfAbsent( address, - new DiffBasedValue<>(diffBasedValue.getPrior(), diffBasedValue.getPrior())); + new PathBasedValue<>(pathBasedValue.getPrior(), pathBasedValue.getPrior())); }); source .getStorageToUpdate() .forEach( (address, slots) -> { - StorageConsumingMap> storageConsumingMap = + StorageConsumingMap> storageConsumingMap = storageToUpdate.computeIfAbsent( address, k -> new StorageConsumingMap<>( address, new ConcurrentHashMap<>(), storagePreloader)); slots.forEach( - (storageSlotKey, uInt256DiffBasedValue) -> { + (storageSlotKey, uInt256PathBasedValue) -> { storageConsumingMap.putIfAbsent( storageSlotKey, - new DiffBasedValue<>( - uInt256DiffBasedValue.getPrior(), uInt256DiffBasedValue.getPrior())); + new PathBasedValue<>( + uInt256PathBasedValue.getPrior(), uInt256PathBasedValue.getPrior())); }); }); storageKeyHashLookup.putAll(source.storageKeyHashLookup); this.isAccumulatorStateChanged = true; } - protected Consumer> getAccountPreloader() { + protected Consumer> getAccountPreloader() { return accountPreloader; } @@ -252,14 +252,14 @@ public abstract class DiffBasedWorldStateUpdateAccumulator diffBasedValue = accountsToUpdate.get(address); + PathBasedValue pathBasedValue = accountsToUpdate.get(address); - if (diffBasedValue == null) { - diffBasedValue = new DiffBasedValue<>(null, null); - accountsToUpdate.put(address, diffBasedValue); - } else if (diffBasedValue.getUpdated() != null) { - if (diffBasedValue.getUpdated().isEmpty()) { - return track(new UpdateTrackingAccount<>(diffBasedValue.getUpdated())); + if (pathBasedValue == null) { + pathBasedValue = new PathBasedValue<>(null, null); + accountsToUpdate.put(address, pathBasedValue); + } else if (pathBasedValue.getUpdated() != null) { + if (pathBasedValue.getUpdated().isEmpty()) { + return track(new UpdateTrackingAccount<>(pathBasedValue.getUpdated())); } else { throw new IllegalStateException("Cannot create an account when one already exists"); } @@ -275,17 +275,17 @@ public abstract class DiffBasedWorldStateUpdateAccumulator(newAccount)); } @Override - public Map> getAccountsToUpdate() { + public Map> getAccountsToUpdate() { return accountsToUpdate; } @Override - public Map> getCodeToUpdate() { + public Map> getCodeToUpdate() { return codeToUpdate; } @@ -294,41 +294,41 @@ public abstract class DiffBasedWorldStateUpdateAccumulator>> + public Map>> getStorageToUpdate() { return storageToUpdate; } @Override protected ACCOUNT getForMutation(final Address address) { - return loadAccount(address, DiffBasedValue::getUpdated); + return loadAccount(address, PathBasedValue::getUpdated); } protected ACCOUNT loadAccount( - final Address address, final Function, ACCOUNT> accountFunction) { + final Address address, final Function, ACCOUNT> accountFunction) { try { - final DiffBasedValue diffBasedValue = accountsToUpdate.get(address); - if (diffBasedValue == null) { + final PathBasedValue pathBasedValue = accountsToUpdate.get(address); + if (pathBasedValue == null) { final Account account; - if (wrappedWorldView() instanceof DiffBasedWorldStateUpdateAccumulator) { - final DiffBasedWorldStateUpdateAccumulator worldStateUpdateAccumulator = - (DiffBasedWorldStateUpdateAccumulator) wrappedWorldView(); + if (wrappedWorldView() instanceof PathBasedWorldStateUpdateAccumulator) { + final PathBasedWorldStateUpdateAccumulator worldStateUpdateAccumulator = + (PathBasedWorldStateUpdateAccumulator) wrappedWorldView(); account = worldStateUpdateAccumulator.loadAccount(address, accountFunction); } else { account = wrappedWorldView().get(address); } - if (account instanceof DiffBasedAccount diffBasedAccount) { - ACCOUNT mutableAccount = copyAccount((ACCOUNT) diffBasedAccount, this, true); + if (account instanceof PathBasedAccount pathBasedAccount) { + ACCOUNT mutableAccount = copyAccount((ACCOUNT) pathBasedAccount, this, true); accountsToUpdate.put( - address, new DiffBasedValue<>((ACCOUNT) diffBasedAccount, mutableAccount)); + address, new PathBasedValue<>((ACCOUNT) pathBasedAccount, mutableAccount)); return mutableAccount; } else { // add the empty read in accountsToUpdate - accountsToUpdate.put(address, new DiffBasedValue<>(null, null)); + accountsToUpdate.put(address, new PathBasedValue<>(null, null)); return null; } } else { - return accountFunction.apply(diffBasedValue); + return accountFunction.apply(pathBasedValue); } } catch (MerkleTrieException e) { // need to throw to trigger the heal @@ -352,12 +352,12 @@ public abstract class DiffBasedWorldStateUpdateAccumulator accountValue = + final PathBasedValue accountValue = accountsToUpdate.computeIfAbsent( deletedAddress, - __ -> loadAccountFromParent(deletedAddress, new DiffBasedValue<>(null, null, true))); + __ -> loadAccountFromParent(deletedAddress, new PathBasedValue<>(null, null, true))); storageToClear.add(deletedAddress); - final DiffBasedValue codeValue = codeToUpdate.get(deletedAddress); + final PathBasedValue codeValue = codeToUpdate.get(deletedAddress); if (codeValue != null) { codeValue.setUpdated(null).setCleared(); } else { @@ -365,27 +365,27 @@ public abstract class DiffBasedWorldStateUpdateAccumulator codeToUpdate.put( - deletedAddress, new DiffBasedValue<>(deletedCode, null, true))); + deletedAddress, new PathBasedValue<>(deletedCode, null, true))); } // mark all updated storage as to be cleared - final Map> deletedStorageUpdates = + final Map> deletedStorageUpdates = storageToUpdate.computeIfAbsent( deletedAddress, k -> new StorageConsumingMap<>( deletedAddress, new ConcurrentHashMap<>(), storagePreloader)); - final Iterator>> iter = + final Iterator>> iter = deletedStorageUpdates.entrySet().iterator(); while (iter.hasNext()) { - final Map.Entry> updateEntry = iter.next(); - final DiffBasedValue updatedSlot = updateEntry.getValue(); + final Map.Entry> updateEntry = iter.next(); + final PathBasedValue updatedSlot = updateEntry.getValue(); if (updatedSlot.getPrior() == null || updatedSlot.getPrior().isZero()) { iter.remove(); } else { @@ -405,7 +405,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator(value, null, true)); + storageSlotKey, new PathBasedValue<>(value, null, true)); } }); } @@ -420,9 +420,9 @@ public abstract class DiffBasedWorldStateUpdateAccumulator { final Address updatedAddress = tracked.getAddress(); final ACCOUNT updatedAccount; - final DiffBasedValue updatedAccountValue = + final PathBasedValue updatedAccountValue = accountsToUpdate.get(updatedAddress); - final Map> pendingStorageUpdates = + final Map> pendingStorageUpdates = storageToUpdate.computeIfAbsent( updatedAddress, k -> @@ -433,9 +433,9 @@ public abstract class DiffBasedWorldStateUpdateAccumulator(null, updatedAccount)); + accountsToUpdate.put(updatedAddress, new PathBasedValue<>(null, updatedAccount)); codeToUpdate.put( - updatedAddress, new DiffBasedValue<>(null, updatedAccount.getCode())); + updatedAddress, new PathBasedValue<>(null, updatedAccount.getCode())); } else { updatedAccountValue.setUpdated(updatedAccount); } @@ -453,17 +453,17 @@ public abstract class DiffBasedWorldStateUpdateAccumulator pendingCode = + final PathBasedValue pendingCode = codeToUpdate.computeIfAbsent( updatedAddress, addr -> - new DiffBasedValue<>( + new PathBasedValue<>( wrappedWorldView() .getCode( addr, Optional.ofNullable(updatedAccountValue) - .map(DiffBasedValue::getPrior) - .map(DiffBasedAccount::getCodeHash) + .map(PathBasedValue::getPrior) + .map(PathBasedAccount::getCodeHash) .orElse(Hash.EMPTY)) .orElse(null), null)); @@ -486,12 +486,12 @@ public abstract class DiffBasedWorldStateUpdateAccumulator pendingValue = + final PathBasedValue pendingValue = pendingStorageUpdates.get(slotKey); if (pendingValue == null) { pendingStorageUpdates.put( slotKey, - new DiffBasedValue<>( + new PathBasedValue<>( updatedAccount.getOriginalStorageValue(keyUInt), value)); } else { pendingValue.setUpdated(value); @@ -512,7 +512,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator getCode(final Address address, final Hash codeHash) { - final DiffBasedValue localCode = codeToUpdate.get(address); + final PathBasedValue localCode = codeToUpdate.get(address); if (localCode == null) { final Optional code = wrappedWorldView().getCode(address, codeHash); if (code.isEmpty() && !codeHash.equals(Hash.EMPTY)) { @@ -535,17 +535,17 @@ public abstract class DiffBasedWorldStateUpdateAccumulator getStorageValueByStorageSlotKey( final Address address, final StorageSlotKey storageSlotKey) { - final Map> localAccountStorage = + final Map> localAccountStorage = storageToUpdate.get(address); if (localAccountStorage != null) { - final DiffBasedValue value = localAccountStorage.get(storageSlotKey); + final PathBasedValue value = localAccountStorage.get(storageSlotKey); if (value != null) { return Optional.ofNullable(value.getUpdated()); } } try { final Optional valueUInt = - (wrappedWorldView() instanceof DiffBasedWorldState worldState) + (wrappedWorldView() instanceof PathBasedWorldState worldState) ? worldState.getStorageValueByStorageSlotKey(address, storageSlotKey) : wrappedWorldView().getStorageValueByStorageSlotKey(address, storageSlotKey); storageToUpdate @@ -554,7 +554,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator new StorageConsumingMap<>(address, new ConcurrentHashMap<>(), storagePreloader)) .put( - storageSlotKey, new DiffBasedValue<>(valueUInt.orElse(null), valueUInt.orElse(null))); + storageSlotKey, new PathBasedValue<>(valueUInt.orElse(null), valueUInt.orElse(null))); return valueUInt; } catch (MerkleTrieException e) { // need to throw to trigger the heal @@ -568,10 +568,10 @@ public abstract class DiffBasedWorldStateUpdateAccumulator> localAccountStorage = + final Map> localAccountStorage = storageToUpdate.get(address); if (localAccountStorage != null) { - final DiffBasedValue value = localAccountStorage.get(storageSlotKey); + final PathBasedValue value = localAccountStorage.get(storageSlotKey); if (value != null) { if (value.isLastStepCleared()) { return UInt256.ZERO; @@ -595,11 +595,11 @@ public abstract class DiffBasedWorldStateUpdateAccumulator getAllAccountStorage(final Address address, final Hash rootHash) { final Map results = wrappedWorldView().getAllAccountStorage(address, rootHash); - final StorageConsumingMap> diffBasedValueStorage = + final StorageConsumingMap> pathBasedValueStorage = storageToUpdate.get(address); - if (diffBasedValueStorage != null) { + if (pathBasedValueStorage != null) { // hash the key to match the implied storage interface of hashed slotKey - diffBasedValueStorage.forEach( + pathBasedValueStorage.forEach( (key, value) -> results.put(key.getSlotHash(), value.getUpdated())); } return results; @@ -626,7 +626,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator accountValue = accountsToUpdate.get(address); + PathBasedValue accountValue = accountsToUpdate.get(address); if (accountValue == null) { accountValue = loadAccountFromParent(address, accountValue); } @@ -686,7 +686,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator(null, createAccount(this, address, replacementValue, true))); + new PathBasedValue<>(null, createAccount(this, address, replacementValue, true))); } else { throw new IllegalStateException( String.format( @@ -719,13 +719,13 @@ public abstract class DiffBasedWorldStateUpdateAccumulator loadAccountFromParent( - final Address address, final DiffBasedValue defaultValue) { + private PathBasedValue loadAccountFromParent( + final Address address, final PathBasedValue defaultValue) { try { final Account parentAccount = wrappedWorldView().get(address); - if (parentAccount instanceof DiffBasedAccount account) { - final DiffBasedValue loadedAccountValue = - new DiffBasedValue<>(copyAccount((ACCOUNT) account), ((ACCOUNT) account)); + if (parentAccount instanceof PathBasedAccount account) { + final PathBasedValue loadedAccountValue = + new PathBasedValue<>(copyAccount((ACCOUNT) account), ((ACCOUNT) account)); accountsToUpdate.put(address, loadedAccountValue); return loadedAccountValue; } else { @@ -744,7 +744,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator codeValue = codeToUpdate.get(address); + PathBasedValue codeValue = codeToUpdate.get(address); if (codeValue == null) { final Bytes storedCode = wrappedWorldView() @@ -752,14 +752,14 @@ public abstract class DiffBasedWorldStateUpdateAccumulator(storedCode, storedCode); + codeValue = new PathBasedValue<>(storedCode, storedCode); codeToUpdate.put(address, codeValue); } } if (codeValue == null) { if ((expectedCode == null || expectedCode.isEmpty()) && replacementCode != null) { - codeToUpdate.put(address, new DiffBasedValue<>(null, replacementCode)); + codeToUpdate.put(address, new PathBasedValue<>(null, replacementCode)); } else { throw new IllegalStateException( String.format( @@ -787,10 +787,10 @@ public abstract class DiffBasedWorldStateUpdateAccumulator> maybeCreateStorageMap( - final Map> storageMap, final Address address) { + private Map> maybeCreateStorageMap( + final Map> storageMap, final Address address) { if (storageMap == null) { - final StorageConsumingMap> newMap = + final StorageConsumingMap> newMap = new StorageConsumingMap<>(address, new ConcurrentHashMap<>(), storagePreloader); storageToUpdate.put(address, newMap); return newMap; @@ -812,13 +812,13 @@ public abstract class DiffBasedWorldStateUpdateAccumulator> storageMap = storageToUpdate.get(address); - DiffBasedValue slotValue = storageMap == null ? null : storageMap.get(storageSlotKey); + final Map> storageMap = storageToUpdate.get(address); + PathBasedValue slotValue = storageMap == null ? null : storageMap.get(storageSlotKey); if (slotValue == null) { final Optional storageValue = wrappedWorldView().getStorageValueByStorageSlotKey(address, storageSlotKey); if (storageValue.isPresent()) { - slotValue = new DiffBasedValue<>(storageValue.get(), storageValue.get()); + slotValue = new PathBasedValue<>(storageValue.get(), storageValue.get()); storageToUpdate .computeIfAbsent( address, @@ -830,7 +830,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator(null, replacementValue)); + .put(storageSlotKey, new PathBasedValue<>(null, replacementValue)); } else { throw new IllegalStateException( String.format( @@ -857,7 +857,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator> thisStorageUpdate = + final Map> thisStorageUpdate = maybeCreateStorageMap(storageMap, address); thisStorageUpdate.remove(storageSlotKey); if (thisStorageUpdate.isEmpty()) { @@ -929,21 +929,21 @@ public abstract class DiffBasedWorldStateUpdateAccumulator copy(); + public abstract PathBasedWorldStateUpdateAccumulator copy(); protected abstract ACCOUNT copyAccount(final ACCOUNT account); protected abstract ACCOUNT copyAccount( - final ACCOUNT toCopy, final DiffBasedWorldView context, final boolean mutable); + final ACCOUNT toCopy, final PathBasedWorldView context, final boolean mutable); protected abstract ACCOUNT createAccount( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final AccountValue stateTrieAccount, final boolean mutable); protected abstract ACCOUNT createAccount( - final DiffBasedWorldView context, + final PathBasedWorldView context, final Address address, final Hash addressHash, final long nonce, @@ -953,7 +953,7 @@ public abstract class DiffBasedWorldStateUpdateAccumulator tracked); + final PathBasedWorldView context, final UpdateTrackingAccount tracked); protected abstract void assertCloseEnoughForDiffing( final ACCOUNT source, final AccountValue account, final String context); diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/AccountConsumingMap.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/AccountConsumingMap.java similarity index 95% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/AccountConsumingMap.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/AccountConsumingMap.java index 1a69b655b..ceb582bc7 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/AccountConsumingMap.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/AccountConsumingMap.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload; import org.hyperledger.besu.datatypes.Address; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/Consumer.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/Consumer.java similarity index 92% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/Consumer.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/Consumer.java index 073deb365..f99583cc5 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/Consumer.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/Consumer.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload; import org.hyperledger.besu.datatypes.Address; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/StorageConsumingMap.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/StorageConsumingMap.java similarity index 96% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/StorageConsumingMap.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/StorageConsumingMap.java index f48eab5c8..d766bf00a 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/common/worldview/accumulator/preload/StorageConsumingMap.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/pathbased/common/worldview/accumulator/preload/StorageConsumingMap.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload; +package org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload; import org.hyperledger.besu.datatypes.Address; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DataStorageConfiguration.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DataStorageConfiguration.java index 9ce059e94..4278a27fe 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DataStorageConfiguration.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DataStorageConfiguration.java @@ -14,7 +14,7 @@ */ package org.hyperledger.besu.ethereum.worldstate; -import org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DiffBasedUnstable; +import org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.PathBasedUnstable; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import org.immutables.value.Value; @@ -28,7 +28,7 @@ public interface DataStorageConfiguration { DataStorageConfiguration DEFAULT_CONFIG = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration(DiffBasedSubStorageConfiguration.DEFAULT) + .pathBasedExtraStorageConfiguration(PathBasedExtraStorageConfiguration.DEFAULT) .build(); DataStorageConfiguration DEFAULT_BONSAI_CONFIG = DEFAULT_CONFIG; @@ -36,23 +36,23 @@ public interface DataStorageConfiguration { DataStorageConfiguration DEFAULT_BONSAI_PARTIAL_DB_CONFIG = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() - .unstable(DiffBasedUnstable.PARTIAL_MODE) + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() + .unstable(PathBasedUnstable.PARTIAL_MODE) .build()) .build(); DataStorageConfiguration DEFAULT_FOREST_CONFIG = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.FOREST) - .diffBasedSubStorageConfiguration(DiffBasedSubStorageConfiguration.DISABLED) + .pathBasedExtraStorageConfiguration(PathBasedExtraStorageConfiguration.DISABLED) .build(); DataStorageFormat getDataStorageFormat(); @Value.Default - default DiffBasedSubStorageConfiguration getDiffBasedSubStorageConfiguration() { - return DiffBasedSubStorageConfiguration.DEFAULT; + default PathBasedExtraStorageConfiguration getPathBasedExtraStorageConfiguration() { + return PathBasedExtraStorageConfiguration.DEFAULT; } @Value.Default diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DiffBasedSubStorageConfiguration.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/PathBasedExtraStorageConfiguration.java similarity index 70% rename from ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DiffBasedSubStorageConfiguration.java rename to ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/PathBasedExtraStorageConfiguration.java index fc0f98e21..a69b66bc8 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DiffBasedSubStorageConfiguration.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/PathBasedExtraStorageConfiguration.java @@ -18,15 +18,15 @@ import org.immutables.value.Value; @Value.Immutable @Value.Enclosing -public interface DiffBasedSubStorageConfiguration { +public interface PathBasedExtraStorageConfiguration { - DiffBasedSubStorageConfiguration DEFAULT = - ImmutableDiffBasedSubStorageConfiguration.builder().build(); + PathBasedExtraStorageConfiguration DEFAULT = + ImmutablePathBasedExtraStorageConfiguration.builder().build(); - DiffBasedSubStorageConfiguration DISABLED = - ImmutableDiffBasedSubStorageConfiguration.builder() + PathBasedExtraStorageConfiguration DISABLED = + ImmutablePathBasedExtraStorageConfiguration.builder() .limitTrieLogsEnabled(false) - .unstable(DiffBasedUnstable.DISABLED) + .unstable(PathBasedUnstable.DISABLED) .build(); long DEFAULT_MAX_LAYERS_TO_LOAD = 512; @@ -50,23 +50,23 @@ public interface DiffBasedSubStorageConfiguration { } @Value.Default - default DiffBasedUnstable getUnstable() { - return DiffBasedUnstable.DEFAULT; + default PathBasedUnstable getUnstable() { + return PathBasedUnstable.DEFAULT; } @Value.Immutable - interface DiffBasedUnstable { + interface PathBasedUnstable { - DiffBasedSubStorageConfiguration.DiffBasedUnstable DEFAULT = - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder().build(); + PathBasedExtraStorageConfiguration.PathBasedUnstable DEFAULT = + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder().build(); - DiffBasedSubStorageConfiguration.DiffBasedUnstable PARTIAL_MODE = - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder() + PathBasedExtraStorageConfiguration.PathBasedUnstable PARTIAL_MODE = + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder() .fullFlatDbEnabled(false) .build(); - DiffBasedSubStorageConfiguration.DiffBasedUnstable DISABLED = - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder() + PathBasedExtraStorageConfiguration.PathBasedUnstable DISABLED = + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder() .fullFlatDbEnabled(false) .codeStoredByCodeHashEnabled(false) .isParallelTxProcessingEnabled(false) diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateArchive.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateArchive.java index ac0f11b01..cd86b85f3 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateArchive.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateArchive.java @@ -19,7 +19,7 @@ import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.MutableWorldState; import org.hyperledger.besu.ethereum.proof.WorldStateProof; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.evm.worldstate.WorldState; import java.io.Closeable; diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateStorageCoordinator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateStorageCoordinator.java index 710d5ea15..c26bd4c64 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateStorageCoordinator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/WorldStateStorageCoordinator.java @@ -15,8 +15,8 @@ package org.hyperledger.besu.ethereum.worldstate; import org.hyperledger.besu.datatypes.Hash; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import java.util.Optional; diff --git a/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/InMemoryKeyValueStorageProvider.java b/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/InMemoryKeyValueStorageProvider.java index aa32ee2b0..972e9e53d 100644 --- a/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/InMemoryKeyValueStorageProvider.java +++ b/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/InMemoryKeyValueStorageProvider.java @@ -27,12 +27,12 @@ import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKey import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.VariablesKeyValueStorage; import org.hyperledger.besu.ethereum.storage.keyvalue.WorldStatePreimageKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.ForestWorldStateArchive; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.worldview.ForestMutableWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.evm.internal.EvmConfiguration; diff --git a/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/TrieGenerator.java b/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/TrieGenerator.java index 3e416a287..9bfbc97b3 100644 --- a/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/TrieGenerator.java +++ b/ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/TrieGenerator.java @@ -21,7 +21,7 @@ import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/BlockImportExceptionHandlingTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/BlockImportExceptionHandlingTest.java index 9095b0783..3a178139a 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/BlockImportExceptionHandlingTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/BlockImportExceptionHandlingTest.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; @@ -44,9 +44,9 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSpec; import org.hyperledger.besu.ethereum.mainnet.blockhash.FrontierBlockHashProcessor; import org.hyperledger.besu.ethereum.mainnet.feemarket.FeeMarket; import org.hyperledger.besu.ethereum.storage.StorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/MainnetBlockValidatorTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/MainnetBlockValidatorTest.java index d3be0da7d..d989838dd 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/MainnetBlockValidatorTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/MainnetBlockValidatorTest.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -38,7 +38,7 @@ import org.hyperledger.besu.ethereum.mainnet.BlockProcessor; import org.hyperledger.besu.ethereum.mainnet.BodyValidationMode; import org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode; import org.hyperledger.besu.ethereum.trie.MerkleTrieException; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.plugin.services.exception.StorageException; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessorIntegrationTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessorIntegrationTest.java index 778979b4f..8c0020e7c 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessorIntegrationTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/AbstractBlockProcessorIntegrationTest.java @@ -37,7 +37,7 @@ import org.hyperledger.besu.ethereum.core.ExecutionContextTestFixture; import org.hyperledger.besu.ethereum.core.MutableWorldState; import org.hyperledger.besu.ethereum.core.Transaction; import org.hyperledger.besu.ethereum.mainnet.parallelization.MainnetParallelBlockProcessor; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessorTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessorTest.java index 3ec3d9273..ee4974a4a 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessorTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessorTest.java @@ -14,7 +14,7 @@ */ package org.hyperledger.besu.ethereum.mainnet.parallelization; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -38,12 +38,12 @@ import org.hyperledger.besu.ethereum.mainnet.ValidationResult; import org.hyperledger.besu.ethereum.privacy.storage.PrivateMetadataUpdater; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; import org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.NoOpBonsaiCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.NoopBonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.NoOpTrieLogManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.NoOpBonsaiCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.NoopBonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.NoOpTrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.evm.blockhash.BlockHashLookup; @@ -135,7 +135,7 @@ class ParallelizedConcurrentTransactionProcessorTest { verify(transactionProcessor, times(1)) .processTransaction( - any(DiffBasedWorldStateUpdateAccumulator.class), + any(PathBasedWorldStateUpdateAccumulator.class), eq(blockHeader), eq(transaction), eq(miningBeneficiary), @@ -210,7 +210,7 @@ class ParallelizedConcurrentTransactionProcessorTest { verify(transactionProcessor, times(1)) .processTransaction( - any(DiffBasedWorldStateUpdateAccumulator.class), + any(PathBasedWorldStateUpdateAccumulator.class), eq(blockHeader), eq(transaction), eq(miningBeneficiary), diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetectorTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetectorTest.java index 077dd8e36..9bcefcbf1 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetectorTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/parallelization/TransactionCollisionDetectorTest.java @@ -22,11 +22,11 @@ import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.ethereum.core.Transaction; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.StorageConsumingMap; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.StorageConsumingMap; import org.hyperledger.besu.evm.internal.EvmConfiguration; import java.math.BigInteger; @@ -94,14 +94,14 @@ class TransactionCollisionDetectorTest { // Simulate that the address was already modified in the block bonsaiUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, nextAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, nextAccountValue)); final Transaction transaction = createTransaction(address, address); // Simulate that the address is read in the next transaction trxUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); boolean hasCollision = collisionDetector.hasCollision( @@ -123,14 +123,14 @@ class TransactionCollisionDetectorTest { // Simulate that the address was already modified in the block bonsaiUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, nextAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, nextAccountValue)); final Transaction transaction = createTransaction(address, address); // Simulate that the address is read in the next transaction trxUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); boolean hasCollision = collisionDetector.hasCollision( @@ -152,14 +152,14 @@ class TransactionCollisionDetectorTest { // Simulate that the address was already modified in the block bonsaiUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, nextAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, nextAccountValue)); final Transaction transaction = createTransaction(address, address); // Simulate that the address is read in the next transaction trxUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); boolean hasCollision = collisionDetector.hasCollision( @@ -181,26 +181,26 @@ class TransactionCollisionDetectorTest { // Simulate that the address slot was already modified in the block bonsaiUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, nextAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, nextAccountValue)); bonsaiUpdater .getStorageToUpdate() .computeIfAbsent( address, __ -> new StorageConsumingMap<>(address, new ConcurrentHashMap<>(), (___, ____) -> {})) - .put(updateStorageSlotKey, new DiffBasedValue<>(UInt256.ONE, UInt256.ZERO)); + .put(updateStorageSlotKey, new PathBasedValue<>(UInt256.ONE, UInt256.ZERO)); final Transaction transaction = createTransaction(address, address); // Simulate that the address is read in the next transaction trxUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); trxUpdater .getStorageToUpdate() .computeIfAbsent( address, __ -> new StorageConsumingMap<>(address, new ConcurrentHashMap<>(), (___, ____) -> {})) - .put(updateStorageSlotKey, new DiffBasedValue<>(UInt256.ONE, UInt256.ONE)); + .put(updateStorageSlotKey, new PathBasedValue<>(UInt256.ONE, UInt256.ONE)); boolean hasCollision = collisionDetector.hasCollision( @@ -221,26 +221,26 @@ class TransactionCollisionDetectorTest { // Simulate that the address slot was already modified in the block bonsaiUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, nextAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, nextAccountValue)); bonsaiUpdater .getStorageToUpdate() .computeIfAbsent( address, __ -> new StorageConsumingMap<>(address, new ConcurrentHashMap<>(), (___, ____) -> {})) - .put(new StorageSlotKey(UInt256.ZERO), new DiffBasedValue<>(UInt256.ONE, UInt256.ZERO)); + .put(new StorageSlotKey(UInt256.ZERO), new PathBasedValue<>(UInt256.ONE, UInt256.ZERO)); final Transaction transaction = createTransaction(address, address); // Simulate that the address is read in the next transaction trxUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); trxUpdater .getStorageToUpdate() .computeIfAbsent( address, __ -> new StorageConsumingMap<>(address, new ConcurrentHashMap<>(), (___, ____) -> {})) - .put(new StorageSlotKey(UInt256.ONE), new DiffBasedValue<>(UInt256.ONE, UInt256.ONE)); + .put(new StorageSlotKey(UInt256.ONE), new PathBasedValue<>(UInt256.ONE, UInt256.ONE)); boolean hasCollision = collisionDetector.hasCollision( @@ -284,7 +284,7 @@ class TransactionCollisionDetectorTest { .getAccountsToUpdate() .put( miningBeneficiary, - new DiffBasedValue<>(miningBeneficiaryValue, miningBeneficiaryValue)); + new PathBasedValue<>(miningBeneficiaryValue, miningBeneficiaryValue)); boolean hasCollision = collisionDetector.hasCollision( @@ -302,12 +302,12 @@ class TransactionCollisionDetectorTest { final BonsaiAccount accountValue = createAccount(address); // Simulate that the address was deleted in the block - bonsaiUpdater.getAccountsToUpdate().put(address, new DiffBasedValue<>(accountValue, null)); + bonsaiUpdater.getAccountsToUpdate().put(address, new PathBasedValue<>(accountValue, null)); final Transaction transaction = createTransaction(address, address); // Simulate that the deleted address is read in the next transaction - trxUpdater.getAccountsToUpdate().put(address, new DiffBasedValue<>(accountValue, accountValue)); + trxUpdater.getAccountsToUpdate().put(address, new PathBasedValue<>(accountValue, accountValue)); boolean hasCollision = collisionDetector.hasCollision( @@ -327,14 +327,14 @@ class TransactionCollisionDetectorTest { // Simulate that the address was already read in the block bonsaiUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); final Transaction transaction = createTransaction(address, address); // Simulate that the address is read in the next transaction trxUpdater .getAccountsToUpdate() - .put(address, new DiffBasedValue<>(priorAccountValue, priorAccountValue)); + .put(address, new PathBasedValue<>(priorAccountValue, priorAccountValue)); boolean hasCollision = collisionDetector.hasCollision( diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java index 9a17c076e..4ccfc3bbe 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java @@ -21,7 +21,7 @@ import static org.hyperledger.besu.ethereum.core.PrivateTransactionDataFixture.p import static org.hyperledger.besu.ethereum.privacy.PrivateStateRootResolver.EMPTY_ROOT_HASH; import static org.hyperledger.besu.ethereum.privacy.storage.PrivateStateKeyValueStorage.SCHEMA_VERSION_1_0_0; import static org.hyperledger.besu.ethereum.privacy.storage.PrivateStateKeyValueStorage.SCHEMA_VERSION_1_4_0; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.lenient; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/BlockSimulatorTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/BlockSimulatorTest.java index d8b0be31f..ef9304a5e 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/BlockSimulatorTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/BlockSimulatorTest.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum.transaction; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -45,7 +45,7 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSpec; import org.hyperledger.besu.ethereum.mainnet.TransactionValidationParams; import org.hyperledger.besu.ethereum.mainnet.blockhash.BlockHashProcessor; import org.hyperledger.besu.ethereum.mainnet.feemarket.FeeMarket; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.ethereum.worldstate.WorldStateArchive; import org.hyperledger.besu.evm.account.MutableAccount; import org.hyperledger.besu.evm.worldstate.WorldUpdater; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulatorTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulatorTest.java index a07cc7e98..1b0c2a970 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulatorTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/transaction/TransactionSimulatorTest.java @@ -15,7 +15,7 @@ package org.hyperledger.besu.ethereum.transaction; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import static org.hyperledger.besu.evm.tracing.OperationTracer.NO_TRACING; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/AbstractIsolationTests.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/AbstractIsolationTests.java similarity index 98% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/AbstractIsolationTests.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/AbstractIsolationTests.java index 5f07e8de4..e166a4677 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/AbstractIsolationTests.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/AbstractIsolationTests.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider.createInMemoryBlockchain; import static org.hyperledger.besu.ethereum.core.WorldStateHealerHelper.throwingWorldStateHealerSupplier; @@ -67,8 +67,8 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.storage.StorageProvider; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProviderBuilder; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.evm.internal.EvmConfiguration; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiAccountTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiAccountTest.java similarity index 95% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiAccountTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiAccountTest.java index 53cf9e1ca..fc5746e16 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiAccountTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiAccountTest.java @@ -12,14 +12,14 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static org.assertj.core.api.Assertions.assertThat; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.Wei; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; import org.hyperledger.besu.evm.worldstate.UpdateTrackingAccount; import org.apache.tuweni.bytes.Bytes; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiCachedMerkleTrieLoaderTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiCachedMerkleTrieLoaderTest.java similarity index 97% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiCachedMerkleTrieLoaderTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiCachedMerkleTrieLoaderTest.java index 1552c341f..da36f51c1 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiCachedMerkleTrieLoaderTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiCachedMerkleTrieLoaderTest.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static org.assertj.core.api.Assertions.assertThat; @@ -26,8 +26,8 @@ import org.hyperledger.besu.ethereum.storage.StorageProvider; import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.TrieIterator; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiSnapshotIsolationTests.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiSnapshotIsolationTests.java similarity index 97% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiSnapshotIsolationTests.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiSnapshotIsolationTests.java index 781412354..e031ad782 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiSnapshotIsolationTests.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiSnapshotIsolationTests.java @@ -12,11 +12,11 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Wei; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiWorldStateProviderTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiWorldStateProviderTest.java similarity index 94% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiWorldStateProviderTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiWorldStateProviderTest.java index 8d983cae6..9d5e19b2c 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/BonsaiWorldStateProviderTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/BonsaiWorldStateProviderTest.java @@ -12,17 +12,17 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static org.assertj.core.api.Assertions.assertThat; import static org.hyperledger.besu.ethereum.core.WorldStateHealerHelper.throwingWorldStateHealerSupplier; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.BLOCKCHAIN; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage.WORLD_BLOCK_HASH_KEY; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withStateRootAndBlockHashAndUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage.WORLD_BLOCK_HASH_KEY; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.eq; @@ -39,13 +39,13 @@ import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.BlockHeaderTestFixture; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; import org.hyperledger.besu.ethereum.storage.StorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog.TrieLogFactoryImpl; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog.TrieLogFactoryImpl; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/LogRollingTests.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/LogRollingTests.java similarity index 97% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/LogRollingTests.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/LogRollingTests.java index 5b8a50cd5..a4e598451 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/LogRollingTests.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/LogRollingTests.java @@ -12,10 +12,10 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import static org.mockito.Mockito.mock; import org.hyperledger.besu.datatypes.Address; @@ -28,11 +28,11 @@ import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider; import org.hyperledger.besu.ethereum.mainnet.MainnetBlockHeaderFunctions; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPInput; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog.TrieLogFactoryImpl; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog.TrieLogFactoryImpl; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.account.MutableAccount; import org.hyperledger.besu.evm.internal.EvmConfiguration; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/RollingImport.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/RollingImport.java similarity index 92% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/RollingImport.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/RollingImport.java index 3cd0f2748..e7a9c24b6 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/RollingImport.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/RollingImport.java @@ -12,23 +12,23 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai; import static com.google.common.base.Preconditions.checkArgument; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_INFO_STATE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.ACCOUNT_STORAGE_STORAGE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.CODE_STORAGE; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPInput; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog.TrieLogFactoryImpl; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog.TrieLogFactoryImpl; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateKeyValueStorageTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateKeyValueStorageTest.java similarity index 97% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateKeyValueStorageTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateKeyValueStorageTest.java index 81e158bef..e1cf03a8f 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/storage/BonsaiWorldStateKeyValueStorageTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/storage/BonsaiWorldStateKeyValueStorageTest.java @@ -12,12 +12,12 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage; import static org.assertj.core.api.Assertions.assertThat; import static org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier.TRIE_BRANCH_STORAGE; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.storage.DiffBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; -import static org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.storage.PathBasedWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY; +import static org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; @@ -41,7 +41,7 @@ import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; @@ -473,11 +473,11 @@ public class BonsaiWorldStateKeyValueStorageTest { new NoOpMetricsSystem(), ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() .maxLayersToLoad(DEFAULT_MAX_LAYERS_TO_LOAD) .unstable( - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder() + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder() .codeStoredByCodeHashEnabled(useCodeHashStorage) .build()) .build()) diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogFactoryTests.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogFactoryTests.java similarity index 95% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogFactoryTests.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogFactoryTests.java index ae685f0d0..999a4ee3c 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogFactoryTests.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogFactoryTests.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @@ -24,7 +24,7 @@ import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.BlockHeaderTestFixture; import org.hyperledger.besu.ethereum.core.BlockchainSetupUtil; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogLayer; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogLayer; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import org.hyperledger.besu.plugin.services.trielogs.TrieLog; import org.hyperledger.besu.plugin.services.trielogs.TrieLogFactory; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogManagerTests.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogManagerTests.java similarity index 88% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogManagerTests.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogManagerTests.java index 129a10f1b..3df1e104d 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/trielog/TrieLogManagerTests.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/trielog/TrieLogManagerTests.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.trielog; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.spy; @@ -21,10 +21,10 @@ import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.BlockHeaderTestFixture; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; import org.hyperledger.besu.evm.internal.EvmConfiguration; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldStateTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldStateTest.java similarity index 83% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldStateTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldStateTest.java index f68b7e6d5..56301328f 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldStateTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/bonsai/worldview/BonsaiWorldStateTest.java @@ -12,9 +12,9 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview; +package org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; @@ -23,8 +23,8 @@ import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; import org.hyperledger.besu.evm.internal.EvmConfiguration; import java.util.HashMap; @@ -70,8 +70,8 @@ class BonsaiWorldStateTest { @MethodSource("priorAndUpdatedEmptyAndNullBytes") void codeUpdateDoesNothingWhenMarkedAsDeletedButAlreadyDeleted( final Bytes prior, final Bytes updated) { - final Map> codeToUpdate = - Map.of(Address.ZERO, new DiffBasedValue<>(prior, updated)); + final Map> codeToUpdate = + Map.of(Address.ZERO, new PathBasedValue<>(prior, updated)); when(bonsaiWorldStateUpdateAccumulator.getCodeToUpdate()).thenReturn(codeToUpdate); worldState.updateCode(Optional.of(bonsaiUpdater), bonsaiWorldStateUpdateAccumulator); @@ -80,8 +80,8 @@ class BonsaiWorldStateTest { @Test void codeUpdateDoesNothingWhenAddingSameAsExistingValue() { - final Map> codeToUpdate = - Map.of(Address.ZERO, new DiffBasedValue<>(CODE, CODE)); + final Map> codeToUpdate = + Map.of(Address.ZERO, new PathBasedValue<>(CODE, CODE)); when(bonsaiWorldStateUpdateAccumulator.getCodeToUpdate()).thenReturn(codeToUpdate); worldState.updateCode(Optional.of(bonsaiUpdater), bonsaiWorldStateUpdateAccumulator); @@ -91,8 +91,8 @@ class BonsaiWorldStateTest { @ParameterizedTest @MethodSource("emptyAndNullBytes") void removesCodeWhenMarkedAsDeleted(final Bytes updated) { - final Map> codeToUpdate = - Map.of(Address.ZERO, new DiffBasedValue<>(CODE, updated)); + final Map> codeToUpdate = + Map.of(Address.ZERO, new PathBasedValue<>(CODE, updated)); when(bonsaiWorldStateUpdateAccumulator.getCodeToUpdate()).thenReturn(codeToUpdate); worldState.updateCode(Optional.of(bonsaiUpdater), bonsaiWorldStateUpdateAccumulator); @@ -102,8 +102,8 @@ class BonsaiWorldStateTest { @ParameterizedTest @MethodSource("codeValueAndEmptyAndNullBytes") void addsCodeForNewCodeValue(final Bytes prior) { - final Map> codeToUpdate = - Map.of(ACCOUNT, new DiffBasedValue<>(prior, CODE)); + final Map> codeToUpdate = + Map.of(ACCOUNT, new PathBasedValue<>(prior, CODE)); when(bonsaiWorldStateUpdateAccumulator.getCodeToUpdate()).thenReturn(codeToUpdate); worldState.updateCode(Optional.of(bonsaiUpdater), bonsaiWorldStateUpdateAccumulator); @@ -113,10 +113,10 @@ class BonsaiWorldStateTest { @Test void updateCodeForMultipleValues() { - final Map> codeToUpdate = new HashMap<>(); - codeToUpdate.put(Address.fromHexString("0x1"), new DiffBasedValue<>(null, CODE)); - codeToUpdate.put(Address.fromHexString("0x2"), new DiffBasedValue<>(CODE, null)); - codeToUpdate.put(Address.fromHexString("0x3"), new DiffBasedValue<>(Bytes.of(9), CODE)); + final Map> codeToUpdate = new HashMap<>(); + codeToUpdate.put(Address.fromHexString("0x1"), new PathBasedValue<>(null, CODE)); + codeToUpdate.put(Address.fromHexString("0x2"), new PathBasedValue<>(CODE, null)); + codeToUpdate.put(Address.fromHexString("0x3"), new PathBasedValue<>(Bytes.of(9), CODE)); when(bonsaiWorldStateUpdateAccumulator.getCodeToUpdate()).thenReturn(codeToUpdate); worldState.updateCode(Optional.of(bonsaiUpdater), bonsaiWorldStateUpdateAccumulator); diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/BonsaiFlatDbStrategyProviderTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/BonsaiFlatDbStrategyProviderTest.java similarity index 85% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/BonsaiFlatDbStrategyProviderTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/BonsaiFlatDbStrategyProviderTest.java index 08b821bd6..102b6ff61 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/storage/flat/BonsaiFlatDbStrategyProviderTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/storage/flat/BonsaiFlatDbStrategyProviderTest.java @@ -12,20 +12,20 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.storage.flat; +package org.hyperledger.besu.ethereum.trie.pathbased.common.storage.flat; import static org.assertj.core.api.Assertions.assertThat; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueSegmentIdentifier; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat.BonsaiFlatDbStrategyProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat.BonsaiFullFlatDbStrategy; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat.BonsaiPartialFlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat.BonsaiFlatDbStrategyProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat.BonsaiFullFlatDbStrategy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat.BonsaiPartialFlatDbStrategy; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.DiffBasedSubStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDiffBasedSubStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.ImmutablePathBasedExtraStorageConfiguration; +import org.hyperledger.besu.ethereum.worldstate.PathBasedExtraStorageConfiguration; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; import org.hyperledger.besu.plugin.services.storage.SegmentedKeyValueStorage; @@ -88,11 +88,11 @@ class BonsaiFlatDbStrategyProviderTest { final DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() - .maxLayersToLoad(DiffBasedSubStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD) + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() + .maxLayersToLoad(PathBasedExtraStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD) .unstable( - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder() + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder() .codeStoredByCodeHashEnabled(codeByHashEnabled) .build()) .build()) @@ -116,11 +116,11 @@ class BonsaiFlatDbStrategyProviderTest { final DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() - .maxLayersToLoad(DiffBasedSubStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD) + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() + .maxLayersToLoad(PathBasedExtraStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD) .unstable( - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder() + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder() .codeStoredByCodeHashEnabled(codeByHashEnabled) .build()) .build()) @@ -149,11 +149,11 @@ class BonsaiFlatDbStrategyProviderTest { final DataStorageConfiguration dataStorageConfiguration = ImmutableDataStorageConfiguration.builder() .dataStorageFormat(DataStorageFormat.BONSAI) - .diffBasedSubStorageConfiguration( - ImmutableDiffBasedSubStorageConfiguration.builder() - .maxLayersToLoad(DiffBasedSubStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD) + .pathBasedExtraStorageConfiguration( + ImmutablePathBasedExtraStorageConfiguration.builder() + .maxLayersToLoad(PathBasedExtraStorageConfiguration.DEFAULT_MAX_LAYERS_TO_LOAD) .unstable( - ImmutableDiffBasedSubStorageConfiguration.DiffBasedUnstable.builder() + ImmutablePathBasedExtraStorageConfiguration.PathBasedUnstable.builder() .codeStoredByCodeHashEnabled(codeByHashEnabled) .build()) .build()) diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogLayerTests.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogLayerTests.java similarity index 98% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogLayerTests.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogLayerTests.java index 0aa00160f..f4ae6fa6c 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogLayerTests.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogLayerTests.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import org.hyperledger.besu.datatypes.AccountValue; import org.hyperledger.besu.datatypes.Address; diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogPrunerTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogPrunerTest.java similarity index 99% rename from ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogPrunerTest.java rename to ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogPrunerTest.java index 5f985b1f8..edec6830f 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/diffbased/common/trielog/TrieLogPrunerTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/trie/pathbased/common/trielog/TrieLogPrunerTest.java @@ -12,7 +12,7 @@ * * SPDX-License-Identifier: Apache-2.0 */ -package org.hyperledger.besu.ethereum.trie.diffbased.common.trielog; +package org.hyperledger.besu.ethereum.trie.pathbased.common.trielog; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -25,7 +25,7 @@ import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.chain.Blockchain; import org.hyperledger.besu.ethereum.core.BlockDataGenerator; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import java.util.Optional; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java index 5de2b6e42..b8654b7f6 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServer.java @@ -34,8 +34,8 @@ import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.trie.CompactEncoding; import org.hyperledger.besu.ethereum.trie.MerkleTrie; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.plugin.services.BesuEvents; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/DefaultSynchronizer.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/DefaultSynchronizer.java index c872f1951..4dc6d0060 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/DefaultSynchronizer.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/DefaultSynchronizer.java @@ -36,7 +36,7 @@ import org.hyperledger.besu.ethereum.eth.sync.state.PendingBlocksManager; import org.hyperledger.besu.ethereum.eth.sync.state.SyncState; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.storage.StorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiWorldStateProvider; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.BesuMetricCategory; import org.hyperledger.besu.metrics.SyncDurationMetrics; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloader.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloader.java index da3f12390..5c6375ddb 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloader.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloader.java @@ -22,7 +22,7 @@ import org.hyperledger.besu.ethereum.eth.sync.ChainDownloader; import org.hyperledger.besu.ethereum.eth.sync.TrailingPeerRequirements; import org.hyperledger.besu.ethereum.eth.sync.worldstate.StalledDownloadException; import org.hyperledger.besu.ethereum.eth.sync.worldstate.WorldStateDownloader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.SyncDurationMetrics; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStep.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStep.java index 890db52a0..ddb8bf78c 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStep.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStep.java @@ -20,7 +20,7 @@ import static org.hyperledger.besu.ethereum.eth.sync.StorageExceptionManager.get import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.SnapDataRequest; import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.heal.TrieNodeHealingRequest; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.plugin.services.exception.StorageException; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadState.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadState.java index 41beaafa6..0e6a48c3c 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadState.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadState.java @@ -31,7 +31,7 @@ import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.heal.AccountFlatD import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.heal.StorageFlatDatabaseHealingRangeRequest; import org.hyperledger.besu.ethereum.eth.sync.worldstate.WorldDownloadState; import org.hyperledger.besu.ethereum.trie.RangeManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldStateDownloader.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldStateDownloader.java index fc9d0d8ef..5c1e1c6c0 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldStateDownloader.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldStateDownloader.java @@ -28,7 +28,7 @@ import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.AccountRangeDataR import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.SnapDataRequest; import org.hyperledger.besu.ethereum.eth.sync.worldstate.WorldStateDownloader; import org.hyperledger.besu.ethereum.trie.RangeManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.BesuMetricCategory; import org.hyperledger.besu.metrics.SyncDurationMetrics; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/AccountRangeDataRequest.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/AccountRangeDataRequest.java index c7e76edc3..1940bb1d4 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/AccountRangeDataRequest.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/AccountRangeDataRequest.java @@ -32,7 +32,7 @@ import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.rlp.RLPInput; import org.hyperledger.besu.ethereum.trie.NodeUpdater; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/StorageRangeDataRequest.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/StorageRangeDataRequest.java index c405e2525..f07268bfc 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/StorageRangeDataRequest.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/StorageRangeDataRequest.java @@ -30,7 +30,7 @@ import org.hyperledger.besu.ethereum.proof.WorldStateProofProvider; import org.hyperledger.besu.ethereum.trie.CompactEncoding; import org.hyperledger.besu.ethereum.trie.NodeUpdater; import org.hyperledger.besu.ethereum.trie.RangeManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.FlatDbMode; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequest.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequest.java index 195cd85a5..81d91e177 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequest.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequest.java @@ -32,7 +32,7 @@ import org.hyperledger.besu.ethereum.trie.RangeManager; import org.hyperledger.besu.ethereum.trie.RangeStorageEntriesCollector; import org.hyperledger.besu.ethereum.trie.TrieIterator; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequest.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequest.java index 03df0e5e7..097e0da70 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequest.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequest.java @@ -27,7 +27,7 @@ import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.RangeManager; import org.hyperledger.besu.ethereum.trie.RangeStorageEntriesCollector; import org.hyperledger.besu.ethereum.trie.TrieIterator; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionPool.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionPool.java index 0ce61fa33..1f890570b 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionPool.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionPool.java @@ -19,7 +19,7 @@ import static org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason import static org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason.CHAIN_HEAD_WORLD_STATE_NOT_AVAILABLE; import static org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason.INTERNAL_ERROR; import static org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason.TRANSACTION_ALREADY_KNOWN; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams.withBlockHeaderAndNoUpdateNodeHead; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.BlobsWithCommitments; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerGetAccountRangeTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerGetAccountRangeTest.java index 8dfdb034e..6bfe2d4d1 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerGetAccountRangeTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerGetAccountRangeTest.java @@ -27,7 +27,7 @@ import org.hyperledger.besu.ethereum.eth.messages.snap.GetAccountRangeMessage; import org.hyperledger.besu.ethereum.eth.sync.snapsync.ImmutableSnapSyncConfiguration; import org.hyperledger.besu.ethereum.eth.sync.snapsync.SnapSyncConfiguration; import org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.DiffBasedWorldStateProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.PathBasedWorldStateProvider; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; @@ -62,7 +62,7 @@ public class SnapServerGetAccountRangeTest { public void setupTest() { WorldStateStorageCoordinator worldStateStorageCoordinator = new WorldStateStorageCoordinator( - ((DiffBasedWorldStateProvider) protocolContext.getWorldStateArchive()) + ((PathBasedWorldStateProvider) protocolContext.getWorldStateArchive()) .getWorldStateKeyValueStorage()); SnapSyncConfiguration snapSyncConfiguration = diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java index 1d43a5af9..a85d13b39 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/snap/SnapServerTest.java @@ -38,8 +38,8 @@ import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.trie.CompactEncoding; import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.flat.BonsaiFlatDbStrategyProvider; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.flat.BonsaiFlatDbStrategyProvider; import org.hyperledger.besu.ethereum.trie.patricia.SimpleMerklePatriciaTrie; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java index 98a8a26db..3a872085e 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java @@ -48,8 +48,8 @@ import org.hyperledger.besu.ethereum.eth.sync.fastsync.checkpoint.Checkpoint; import org.hyperledger.besu.ethereum.eth.sync.fastsync.checkpoint.ImmutableCheckpoint; import org.hyperledger.besu.ethereum.eth.sync.state.SyncState; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.SyncDurationMetrics; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastDownloaderFactoryTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastDownloaderFactoryTest.java index 37ca5be2e..667cb6aca 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastDownloaderFactoryTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastDownloaderFactoryTest.java @@ -31,8 +31,8 @@ import org.hyperledger.besu.ethereum.eth.sync.SynchronizerConfiguration; import org.hyperledger.besu.ethereum.eth.sync.fastsync.worldstate.FastDownloaderFactory; import org.hyperledger.besu.ethereum.eth.sync.state.SyncState; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.SyncDurationMetrics; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloaderTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloaderTest.java index 13444a912..27abe4926 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloaderTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncDownloaderTest.java @@ -34,8 +34,8 @@ import org.hyperledger.besu.ethereum.eth.sync.fastsync.worldstate.FastWorldState import org.hyperledger.besu.ethereum.eth.sync.fastsync.worldstate.NodeDataRequest; import org.hyperledger.besu.ethereum.eth.sync.worldstate.StalledDownloadException; import org.hyperledger.besu.ethereum.eth.sync.worldstate.WorldStateDownloader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.SyncDurationMetrics; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldDownloadStateTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldDownloadStateTest.java index e3d2a37cd..c51afe1c2 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldDownloadStateTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldDownloadStateTest.java @@ -26,8 +26,8 @@ import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider; import org.hyperledger.besu.ethereum.eth.manager.task.EthTask; import org.hyperledger.besu.ethereum.eth.sync.worldstate.StalledDownloadException; import org.hyperledger.besu.ethereum.eth.sync.worldstate.WorldStateDownloadProcess; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/LoadLocalDataStepTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/LoadLocalDataStepTest.java index 582bdff63..f1042fa8f 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/LoadLocalDataStepTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/LoadLocalDataStepTest.java @@ -22,7 +22,7 @@ import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import org.hyperledger.besu.datatypes.Hash; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import org.hyperledger.besu.plugin.services.storage.DataStorageFormat; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/AccountHealingTrackingTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/AccountHealingTrackingTest.java index ecb704ba8..0fa8236be 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/AccountHealingTrackingTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/AccountHealingTrackingTest.java @@ -32,7 +32,7 @@ import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.RangeStorageEntriesCollector; import org.hyperledger.besu.ethereum.trie.TrieIterator; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.trie.patricia.StoredNodeFactory; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStepTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStepTest.java index 963293be0..7ef01e1c3 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStepTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/PersistDataStepTest.java @@ -29,7 +29,7 @@ import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.BytecodeRequest; import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.SnapDataRequest; import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.StorageRangeDataRequest; import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.heal.AccountTrieNodeHealingRequest; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java index 24e486996..524906723 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java @@ -41,8 +41,8 @@ import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.BytecodeRequest; import org.hyperledger.besu.ethereum.eth.sync.snapsync.request.SnapDataRequest; import org.hyperledger.besu.ethereum.eth.sync.worldstate.WorldStateDownloadProcess; import org.hyperledger.besu.ethereum.trie.RangeManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/TaskGenerator.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/TaskGenerator.java index 2031e7a2a..f0c138188 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/TaskGenerator.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/TaskGenerator.java @@ -28,7 +28,7 @@ import org.hyperledger.besu.ethereum.trie.RangeManager; import org.hyperledger.besu.ethereum.trie.RangeStorageEntriesCollector; import org.hyperledger.besu.ethereum.trie.TrieIterator; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequestTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequestTest.java index ffa50401a..90310d18b 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequestTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/AccountFlatDatabaseHealingRangeRequestTest.java @@ -29,8 +29,8 @@ import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.RangeManager; import org.hyperledger.besu.ethereum.trie.RangeStorageEntriesCollector; import org.hyperledger.besu.ethereum.trie.TrieIterator; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequestTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequestTest.java index 5eb88521a..2f6821a02 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequestTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageFlatDatabaseHealingRangeRequestTest.java @@ -32,7 +32,7 @@ import org.hyperledger.besu.ethereum.trie.RangeManager; import org.hyperledger.besu.ethereum.trie.RangeStorageEntriesCollector; import org.hyperledger.besu.ethereum.trie.TrieIterator; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.patricia.StoredMerklePatriciaTrie; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateKeyValueStorage; diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageTrieNodeHealingRequestTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageTrieNodeHealingRequestTest.java index 114399a66..94e7410be 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageTrieNodeHealingRequestTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/request/heal/StorageTrieNodeHealingRequestTest.java @@ -24,8 +24,8 @@ import org.hyperledger.besu.ethereum.rlp.RLP; import org.hyperledger.besu.ethereum.storage.StorageProvider; import org.hyperledger.besu.ethereum.trie.MerkleTrie; import org.hyperledger.besu.ethereum.trie.common.PmtStateTrieAccountValue; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.trie.forest.storage.ForestWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.ethereum.worldstate.WorldStateStorageCoordinator; import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; diff --git a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/BlockchainTestSubCommand.java b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/BlockchainTestSubCommand.java index 8f7b58ea9..7595db279 100644 --- a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/BlockchainTestSubCommand.java +++ b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/BlockchainTestSubCommand.java @@ -31,7 +31,7 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSpec; import org.hyperledger.besu.ethereum.referencetests.BlockchainReferenceTestCaseSpec; import org.hyperledger.besu.ethereum.referencetests.ReferenceTestProtocolSchedules; import org.hyperledger.besu.ethereum.rlp.RLPException; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.evm.EVM; import org.hyperledger.besu.evm.EvmSpecVersion; import org.hyperledger.besu.evm.account.AccountState; diff --git a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/T8nExecutor.java b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/T8nExecutor.java index 905a0d9ac..550970894 100644 --- a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/T8nExecutor.java +++ b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/T8nExecutor.java @@ -53,7 +53,7 @@ import org.hyperledger.besu.ethereum.referencetests.ReferenceTestWorldState; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPInput; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; import org.hyperledger.besu.ethereum.rlp.RLP; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedAccount; import org.hyperledger.besu.ethereum.vm.BlockchainBasedBlockHashLookup; import org.hyperledger.besu.evm.account.Account; import org.hyperledger.besu.evm.blockhash.BlockHashLookup; @@ -432,7 +432,7 @@ public class T8nExecutor { if (shouldClearEmptyAccounts(fork)) { var entries = new ArrayList<>(worldState.getAccumulator().getAccountsToUpdate().entrySet()); for (var entry : entries) { - DiffBasedAccount updated = entry.getValue().getUpdated(); + PathBasedAccount updated = entry.getValue().getUpdated(); if (updated != null && updated.isEmpty()) { worldState.getAccumulator().deleteAccount(entry.getKey()); } diff --git a/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestUpdateAccumulator.java b/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestUpdateAccumulator.java index db8bb4b3e..f456fa8c7 100644 --- a/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestUpdateAccumulator.java +++ b/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestUpdateAccumulator.java @@ -17,13 +17,13 @@ package org.hyperledger.besu.ethereum.referencetests; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.StorageSlotKey; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiPreImageProxy; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.DiffBasedValue; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.Consumer; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.preload.StorageConsumingMap; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiPreImageProxy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.PathBasedValue; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.Consumer; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.preload.StorageConsumingMap; import org.hyperledger.besu.evm.internal.EvmConfiguration; import java.util.concurrent.ConcurrentHashMap; @@ -34,8 +34,8 @@ public class BonsaiReferenceTestUpdateAccumulator extends BonsaiWorldStateUpdate private final BonsaiPreImageProxy preImageProxy; public BonsaiReferenceTestUpdateAccumulator( - final DiffBasedWorldView world, - final Consumer> accountPreloader, + final PathBasedWorldView world, + final Consumer> accountPreloader, final Consumer storagePreloader, final BonsaiPreImageProxy preImageProxy, final EvmConfiguration evmConfiguration) { @@ -67,7 +67,7 @@ public class BonsaiReferenceTestUpdateAccumulator extends BonsaiWorldStateUpdate getStorageToUpdate() .forEach( (k, v) -> { - StorageConsumingMap> newMap = + StorageConsumingMap> newMap = new StorageConsumingMap<>(k, new ConcurrentHashMap<>(), v.getConsumer()); v.forEach((key, value) -> newMap.put(key, value.copy())); copy.getStorageToUpdate().put(k, newMap); diff --git a/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldState.java b/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldState.java index e9ccae4de..7b42d87d0 100644 --- a/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldState.java +++ b/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldState.java @@ -14,23 +14,23 @@ */ package org.hyperledger.besu.ethereum.referencetests; -import static org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; +import static org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.WorldStateConfig.createStatefulConfigWithTrie; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.cache.NoOpBonsaiCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiPreImageProxy; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; -import org.hyperledger.besu.ethereum.trie.diffbased.common.cache.DiffBasedCachedWorldStorageManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogAddedEvent; -import org.hyperledger.besu.ethereum.trie.diffbased.common.trielog.TrieLogManager; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldState; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.accumulator.DiffBasedWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.BonsaiCachedMerkleTrieLoader; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.NoOpBonsaiCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiPreImageProxy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.worldview.BonsaiWorldStateUpdateAccumulator; +import org.hyperledger.besu.ethereum.trie.pathbased.common.cache.PathBasedCachedWorldStorageManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogAddedEvent; +import org.hyperledger.besu.ethereum.trie.pathbased.common.trielog.TrieLogManager; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldState; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.accumulator.PathBasedWorldStateUpdateAccumulator; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; import org.hyperledger.besu.evm.internal.EvmConfiguration; import org.hyperledger.besu.evm.worldstate.WorldUpdater; @@ -65,7 +65,7 @@ public class BonsaiReferenceTestWorldState extends BonsaiWorldState protected BonsaiReferenceTestWorldState( final BonsaiReferenceTestWorldStateStorage worldStateKeyValueStorage, final BonsaiCachedMerkleTrieLoader bonsaiCachedMerkleTrieLoader, - final DiffBasedCachedWorldStorageManager cachedWorldStorageManager, + final PathBasedCachedWorldStorageManager cachedWorldStorageManager, final TrieLogManager trieLogManager, final BonsaiPreImageProxy preImageProxy, final EvmConfiguration evmConfiguration) { @@ -276,10 +276,10 @@ public class BonsaiReferenceTestWorldState extends BonsaiWorldState @Override public synchronized void saveTrieLog( - final DiffBasedWorldStateUpdateAccumulator localUpdater, + final PathBasedWorldStateUpdateAccumulator localUpdater, final Hash forWorldStateRootHash, final BlockHeader forBlockHeader, - final DiffBasedWorldState forWorldState) { + final PathBasedWorldState forWorldState) { // notify trie log added observers, synchronously TrieLog trieLog = trieLogFactory.create(localUpdater, forBlockHeader); trieLogCache.put(forBlockHeader.getHash(), trieLogFactory.serialize(trieLog)); diff --git a/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldStateStorage.java b/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldStateStorage.java index 3d0590978..c71b308f2 100644 --- a/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldStateStorage.java +++ b/ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/BonsaiReferenceTestWorldStateStorage.java @@ -16,11 +16,11 @@ package org.hyperledger.besu.ethereum.referencetests; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.BonsaiAccount; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiPreImageProxy; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.bonsai.storage.BonsaiWorldStateLayerStorage; -import org.hyperledger.besu.ethereum.trie.diffbased.common.worldview.DiffBasedWorldView; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.BonsaiAccount; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiPreImageProxy; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateKeyValueStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.storage.BonsaiWorldStateLayerStorage; +import org.hyperledger.besu.ethereum.trie.pathbased.common.worldview.PathBasedWorldView; import org.hyperledger.besu.evm.account.AccountStorageEntry; import org.hyperledger.besu.evm.worldstate.WorldState; @@ -65,7 +65,7 @@ public class BonsaiReferenceTestWorldStateStorage extends BonsaiWorldStateLayerS } public Stream streamAccounts( - final DiffBasedWorldView context, final Bytes32 startKeyHash, final int limit) { + final PathBasedWorldView context, final Bytes32 startKeyHash, final int limit) { return streamFlatAccounts(startKeyHash, UInt256.MAX_VALUE, limit) .entrySet() // map back to addresses using preImage provider: diff --git a/ethereum/referencetests/src/reference-test/java/org/hyperledger/besu/ethereum/vm/BlockchainReferenceTestTools.java b/ethereum/referencetests/src/reference-test/java/org/hyperledger/besu/ethereum/vm/BlockchainReferenceTestTools.java index 0c428f4f9..9c45be8c1 100644 --- a/ethereum/referencetests/src/reference-test/java/org/hyperledger/besu/ethereum/vm/BlockchainReferenceTestTools.java +++ b/ethereum/referencetests/src/reference-test/java/org/hyperledger/besu/ethereum/vm/BlockchainReferenceTestTools.java @@ -30,7 +30,7 @@ import org.hyperledger.besu.ethereum.mainnet.ProtocolSpec; import org.hyperledger.besu.ethereum.referencetests.BlockchainReferenceTestCaseSpec; import org.hyperledger.besu.ethereum.referencetests.ReferenceTestProtocolSchedules; import org.hyperledger.besu.ethereum.rlp.RLPException; -import org.hyperledger.besu.ethereum.trie.diffbased.common.provider.WorldStateQueryParams; +import org.hyperledger.besu.ethereum.trie.pathbased.common.provider.WorldStateQueryParams; import org.hyperledger.besu.evm.EVM; import org.hyperledger.besu.evm.EvmSpecVersion; import org.hyperledger.besu.evm.account.AccountState;