diff --git a/hedera-state-validator/build.gradle.kts b/hedera-state-validator/build.gradle.kts index 1cb2c9848f99..32edd97bfaca 100644 --- a/hedera-state-validator/build.gradle.kts +++ b/hedera-state-validator/build.gradle.kts @@ -7,3 +7,5 @@ plugins { mainModuleInfo { runtimeOnly("org.junit.jupiter.engine") } application.mainClass = "com.hedera.statevalidation.StateOperatorCommand" + +tasks.shadowJar { isZip64 = true } diff --git a/hedera-state-validator/src/main/java/com/hedera/statevalidation/Constants.java b/hedera-state-validator/src/main/java/com/hedera/statevalidation/Constants.java index 40a315149ef8..55572ce5d175 100644 --- a/hedera-state-validator/src/main/java/com/hedera/statevalidation/Constants.java +++ b/hedera-state-validator/src/main/java/com/hedera/statevalidation/Constants.java @@ -8,5 +8,4 @@ public class Constants { public static final Path COMBINED_REPORT_FILE = Path.of("combined_report.json"); public static final String COMBINED_HTML_REPORT_TEMPLATE = "combined_report.html.template"; public static final Path COMBINED_HTML_REPORT = Path.of("combined_report.html"); - public static final String VM_LABEL = "state"; } diff --git a/hedera-state-validator/src/main/java/com/hedera/statevalidation/validators/merkledb/FileLayout.java b/hedera-state-validator/src/main/java/com/hedera/statevalidation/validators/merkledb/FileLayout.java index 502d80ecd119..d55a09e5044f 100644 --- a/hedera-state-validator/src/main/java/com/hedera/statevalidation/validators/merkledb/FileLayout.java +++ b/hedera-state-validator/src/main/java/com/hedera/statevalidation/validators/merkledb/FileLayout.java @@ -1,9 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 package com.hedera.statevalidation.validators.merkledb; -import static com.hedera.statevalidation.Constants.VM_LABEL; import static com.hedera.statevalidation.validators.Constants.VALIDATE_FILE_LAYOUT; -import static java.lang.String.format; import static org.junit.jupiter.api.Assertions.fail; import com.hedera.statevalidation.parameterresolver.StateResolver; @@ -36,29 +34,34 @@ public class FileLayout { // internalHashStoreDisk templates private static final String INTERNAL_HASH_METADATA_TMPL = - ".*%1$s-\\d+.internalHashStoreDisk.%1$s_internalhashes_metadata[.]pbj"; + ".*data.state.internalHashStoreDisk.state_internalhashes_metadata[.]pbj"; + private static final String INTERNAL_HASH_STORE_TMPL = + ".*data.state.internalHashStoreDisk.state_internalhashes_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}-\\d{3}[_]+\\d[.]pbj"; // objectKeyToPath templates private static final String OBJECT_KEY_TO_PATH_BUCKET_INDEX_TMPL = - ".*%1$s-\\d+.objectKeyToPath.%1$s_objectkeytopath_bucket_index[.]ll"; + ".*data.state.objectKeyToPath.state_objectkeytopath_bucket_index[.]ll"; private static final String OBJECT_KEY_TO_PATH_METADATA_TMPL = - ".*%1$s-\\d+.objectKeyToPath.%1$s_objectkeytopath_metadata[.]pbj"; + ".*data.state.objectKeyToPath.state_objectkeytopath_metadata[.]pbj"; + private static final String OBJECT_KEY_TO_PATH_STORE_TMPL = + ".*data.state.objectKeyToPath.state_objectkeytopath_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}-\\d{3}[_]+\\d[.]pbj"; private static final String OBJECT_KEY_TO_PATH_METADATA_HDHM_TMPL = - ".*%1$s-\\d+.objectKeyToPath.%1$s_objectkeytopath_metadata[.]hdhm"; + ".*data.state.objectKeyToPath.state_objectkeytopath_metadata[.]hdhm"; // pathToHashKeyValue templates private static final String PATH_TO_HASH_KEY_VALUE_METADATA_TMPL = - ".*%1$s-\\d+.pathToHashKeyValue.%1$s_pathtohashkeyvalue_metadata.*[.]pbj"; + ".*data.state.pathToHashKeyValue.state_pathtohashkeyvalue_metadata.*[.]pbj"; + private static final String PATH_TO_HASH_KEY_VALUE_STORE_TMPL = + ".*data.state.pathToHashKeyValue.state_pathtohashkeyvalue_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}-\\d{3}[_]+\\d[.]pbj"; // metadata - private static final String METADATA_PBJ_TMPL = ".*%1$s-\\d+.table_metadata[.]pbj"; - private static final String PATH_TO_DISK_INTERNAL_TMPL = ".*%1$s-\\d+.pathToDiskLocationInternalNodes[.]ll"; - private static final String PATH_TO_DISK_LEAF_TMPL = ".*%1$s-\\d+.pathToDiskLocationLeafNodes[.]ll"; + private static final String METADATA_PBJ_TMPL = ".*data.state.table_metadata[.]pbj"; + private static final String PATH_TO_DISK_INTERNAL_TMPL = ".*data.state.pathToDiskLocationInternalNodes[.]ll"; + private static final String PATH_TO_DISK_LEAF_TMPL = ".*data.state.pathToDiskLocationLeafNodes[.]ll"; // Other files private static final List EXPECTED_FILE_PATTERNS = List.of( - ".*" + VM_LABEL + ".vmap", - ".*database_metadata.pbj", + ".*state.vmap", ".*emergencyRecovery.yaml", ".*hashInfo.txt", ".*settingsUsed.txt", @@ -78,7 +81,7 @@ public void validateFileLayout(DeserializedSignedState deserializedState) throws .map(Pattern::compile) .map(v -> new OptionalPattern(v, false)) .toList()); - expectedPathPatterns.addAll(indexPathsToMatch(VM_LABEL)); + expectedPathPatterns.addAll(indexPathsToMatch()); Path statePath = Path.of(Constants.STATE_DIR); Files.walk(statePath).filter(Files::isRegularFile).forEach(path -> { @@ -117,16 +120,18 @@ public void validateFileLayout(DeserializedSignedState deserializedState) throws } } - private List indexPathsToMatch(String vmName) { + private List indexPathsToMatch() { return Stream.of( - format(INTERNAL_HASH_METADATA_TMPL, vmName), - format(OBJECT_KEY_TO_PATH_BUCKET_INDEX_TMPL, vmName), - format(OBJECT_KEY_TO_PATH_METADATA_TMPL, vmName), - format(OBJECT_KEY_TO_PATH_METADATA_HDHM_TMPL, vmName), - format(PATH_TO_HASH_KEY_VALUE_METADATA_TMPL, vmName), - format(METADATA_PBJ_TMPL, vmName), - format(PATH_TO_DISK_INTERNAL_TMPL, vmName), - format(PATH_TO_DISK_LEAF_TMPL, vmName)) + INTERNAL_HASH_METADATA_TMPL, + INTERNAL_HASH_STORE_TMPL, + OBJECT_KEY_TO_PATH_BUCKET_INDEX_TMPL, + OBJECT_KEY_TO_PATH_METADATA_TMPL, + OBJECT_KEY_TO_PATH_STORE_TMPL, + OBJECT_KEY_TO_PATH_METADATA_HDHM_TMPL, + PATH_TO_HASH_KEY_VALUE_METADATA_TMPL, + METADATA_PBJ_TMPL, + PATH_TO_DISK_INTERNAL_TMPL, + PATH_TO_DISK_LEAF_TMPL) .map(Pattern::compile) .map(v -> new OptionalPattern(v, false)) .toList();