diff --git a/besu/src/main/java/org/hyperledger/besu/cli/DefaultCommandValues.java b/besu/src/main/java/org/hyperledger/besu/cli/DefaultCommandValues.java index e62d76baf38..62de356e5f2 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/DefaultCommandValues.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/DefaultCommandValues.java @@ -36,63 +36,92 @@ public interface DefaultCommandValues { /** The constant MANDATORY_PATH_FORMAT_HELP. */ String MANDATORY_PATH_FORMAT_HELP = ""; + /** The constant MANDATORY_FILE_FORMAT_HELP. */ String MANDATORY_FILE_FORMAT_HELP = ""; + /** The constant MANDATORY_DIRECTORY_FORMAT_HELP. */ String MANDATORY_DIRECTORY_FORMAT_HELP = ""; + /** The constant BESU_HOME_PROPERTY_NAME. */ String BESU_HOME_PROPERTY_NAME = "besu.home"; + /** The constant DEFAULT_DATA_DIR_PATH. */ String DEFAULT_DATA_DIR_PATH = "./build/data"; + /** The constant MANDATORY_INTEGER_FORMAT_HELP. */ String MANDATORY_INTEGER_FORMAT_HELP = ""; + /** The constant MANDATORY_DOUBLE_FORMAT_HELP. */ String MANDATORY_DOUBLE_FORMAT_HELP = ""; + /** The constant MANDATORY_LONG_FORMAT_HELP. */ String MANDATORY_LONG_FORMAT_HELP = ""; + /** The constant MANDATORY_MODE_FORMAT_HELP. */ String MANDATORY_MODE_FORMAT_HELP = ""; + /** The constant MANDATORY_NETWORK_FORMAT_HELP. */ String MANDATORY_NETWORK_FORMAT_HELP = ""; + /** The constant PROFILE_OPTION_NAME. */ String PROFILE_OPTION_NAME = "--profile"; + /** The constant PROFILE_FORMAT_HELP. */ String PROFILE_FORMAT_HELP = ""; + /** The constant MANDATORY_NODE_ID_FORMAT_HELP. */ String MANDATORY_NODE_ID_FORMAT_HELP = ""; + /** The constant PERMISSIONING_CONFIG_LOCATION. */ String PERMISSIONING_CONFIG_LOCATION = "permissions_config.toml"; + /** The constant MANDATORY_HOST_FORMAT_HELP. */ String MANDATORY_HOST_FORMAT_HELP = ""; + /** The constant MANDATORY_PORT_FORMAT_HELP. */ String MANDATORY_PORT_FORMAT_HELP = ""; + /** The constant DEFAULT_NAT_METHOD. */ NatMethod DEFAULT_NAT_METHOD = NatMethod.AUTO; + /** The constant DEFAULT_JWT_ALGORITHM. */ JwtAlgorithm DEFAULT_JWT_ALGORITHM = JwtAlgorithm.RS256; + /** The constant SYNC_MIN_PEER_COUNT. */ int SYNC_MIN_PEER_COUNT = 5; + /** The constant DEFAULT_MAX_PEERS. */ int DEFAULT_MAX_PEERS = 25; + /** The constant DEFAULT_HTTP_MAX_CONNECTIONS. */ int DEFAULT_HTTP_MAX_CONNECTIONS = 80; + /** The constant DEFAULT_HTTP_MAX_BATCH_SIZE. */ int DEFAULT_HTTP_MAX_BATCH_SIZE = 1024; + /** The constant DEFAULT_MAX_REQUEST_CONTENT_LENGTH. */ long DEFAULT_MAX_REQUEST_CONTENT_LENGTH = 5 * 1024 * 1024; // 5MB + /** The constant DEFAULT_WS_MAX_CONNECTIONS. */ int DEFAULT_WS_MAX_CONNECTIONS = 80; + /** The constant DEFAULT_WS_MAX_FRAME_SIZE. */ int DEFAULT_WS_MAX_FRAME_SIZE = 1024 * 1024; + /** The constant DEFAULT_FRACTION_REMOTE_WIRE_CONNECTIONS_ALLOWED. */ float DEFAULT_FRACTION_REMOTE_WIRE_CONNECTIONS_ALLOWED = RlpxConfiguration.DEFAULT_FRACTION_REMOTE_CONNECTIONS_ALLOWED; + /** The constant DEFAULT_KEY_VALUE_STORAGE_NAME. */ String DEFAULT_KEY_VALUE_STORAGE_NAME = "rocksdb"; + /** The constant DEFAULT_SECURITY_MODULE. */ String DEFAULT_SECURITY_MODULE = "localfile"; + /** The constant DEFAULT_KEYSTORE_TYPE. */ String DEFAULT_KEYSTORE_TYPE = "JKS"; + /** The Default tls protocols. */ List DEFAULT_TLS_PROTOCOLS = List.of("TLSv1.3", "TLSv1.2"); diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/TransactionPoolOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/TransactionPoolOptions.java index 0ededa3c5a5..b2013a4ab06 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/TransactionPoolOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/TransactionPoolOptions.java @@ -44,6 +44,7 @@ /** The Transaction pool Cli stable options. */ public class TransactionPoolOptions implements CLIOptions { private static final String TX_POOL_IMPLEMENTATION = "--tx-pool"; + /** Use TX_POOL_NO_LOCAL_PRIORITY instead */ @Deprecated(forRemoval = true) private static final String TX_POOL_DISABLE_LOCALS = "--tx-pool-disable-locals"; diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java index cdbee1d4164..3d9bb759d73 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java @@ -103,6 +103,7 @@ public static class Unstable { "Enables code storage using code hash instead of by account hash. (default: ${DEFAULT-VALUE})") private boolean bonsaiCodeUsingCodeHashEnabled = DEFAULT_BONSAI_CODE_USING_CODE_HASH_ENABLED; } + /** * Create data storage options. * diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/stable/LoggingLevelOption.java b/besu/src/main/java/org/hyperledger/besu/cli/options/stable/LoggingLevelOption.java index ce5198084cf..cf4ad00deb5 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/stable/LoggingLevelOption.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/stable/LoggingLevelOption.java @@ -35,6 +35,7 @@ public static LoggingLevelOption create() { private static final Set ACCEPTED_VALUES = Set.of("OFF", "ERROR", "WARN", "INFO", "DEBUG", "TRACE", "ALL"); + /** The Picocli CommandSpec. Visible for testing. Injected by Picocli framework at runtime. */ @Spec CommandSpec spec; diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/ChainPruningOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/ChainPruningOptions.java index e164ec8fa85..66d6b15f22f 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/ChainPruningOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/ChainPruningOptions.java @@ -30,8 +30,10 @@ public class ChainPruningOptions implements CLIOptions private static final String CHAIN_PRUNING_BLOCKS_RETAINED_FLAG = "--Xchain-pruning-blocks-retained"; private static final String CHAIN_PRUNING_FREQUENCY_FLAG = "--Xchain-pruning-frequency"; + /** The constant DEFAULT_CHAIN_DATA_PRUNING_MIN_BLOCKS_RETAINED. */ public static final long DEFAULT_CHAIN_DATA_PRUNING_MIN_BLOCKS_RETAINED = 7200; + /** The constant DEFAULT_CHAIN_DATA_PRUNING_FREQUENCY. */ public static final int DEFAULT_CHAIN_DATA_PRUNING_FREQUENCY = 256; diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/NetworkingOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/NetworkingOptions.java index 35e37d06ddc..a66bb6fb618 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/NetworkingOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/NetworkingOptions.java @@ -36,6 +36,7 @@ public class NetworkingOptions implements CLIOptions { "--Xp2p-check-maintained-connections-frequency"; private final String DNS_DISCOVERY_SERVER_OVERRIDE_FLAG = "--Xp2p-dns-discovery-server"; private final String DISCOVERY_PROTOCOL_V5_ENABLED = "--Xv5-discovery-enabled"; + /** The constant FILTER_ON_ENR_FORK_ID. */ public static final String FILTER_ON_ENR_FORK_ID = "--filter-on-enr-fork-id"; diff --git a/besu/src/main/java/org/hyperledger/besu/cli/subcommands/operator/OperatorSubCommand.java b/besu/src/main/java/org/hyperledger/besu/cli/subcommands/operator/OperatorSubCommand.java index 705b8fd9e5e..2e022be06d4 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/subcommands/operator/OperatorSubCommand.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/subcommands/operator/OperatorSubCommand.java @@ -42,6 +42,7 @@ public class OperatorSubCommand implements Runnable { /** The constant COMMAND_NAME. */ public static final String COMMAND_NAME = "operator"; + /** The constant GENERATE_BLOCKCHAIN_CONFIG_SUBCOMMAND_NAME. */ public static final String GENERATE_BLOCKCHAIN_CONFIG_SUBCOMMAND_NAME = "generate-blockchain-config"; diff --git a/besu/src/main/java/org/hyperledger/besu/cli/util/CommandLineUtils.java b/besu/src/main/java/org/hyperledger/besu/cli/util/CommandLineUtils.java index 397592459c6..38418dd11df 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/util/CommandLineUtils.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/util/CommandLineUtils.java @@ -36,11 +36,14 @@ public class CommandLineUtils { /** The constant DEPENDENCY_WARNING_MSG. */ public static final String DEPENDENCY_WARNING_MSG = "{} has been ignored because {} was not defined on the command line."; + /** The constant MULTI_DEPENDENCY_WARNING_MSG. */ public static final String MULTI_DEPENDENCY_WARNING_MSG = "{} ignored because none of {} was defined."; + /** The constant DEPRECATION_WARNING_MSG. */ public static final String DEPRECATION_WARNING_MSG = "{} has been deprecated, use {} instead."; + /** The constant DEPRECATED_AND_USELESS_WARNING_MSG. */ public static final String DEPRECATED_AND_USELESS_WARNING_MSG = "{} has been deprecated and is now useless, remove it."; diff --git a/besu/src/main/java/org/hyperledger/besu/controller/BesuController.java b/besu/src/main/java/org/hyperledger/besu/controller/BesuController.java index 12efc4a9df5..2849846f213 100644 --- a/besu/src/main/java/org/hyperledger/besu/controller/BesuController.java +++ b/besu/src/main/java/org/hyperledger/besu/controller/BesuController.java @@ -57,6 +57,7 @@ public class BesuController implements java.io.Closeable { /** The constant DATABASE_PATH. */ public static final String DATABASE_PATH = "database"; + /** The constant CACHE_PATH. */ public static final String CACHE_PATH = "caches"; 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 50c945a6f90..e3c70e4fca8 100644 --- a/besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java +++ b/besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java @@ -129,56 +129,78 @@ public abstract class BesuControllerBuilder implements MiningParameterOverrides /** The Sync config. */ protected SynchronizerConfiguration syncConfig; + /** The Ethereum wire protocol configuration. */ protected EthProtocolConfiguration ethereumWireProtocolConfiguration; + /** The Transaction pool configuration. */ protected TransactionPoolConfiguration transactionPoolConfiguration; + /** The Network id. */ protected BigInteger networkId; + /** The Mining parameters. */ protected MiningParameters miningParameters; + /** The Metrics system. */ protected ObservableMetricsSystem metricsSystem; + /** The Privacy parameters. */ protected PrivacyParameters privacyParameters; + /** The Pki block creation configuration. */ protected Optional pkiBlockCreationConfiguration = Optional.empty(); + /** The Data directory. */ protected Path dataDirectory; + /** The Clock. */ protected Clock clock; + /** The Node key. */ protected NodeKey nodeKey; + /** The Is revert reason enabled. */ protected boolean isRevertReasonEnabled; + /** The Gas limit calculator. */ GasLimitCalculator gasLimitCalculator; + /** The Storage provider. */ protected StorageProvider storageProvider; + /** The Required blocks. */ protected Map requiredBlocks = Collections.emptyMap(); + /** The Reorg logging threshold. */ protected long reorgLoggingThreshold; + /** The Data storage configuration. */ protected DataStorageConfiguration dataStorageConfiguration = DataStorageConfiguration.DEFAULT_CONFIG; + /** The Message permissioning providers. */ protected List messagePermissioningProviders = Collections.emptyList(); + /** The Evm configuration. */ protected EvmConfiguration evmConfiguration; + /** The Max peers. */ protected int maxPeers; + /** Manages a cache of bad blocks globally */ protected final BadBlockManager badBlockManager = new BadBlockManager(); private int maxRemotelyInitiatedPeers; + /** The Chain pruner configuration. */ protected ChainPrunerConfiguration chainPrunerConfiguration = ChainPrunerConfiguration.DEFAULT; private NetworkingConfiguration networkingConfiguration; private Boolean randomPeerPriority; + /** the Dagger configured context that can provide dependencies */ protected Optional besuComponent = Optional.empty(); @@ -1022,8 +1044,9 @@ yield new BonsaiWorldStateProvider( yield new ForestWorldStateArchive( worldStateStorageCoordinator, preimageStorage, evmConfiguration); } - default -> throw new IllegalStateException( - "Unexpected value: " + dataStorageConfiguration.getDataStorageFormat()); + default -> + throw new IllegalStateException( + "Unexpected value: " + dataStorageConfiguration.getDataStorageFormat()); }; } diff --git a/besu/src/test/java/org/hyperledger/besu/cli/CommandTestAbstract.java b/besu/src/test/java/org/hyperledger/besu/cli/CommandTestAbstract.java index cb77694c283..a10773826c0 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/CommandTestAbstract.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/CommandTestAbstract.java @@ -747,6 +747,7 @@ protected void verifyOptionsConstraintLoggerCall( assertThat(stringArgumentCaptor.getAllValues().get(2)).isEqualTo(mainOption); } + /** * Check logger calls * diff --git a/build.gradle b/build.gradle index fb37b350d56..63c2b24b882 100644 --- a/build.gradle +++ b/build.gradle @@ -203,7 +203,7 @@ allprojects { target 'src/**/*.java' targetExclude '**/src/reference-test/**', '**/src/main/generated/**', '**/src/test/generated/**', '**/src/jmh/generated/**' removeUnusedImports() - googleJavaFormat('1.15.0') + googleJavaFormat('1.22.0') importOrder 'org.hyperledger', 'java', '' trimTrailingWhitespace() endWithNewline() diff --git a/config/src/main/java/org/hyperledger/besu/config/BftFork.java b/config/src/main/java/org/hyperledger/besu/config/BftFork.java index de188744b3a..30f8e1c5d5b 100644 --- a/config/src/main/java/org/hyperledger/besu/config/BftFork.java +++ b/config/src/main/java/org/hyperledger/besu/config/BftFork.java @@ -33,12 +33,16 @@ public class BftFork implements Fork { /** The constant FORK_BLOCK_KEY. */ public static final String FORK_BLOCK_KEY = "block"; + /** The constant VALIDATORS_KEY. */ public static final String VALIDATORS_KEY = "validators"; + /** The constant BLOCK_PERIOD_SECONDS_KEY. */ public static final String BLOCK_PERIOD_SECONDS_KEY = "blockperiodseconds"; + /** The constant BLOCK_REWARD_KEY. */ public static final String BLOCK_REWARD_KEY = "blockreward"; + /** The constant MINING_BENEFICIARY_KEY. */ public static final String MINING_BENEFICIARY_KEY = "miningbeneficiary"; diff --git a/config/src/main/java/org/hyperledger/besu/config/JsonQbftConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/JsonQbftConfigOptions.java index a9bcf750f2e..9f1d94ecaf2 100644 --- a/config/src/main/java/org/hyperledger/besu/config/JsonQbftConfigOptions.java +++ b/config/src/main/java/org/hyperledger/besu/config/JsonQbftConfigOptions.java @@ -26,8 +26,10 @@ public class JsonQbftConfigOptions extends JsonBftConfigOptions implements QbftC /** The constant DEFAULT. */ public static final JsonQbftConfigOptions DEFAULT = new JsonQbftConfigOptions(JsonUtil.createEmptyObjectNode()); + /** The constant VALIDATOR_CONTRACT_ADDRESS. */ public static final String VALIDATOR_CONTRACT_ADDRESS = "validatorcontractaddress"; + /** The constant START_BLOCK. */ public static final String START_BLOCK = "startblock"; diff --git a/config/src/main/java/org/hyperledger/besu/config/QbftFork.java b/config/src/main/java/org/hyperledger/besu/config/QbftFork.java index b080a557499..3461a7eedf6 100644 --- a/config/src/main/java/org/hyperledger/besu/config/QbftFork.java +++ b/config/src/main/java/org/hyperledger/besu/config/QbftFork.java @@ -34,6 +34,7 @@ public enum VALIDATOR_SELECTION_MODE { /** The constant VALIDATOR_SELECTION_MODE_KEY. */ public static final String VALIDATOR_SELECTION_MODE_KEY = "validatorselectionmode"; + /** The constant VALIDATOR_CONTRACT_ADDRESS_KEY. */ public static final String VALIDATOR_CONTRACT_ADDRESS_KEY = "validatorcontractaddress"; diff --git a/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueBlockInterface.java b/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueBlockInterface.java index 75c5998c8ab..accfb89455c 100644 --- a/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueBlockInterface.java +++ b/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueBlockInterface.java @@ -35,6 +35,7 @@ public class CliqueBlockInterface implements BlockInterface { /** The constant ADD_NONCE. */ public static final long ADD_NONCE = 0xFFFFFFFFFFFFFFFFL; + /** The constant DROP_NONCE. */ public static final long DROP_NONCE = 0x0L; diff --git a/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueExtraData.java b/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueExtraData.java index bc8d096cf8f..f49df0066f1 100644 --- a/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueExtraData.java +++ b/consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/CliqueExtraData.java @@ -39,6 +39,7 @@ */ public class CliqueExtraData implements ParsedExtraData { private static final Logger LOG = LoggerFactory.getLogger(CliqueExtraData.class); + /** The constant EXTRA_VANITY_LENGTH. */ public static final int EXTRA_VANITY_LENGTH = 32; diff --git a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/Vote.java b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/Vote.java index 7b9bbc2f1ec..ebf795defd7 100644 --- a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/Vote.java +++ b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/Vote.java @@ -29,6 +29,7 @@ public class Vote { /** The constant ADD_BYTE_VALUE. */ public static final byte ADD_BYTE_VALUE = (byte) 0xFF; + /** The constant DROP_BYTE_VALUE. */ public static final byte DROP_BYTE_VALUE = (byte) 0x0L; diff --git a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftBlockCreatorFactory.java b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftBlockCreatorFactory.java index 52e913f95e0..3da85c616fa 100644 --- a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftBlockCreatorFactory.java +++ b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftBlockCreatorFactory.java @@ -52,16 +52,21 @@ public class BftBlockCreatorFactory { /** The Forks schedule. */ protected final ForksSchedule forksSchedule; + /** The Mining parameters */ protected final MiningParameters miningParameters; private final TransactionPool transactionPool; + /** The Protocol context. */ protected final ProtocolContext protocolContext; + /** The Protocol schedule. */ protected final ProtocolSchedule protocolSchedule; + /** The Bft extra data codec. */ protected final BftExtraDataCodec bftExtraDataCodec; + /** The scheduler for asynchronous block creation tasks */ protected final EthScheduler ethScheduler; diff --git a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftMiningCoordinator.java b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftMiningCoordinator.java index 47542ec8ebb..e38b1548b13 100644 --- a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftMiningCoordinator.java +++ b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftMiningCoordinator.java @@ -56,6 +56,7 @@ private enum State { private final BftEventHandler eventHandler; private final BftProcessor bftProcessor; private final BftBlockCreatorFactory blockCreatorFactory; + /** The Blockchain. */ protected final Blockchain blockchain; diff --git a/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/messagedata/IbftV2.java b/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/messagedata/IbftV2.java index c8b44c1adb7..3d03521c1e1 100644 --- a/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/messagedata/IbftV2.java +++ b/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/messagedata/IbftV2.java @@ -18,10 +18,13 @@ public class IbftV2 { /** The constant PROPOSAL. */ public static final int PROPOSAL = 0; + /** The constant PREPARE. */ public static final int PREPARE = 1; + /** The constant COMMIT. */ public static final int COMMIT = 2; + /** The constant ROUND_CHANGE. */ public static final int ROUND_CHANGE = 3; diff --git a/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/protocol/IbftSubProtocol.java b/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/protocol/IbftSubProtocol.java index d21f269b1bb..5b181041b5e 100644 --- a/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/protocol/IbftSubProtocol.java +++ b/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/protocol/IbftSubProtocol.java @@ -23,6 +23,7 @@ public class IbftSubProtocol implements SubProtocol { /** The constant NAME. */ public static String NAME = "IBF"; + /** The constant IBFV1. */ public static final Capability IBFV1 = Capability.create(NAME, 1); diff --git a/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftRound.java b/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftRound.java index ec4405e0485..460213fa439 100644 --- a/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftRound.java +++ b/consensus/ibft/src/main/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftRound.java @@ -57,6 +57,7 @@ public class IbftRound { private final Subscribers observers; private final RoundState roundState; private final BlockCreator blockCreator; + /** The protocol context. */ protected final ProtocolContext protocolContext; diff --git a/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PostMergeContext.java b/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PostMergeContext.java index 33b48871f19..7398facca87 100644 --- a/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PostMergeContext.java +++ b/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PostMergeContext.java @@ -40,6 +40,7 @@ /** The Post merge context. */ public class PostMergeContext implements MergeContext { private static final Logger LOG = LoggerFactory.getLogger(PostMergeContext.class); + /** The Max blocks in progress. */ static final int MAX_BLOCKS_IN_PROGRESS = 12; diff --git a/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/TransitionContext.java b/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/TransitionContext.java index 71353edd0df..4096c73eab3 100644 --- a/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/TransitionContext.java +++ b/consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/TransitionContext.java @@ -28,6 +28,7 @@ public class TransitionContext implements MergeContext { /** The Pre merge context. */ final ConsensusContext preMergeContext; + /** The Post merge context. */ final MergeContext postMergeContext; 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 e0b0559795d..dde165e90a6 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 @@ -69,6 +69,7 @@ /** The Merge coordinator. */ public class MergeCoordinator implements MergeMiningCoordinator, BadChainListener { private static final Logger LOG = LoggerFactory.getLogger(MergeCoordinator.class); + /** * On PoS you do not need to compete with other nodes for block production, since you have an * allocated slot for that, so in this case make sense to always try to fill the block, if there @@ -79,18 +80,25 @@ public class MergeCoordinator implements MergeMiningCoordinator, BadChainListene private static final double TRY_FILL_BLOCK = 1.0; private static final long DEFAULT_TARGET_GAS_LIMIT = 30000000L; + /** The Mining parameters. */ protected final MiningParameters miningParameters; + /** The Merge block creator factory. */ protected final MergeBlockCreatorFactory mergeBlockCreatorFactory; + /** The Merge context. */ protected final MergeContext mergeContext; + /** The Protocol context. */ protected final ProtocolContext protocolContext; + /** The Block builder executor. */ protected final EthScheduler ethScheduler; + /** The Backward sync context. */ protected final BackwardSyncContext backwardSyncContext; + /** The Protocol schedule. */ protected final ProtocolSchedule protocolSchedule; @@ -866,6 +874,7 @@ boolean isBlockCreationCancelled(final PayloadIdentifier payloadId) { private static class BlockCreationTask { /** The Block creator. */ final MergeBlockCreator blockCreator; + /** The Cancelled. */ final AtomicBoolean cancelled; diff --git a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/messagedata/QbftV1.java b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/messagedata/QbftV1.java index d4ad566c939..d816d1fd907 100644 --- a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/messagedata/QbftV1.java +++ b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/messagedata/QbftV1.java @@ -18,10 +18,13 @@ public class QbftV1 { /** The constant PROPOSAL. */ public static final int PROPOSAL = 0x12; + /** The constant PREPARE. */ public static final int PREPARE = 0x13; + /** The constant COMMIT. */ public static final int COMMIT = 0x14; + /** The constant ROUND_CHANGE. */ public static final int ROUND_CHANGE = 0x15; diff --git a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/protocol/Istanbul100SubProtocol.java b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/protocol/Istanbul100SubProtocol.java index bbf242e29ea..fead60d71cf 100644 --- a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/protocol/Istanbul100SubProtocol.java +++ b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/protocol/Istanbul100SubProtocol.java @@ -23,6 +23,7 @@ public class Istanbul100SubProtocol implements SubProtocol { /** The constant NAME. */ public static String NAME = "istanbul"; + /** The constant ISTANBUL_100. */ public static final Capability ISTANBUL_100 = Capability.create(NAME, 100); diff --git a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftRound.java b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftRound.java index 5754592064b..47db570acc0 100644 --- a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftRound.java +++ b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftRound.java @@ -60,18 +60,23 @@ public class QbftRound { private static final Logger LOG = LoggerFactory.getLogger(QbftRound.class); private final Subscribers observers; + /** The Round state. */ protected final RoundState roundState; + /** The Block creator. */ protected final BlockCreator blockCreator; + /** The Protocol context. */ protected final ProtocolContext protocolContext; + /** The Protocol schedule. */ protected final ProtocolSchedule protocolSchedule; private final NodeKey nodeKey; private final MessageFactory messageFactory; // used only to create stored local msgs private final QbftMessageTransmitter transmitter; + /** The Bft extra data codec. */ protected final BftExtraDataCodec bftExtraDataCodec; diff --git a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/validator/ValidatorContractController.java b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/validator/ValidatorContractController.java index e6786a92ef1..5b561856ecf 100644 --- a/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/validator/ValidatorContractController.java +++ b/consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/validator/ValidatorContractController.java @@ -39,6 +39,7 @@ public class ValidatorContractController { /** The constant GET_VALIDATORS. */ public static final String GET_VALIDATORS = "getValidators"; + /** The constant CONTRACT_ERROR_MSG. */ public static final String CONTRACT_ERROR_MSG = "Failed validator smart contract call"; diff --git a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/AbstractSECP256.java b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/AbstractSECP256.java index 0ed5b5a5f34..27495cd97c5 100644 --- a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/AbstractSECP256.java +++ b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/AbstractSECP256.java @@ -50,11 +50,13 @@ public abstract class AbstractSECP256 implements SignatureAlgorithm { /** The Curve. */ protected final ECDomainParameters curve; + /** The Half curve order. */ protected final BigInteger halfCurveOrder; /** The Key pair generator. */ protected final KeyPairGenerator keyPairGenerator; + /** The Curve order. */ protected final BigInteger curveOrder; diff --git a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/MessageDigestFactory.java b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/MessageDigestFactory.java index 9f482d5fc74..24c13ba377c 100644 --- a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/MessageDigestFactory.java +++ b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/MessageDigestFactory.java @@ -30,10 +30,13 @@ private MessageDigestFactory() {} /** Keccak-256 */ public static final String KECCAK256_ALG = "KECCAK-256"; + /** SHA-256 */ public static final String SHA256_ALG = "SHA-256"; + /** RipeMD-160 */ public static final String RIPEMD160_ALG = "RIPEMD160"; + /** Blake2b F Function */ public static final String BLAKE2BF_ALG = "BLAKE2BF"; diff --git a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPrivateKey.java b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPrivateKey.java index 528b569b728..19966e993c4 100644 --- a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPrivateKey.java +++ b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPrivateKey.java @@ -26,6 +26,7 @@ public class SECPPrivateKey implements java.security.PrivateKey { /** Encoded Bytes */ private final Bytes32 encoded; + /** Algorithm */ private final String algorithm; diff --git a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPublicKey.java b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPublicKey.java index 94916f35853..c51eb003d5a 100644 --- a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPublicKey.java +++ b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPPublicKey.java @@ -34,6 +34,7 @@ public class SECPPublicKey implements java.security.PublicKey { /** Encoded Bytes */ private final Bytes encoded; + /** Algorithm */ private final String algorithm; diff --git a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPSignature.java b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPSignature.java index 49fc8848fd5..96f3ca6a933 100644 --- a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPSignature.java +++ b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECPSignature.java @@ -31,6 +31,7 @@ public class SECPSignature { /** The constant BYTES_REQUIRED. */ public static final int BYTES_REQUIRED = 65; + /** * The recovery id to reconstruct the public key used to create the signature. * diff --git a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/altbn128/AbstractFqp.java b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/altbn128/AbstractFqp.java index 739952cbdb8..00b9bd13b8c 100644 --- a/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/altbn128/AbstractFqp.java +++ b/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/altbn128/AbstractFqp.java @@ -32,8 +32,10 @@ public abstract class AbstractFqp implements FieldElement /** The Degree. */ protected final int degree; + /** The Modulus coefficients. */ protected final Fq[] modulusCoefficients; + /** The Coefficients. */ protected final Fq[] coefficients; diff --git a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java index 50b3cc07811..f07caf442d7 100644 --- a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java +++ b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java @@ -43,40 +43,58 @@ public class Address extends DelegatingBytes { /** The constant SHA256. */ public static final Address SHA256 = Address.precompiled(0x02); + /** The constant RIPEMD160. */ public static final Address RIPEMD160 = Address.precompiled(0x03); + /** The constant ID. */ public static final Address ID = Address.precompiled(0x04); + /** The constant MODEXP. */ public static final Address MODEXP = Address.precompiled(0x05); + /** The constant ALTBN128_ADD. */ public static final Address ALTBN128_ADD = Address.precompiled(0x06); + /** The constant ALTBN128_MUL. */ public static final Address ALTBN128_MUL = Address.precompiled(0x07); + /** The constant ALTBN128_PAIRING. */ public static final Address ALTBN128_PAIRING = Address.precompiled(0x08); + /** The constant BLAKE2B_F_COMPRESSION. */ public static final Address BLAKE2B_F_COMPRESSION = Address.precompiled(0x09); + /** The constant KZG_POINT_EVAL aka POINT_EVALUATION_PRECOMPILE_ADDRESS. */ public static final Address KZG_POINT_EVAL = Address.precompiled(0xA); + /** The constant BLS12_G1ADD. */ public static final Address BLS12_G1ADD = Address.precompiled(0xB); + /** The constant BLS12_G1MUL. */ public static final Address BLS12_G1MUL = Address.precompiled(0xC); + /** The constant BLS12_G1MULTIEXP. */ public static final Address BLS12_G1MULTIEXP = Address.precompiled(0xD); + /** The constant BLS12_G2ADD. */ public static final Address BLS12_G2ADD = Address.precompiled(0xE); + /** The constant BLS12_G2MUL. */ public static final Address BLS12_G2MUL = Address.precompiled(0xF); + /** The constant BLS12_G2MULTIEXP. */ public static final Address BLS12_G2MULTIEXP = Address.precompiled(0x10); + /** The constant BLS12_PAIRING. */ public static final Address BLS12_PAIRING = Address.precompiled(0x11); + /** The constant BLS12_MAP_FP_TO_G1. */ public static final Address BLS12_MAP_FP_TO_G1 = Address.precompiled(0x12); + /** The constant BLS12_MAP_FP2_TO_G2. */ public static final Address BLS12_MAP_FP2_TO_G2 = Address.precompiled(0x13); + /** The constant ZERO. */ public static final Address ZERO = Address.fromHexString("0x0"); diff --git a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Wei.java b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Wei.java index ee8d5ef6f74..de13c8847d4 100644 --- a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Wei.java +++ b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Wei.java @@ -195,8 +195,10 @@ enum Unit { /** The Pow. */ final int pow; + /** The Divisor. */ final double divisor; + /** The Decimals. */ final int decimals; diff --git a/enclave/src/main/java/org/hyperledger/besu/enclave/types/PrivacyGroup.java b/enclave/src/main/java/org/hyperledger/besu/enclave/types/PrivacyGroup.java index 00cf2aab1ba..cad4c7c0163 100644 --- a/enclave/src/main/java/org/hyperledger/besu/enclave/types/PrivacyGroup.java +++ b/enclave/src/main/java/org/hyperledger/besu/enclave/types/PrivacyGroup.java @@ -22,12 +22,16 @@ public class PrivacyGroup implements Serializable { /** Private Group Id */ private String privacyGroupId; + /** Name */ private String name; + /** Description */ private String description; + /** Type */ private Type type; + /** Members */ private List members; diff --git a/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/txselection/TransactionSelectionResults.java b/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/txselection/TransactionSelectionResults.java index dcbd871aaec..4c3fc43beb0 100644 --- a/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/txselection/TransactionSelectionResults.java +++ b/ethereum/blockcreation/src/main/java/org/hyperledger/besu/ethereum/blockcreation/txselection/TransactionSelectionResults.java @@ -39,6 +39,7 @@ public class TransactionSelectionResults { private final Map> transactionsByType = new EnumMap<>(TransactionType.class); private final List receipts = Lists.newArrayList(); + /** * Access to this field needs to be guarded, since it is possible to read it while another * processing thread is writing, when the selection time is over. diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/BlockBody.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/BlockBody.java index 462347a6a06..54ff30b84e0 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/BlockBody.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/BlockBody.java @@ -26,6 +26,7 @@ public class BlockBody implements org.hyperledger.besu.plugin.data.BlockBody { private static final BlockBody EMPTY = new BlockBody(Collections.emptyList(), Collections.emptyList()); + /** * Adding a new field with a corresponding root hash in the block header will require a change in * {@link org.hyperledger.besu.ethereum.eth.manager.task.GetBodiesFromPeerTask.BodyIdentifier} diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/Transaction.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/Transaction.java index 2d703752825..a373a9b6fec 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/Transaction.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/Transaction.java @@ -703,40 +703,43 @@ private static Bytes32 computeSenderRecoveryHash( final Bytes preimage = switch (transactionType) { case FRONTIER -> frontierPreimage(nonce, gasPrice, gasLimit, to, value, payload, chainId); - case EIP1559 -> eip1559Preimage( - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - gasLimit, - to, - value, - payload, - chainId, - accessList); - case BLOB -> blobPreimage( - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - maxFeePerBlobGas, - gasLimit, - to, - value, - payload, - chainId, - accessList, - versionedHashes); - case ACCESS_LIST -> accessListPreimage( - nonce, - gasPrice, - gasLimit, - to, - value, - payload, - accessList.orElseThrow( - () -> - new IllegalStateException( - "Developer error: the transaction should be guaranteed to have an access list here")), - chainId); + case EIP1559 -> + eip1559Preimage( + nonce, + maxPriorityFeePerGas, + maxFeePerGas, + gasLimit, + to, + value, + payload, + chainId, + accessList); + case BLOB -> + blobPreimage( + nonce, + maxPriorityFeePerGas, + maxFeePerGas, + maxFeePerBlobGas, + gasLimit, + to, + value, + payload, + chainId, + accessList, + versionedHashes); + case ACCESS_LIST -> + accessListPreimage( + nonce, + gasPrice, + gasLimit, + to, + value, + payload, + accessList.orElseThrow( + () -> + new IllegalStateException( + "Developer error: the transaction should be guaranteed to have an access list here")), + chainId); }; return keccak256(preimage); } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/BlockHeaderValidator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/BlockHeaderValidator.java index f9e33f267b2..fe1537905da 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/BlockHeaderValidator.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/BlockHeaderValidator.java @@ -43,20 +43,22 @@ public boolean validateHeader( final HeaderValidationMode mode) { return switch (mode) { case NONE -> true; - case LIGHT_DETACHED_ONLY -> applyRules( - header, - parent, - protocolContext, - rule -> rule.includeInLightValidation() && rule.isDetachedSupported()); - case LIGHT_SKIP_DETACHED -> applyRules( - header, - parent, - protocolContext, - rule -> rule.includeInLightValidation() && !rule.isDetachedSupported()); + case LIGHT_DETACHED_ONLY -> + applyRules( + header, + parent, + protocolContext, + rule -> rule.includeInLightValidation() && rule.isDetachedSupported()); + case LIGHT_SKIP_DETACHED -> + applyRules( + header, + parent, + protocolContext, + rule -> rule.includeInLightValidation() && !rule.isDetachedSupported()); case LIGHT -> applyRules(header, parent, protocolContext, Rule::includeInLightValidation); case DETACHED_ONLY -> applyRules(header, parent, protocolContext, Rule::isDetachedSupported); - case SKIP_DETACHED -> applyRules( - header, parent, protocolContext, rule -> !rule.isDetachedSupported()); + case SKIP_DETACHED -> + applyRules(header, parent, protocolContext, rule -> !rule.isDetachedSupported()); case FULL -> applyRules(header, parent, protocolContext, rule -> true); }; } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java index 12d0c95c91b..2059192c534 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java @@ -396,15 +396,18 @@ private void addProtocolSpec( final Function modifier) { switch (milestoneType) { - case BLOCK_NUMBER -> protocolSchedule.putBlockNumberMilestone( - blockNumberOrTimestamp, getProtocolSpec(protocolSchedule, definition, modifier)); - case TIMESTAMP -> protocolSchedule.putTimestampMilestone( - blockNumberOrTimestamp, getProtocolSpec(protocolSchedule, definition, modifier)); - default -> throw new IllegalStateException( - "Unexpected milestoneType: " - + milestoneType - + " for milestone: " - + blockNumberOrTimestamp); + case BLOCK_NUMBER -> + protocolSchedule.putBlockNumberMilestone( + blockNumberOrTimestamp, getProtocolSpec(protocolSchedule, definition, modifier)); + case TIMESTAMP -> + protocolSchedule.putTimestampMilestone( + blockNumberOrTimestamp, getProtocolSpec(protocolSchedule, definition, modifier)); + default -> + throw new IllegalStateException( + "Unexpected milestoneType: " + + milestoneType + + " for milestone: " + + blockNumberOrTimestamp); } } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolSpec.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolSpec.java index 72eaa8622ec..e2ed95f8390 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolSpec.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolSpec.java @@ -80,6 +80,7 @@ public class ProtocolSpec { private final boolean isPoS; private final boolean isReplayProtectionSupported; + /** * Creates a new protocol specification instance. * 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/diffbased/bonsai/BonsaiWorldStateProvider.java index bfd295091c3..13bd09728b2 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/diffbased/bonsai/BonsaiWorldStateProvider.java @@ -81,6 +81,7 @@ public BonsaiCachedMerkleTrieLoader getCachedMerkleTrieLoader() { private BonsaiWorldStateKeyValueStorage getWorldStateKeyValueStorage() { return (BonsaiWorldStateKeyValueStorage) worldStateKeyValueStorage; } + /** * Prepares the state healing process for a given address and location. It prepares the state * healing, including retrieving data from storage, identifying invalid slots or nodes, removing diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/worldview/ForestMutableWorldState.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/worldview/ForestMutableWorldState.java index 3dad0b04100..ae2c6392ac3 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/worldview/ForestMutableWorldState.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/forest/worldview/ForestMutableWorldState.java @@ -216,6 +216,7 @@ private Optional
getAccountTrieKeyPreimage(final Bytes32 trieKey) { return Optional.ofNullable(newAccountKeyPreimages.get(trieKey)) .or(() -> preimageStorage.getAccountTrieKeyPreimage(trieKey)); } + // An immutable class that represents an individual account as stored in // the world state's underlying merkle patricia trie. protected class WorldStateAccount implements Account { diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocolVersion.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocolVersion.java index 9e2d1184cf8..39e6596738a 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocolVersion.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocolVersion.java @@ -67,6 +67,7 @@ public class EthProtocolVersion { EthPV63.NODE_DATA, EthPV63.GET_RECEIPTS, EthPV63.RECEIPTS); + /** * eth/65 (EIP-2464, January 2020) * diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/encoding/TransactionAnnouncementDecoder.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/encoding/TransactionAnnouncementDecoder.java index 8fb89158b72..cdc1fc67fca 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/encoding/TransactionAnnouncementDecoder.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/encoding/TransactionAnnouncementDecoder.java @@ -50,6 +50,7 @@ public static Decoder getDecoder(final Capability capability) { return TransactionAnnouncementDecoder::decodeForEth66; } } + /** * Decode the list of transactions in the NewPooledTransactionHashesMessage * diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/StorageExceptionManager.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/StorageExceptionManager.java index 97d1506cf3e..7a1bb00cc45 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/StorageExceptionManager.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/StorageExceptionManager.java @@ -30,6 +30,7 @@ public final class StorageExceptionManager { private static final long ERROR_THRESHOLD = 1000; private static long retryableErrorCounter; + /** * Determines if an operation can be retried based on the error received. This method checks if * the cause of the StorageException is a RocksDBException. If it is, it retrieves the status code diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/sorter/AbstractPendingTransactionsSorter.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/sorter/AbstractPendingTransactionsSorter.java index 7ceaf1d696c..f6f352f85cd 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/sorter/AbstractPendingTransactionsSorter.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/sorter/AbstractPendingTransactionsSorter.java @@ -517,6 +517,7 @@ public String toTraceLog() { return sb.toString(); } } + /** * @param transaction to restore blobs onto * @return an optional copy of the supplied transaction, but with the BlobsWithCommitments diff --git a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/discovery/internal/PeerDiscoveryController.java b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/discovery/internal/PeerDiscoveryController.java index af3790def52..7d0eff64db7 100644 --- a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/discovery/internal/PeerDiscoveryController.java +++ b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/discovery/internal/PeerDiscoveryController.java @@ -714,6 +714,7 @@ private DiscoveryPeer resolvePeer(final DiscoveryPeer peer) { private class PeerInteractionState implements Predicate { private static final int MAX_RETRIES = 5; + /** * The action that led to the peer being in this state (e.g. sending a PING or NEIGHBORS * message), in case it needs to be retried. @@ -721,12 +722,15 @@ private class PeerInteractionState implements Predicate { private final Consumer action; private final Bytes peerId; + /** The expected type of the message that will transition the peer out of this state. */ private final PacketType expectedType; private final Counter retryCounter; + /** A custom filter to accept transitions out of this state. */ private Predicate filter; + /** Timers associated with this entry. */ private OptionalLong timerId = OptionalLong.empty(); diff --git a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/P2PNetwork.java b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/P2PNetwork.java index 268801c9dc0..36ccd494354 100644 --- a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/P2PNetwork.java +++ b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/P2PNetwork.java @@ -88,6 +88,7 @@ default int getPeerCount() { void subscribeConnect(final ConnectCallback callback); void subscribeConnectRequest(final ShouldConnectCallback callback); + /** * Subscribe a {@link Consumer} to all incoming new Peer disconnect events. * diff --git a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/ProtocolManager.java b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/ProtocolManager.java index f87847a488d..603464d6900 100644 --- a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/ProtocolManager.java +++ b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/network/ProtocolManager.java @@ -67,6 +67,7 @@ public interface ProtocolManager extends AutoCloseable { * @return true, if the ProtocolManager wants to connect to the peer, false otherwise */ boolean shouldConnect(Peer peer, final boolean incoming); + /** * Handles peer disconnects. * diff --git a/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPOutput.java b/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPOutput.java index 140e60d9d24..e871eeca95f 100644 --- a/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPOutput.java +++ b/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPOutput.java @@ -80,6 +80,7 @@ public interface RLPOutput { default void writeUInt64Scalar(final UInt64Value v) { writeBytes(v.toBytes().trimLeadingZeros()); } + /** * Writes a scalar (encoded with no leading zeroes). * diff --git a/ethereum/trie/src/main/java/org/hyperledger/besu/ethereum/trie/MerkleTrie.java b/ethereum/trie/src/main/java/org/hyperledger/besu/ethereum/trie/MerkleTrie.java index ede4fac6460..645445e9bf9 100644 --- a/ethereum/trie/src/main/java/org/hyperledger/besu/ethereum/trie/MerkleTrie.java +++ b/ethereum/trie/src/main/java/org/hyperledger/besu/ethereum/trie/MerkleTrie.java @@ -75,6 +75,7 @@ public interface MerkleTrie { * @param value The value to associate the key with. */ void putPath(K path, V value); + /** * Updates the value mapped to the specified key, creating the mapping if one does not already * exist. diff --git a/evm/src/main/java/org/hyperledger/besu/evm/EVM.java b/evm/src/main/java/org/hyperledger/besu/evm/EVM.java index 4ce73ef9cc6..38501ebf29f 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/EVM.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/EVM.java @@ -230,73 +230,77 @@ public void runToHalt(final MessageFrame frame, final OperationTracer tracing) { case 0x56 -> JumpOperation.staticOperation(frame); case 0x57 -> JumpiOperation.staticOperation(frame); case 0x5b -> JumpDestOperation.JUMPDEST_SUCCESS; - case 0x5f -> enableShanghai - ? Push0Operation.staticOperation(frame) - : InvalidOperation.INVALID_RESULT; + case 0x5f -> + enableShanghai + ? Push0Operation.staticOperation(frame) + : InvalidOperation.INVALID_RESULT; case 0x60, // PUSH1-32 - 0x61, - 0x62, - 0x63, - 0x64, - 0x65, - 0x66, - 0x67, - 0x68, - 0x69, - 0x6a, - 0x6b, - 0x6c, - 0x6d, - 0x6e, - 0x6f, - 0x70, - 0x71, - 0x72, - 0x73, - 0x74, - 0x75, - 0x76, - 0x77, - 0x78, - 0x79, - 0x7a, - 0x7b, - 0x7c, - 0x7d, - 0x7e, - 0x7f -> PushOperation.staticOperation(frame, code, pc, opcode - PUSH_BASE); + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f -> + PushOperation.staticOperation(frame, code, pc, opcode - PUSH_BASE); case 0x80, // DUP1-16 - 0x81, - 0x82, - 0x83, - 0x84, - 0x85, - 0x86, - 0x87, - 0x88, - 0x89, - 0x8a, - 0x8b, - 0x8c, - 0x8d, - 0x8e, - 0x8f -> DupOperation.staticOperation(frame, opcode - DupOperation.DUP_BASE); + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f -> + DupOperation.staticOperation(frame, opcode - DupOperation.DUP_BASE); case 0x90, // SWAP1-16 - 0x91, - 0x92, - 0x93, - 0x94, - 0x95, - 0x96, - 0x97, - 0x98, - 0x99, - 0x9a, - 0x9b, - 0x9c, - 0x9d, - 0x9e, - 0x9f -> SwapOperation.staticOperation(frame, opcode - SWAP_BASE); + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f -> + SwapOperation.staticOperation(frame, opcode - SWAP_BASE); default -> { // unoptimized operations frame.setCurrentOperation(currentOperation); yield currentOperation.execute(frame, this); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/EvmSpecVersion.java b/evm/src/main/java/org/hyperledger/besu/evm/EvmSpecVersion.java index 2ac4ca96d19..329349e1e43 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/EvmSpecVersion.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/EvmSpecVersion.java @@ -64,11 +64,13 @@ public enum EvmSpecVersion { /** The Spec finalized. */ final boolean specFinalized; + /** The Max eof version. */ final int maxEofVersion; /** Public name matching execution-spec-tests name */ final String name; + /** A brief description of the state of the fork */ final String description; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/MainnetEVMs.java b/evm/src/main/java/org/hyperledger/besu/evm/MainnetEVMs.java index f81bf64d0c7..7387ddaba2a 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/MainnetEVMs.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/MainnetEVMs.java @@ -134,6 +134,7 @@ public class MainnetEVMs { /** The constant SPURIOUS_DRAGON_CONTRACT_SIZE_LIMIT. */ public static final int SPURIOUS_DRAGON_CONTRACT_SIZE_LIMIT = 0x6000; + /** The constant SHANGHAI_INIT_CODE_SIZE_LIMIT. */ public static final int SHANGHAI_INIT_CODE_SIZE_LIMIT = 2 * SPURIOUS_DRAGON_CONTRACT_SIZE_LIMIT; @@ -806,6 +807,7 @@ public static void registerShanghaiOperations( public static EVM cancun(final EvmConfiguration evmConfiguration) { return cancun(DEV_NET_CHAIN_ID, evmConfiguration); } + /** * Cancun evm. * @@ -889,6 +891,7 @@ public static void registerCancunOperations( public static EVM prague(final EvmConfiguration evmConfiguration) { return prague(DEV_NET_CHAIN_ID, evmConfiguration); } + /** * Prague evm. * @@ -956,6 +959,7 @@ public static void registerPragueOperations( public static EVM osaka(final EvmConfiguration evmConfiguration) { return osaka(DEV_NET_CHAIN_ID, evmConfiguration); } + /** * Osaka evm. * @@ -1023,6 +1027,7 @@ public static void registerOsakaOperations( public static EVM bogota(final EvmConfiguration evmConfiguration) { return bogota(DEV_NET_CHAIN_ID, evmConfiguration); } + /** * Bogota evm. * diff --git a/evm/src/main/java/org/hyperledger/besu/evm/account/Account.java b/evm/src/main/java/org/hyperledger/besu/evm/account/Account.java index d57a1093f20..2283cc2a829 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/account/Account.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/account/Account.java @@ -28,8 +28,10 @@ public interface Account extends AccountState { /** The constant DEFAULT_NONCE. */ long DEFAULT_NONCE = 0L; + /** The constant MAX_NONCE. */ long MAX_NONCE = -1; // per twos compliment rules -1 will be the unsigned max number + /** The constant DEFAULT_BALANCE. */ Wei DEFAULT_BALANCE = Wei.ZERO; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/code/CodeSection.java b/evm/src/main/java/org/hyperledger/besu/evm/code/CodeSection.java index 6eacd9447fd..0ae6f7509fb 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/code/CodeSection.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/code/CodeSection.java @@ -25,12 +25,16 @@ public final class CodeSection { /** The length. */ final int length; + /** The Inputs. */ final int inputs; + /** The Outputs. */ final int outputs; + /** The Max stack height. */ final int maxStackHeight; + /** The byte offset from the beginning of the container that the section starts at */ final int entryPoint; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/code/EOFLayout.java b/evm/src/main/java/org/hyperledger/besu/evm/code/EOFLayout.java index 92016829a8d..236b0d41ded 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/code/EOFLayout.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/code/EOFLayout.java @@ -25,10 +25,13 @@ public class EOFLayout { /** The Section Terminator. */ static final int SECTION_TERMINATOR = 0x00; + /** The Section types. */ static final int SECTION_TYPES = 0x01; + /** The Section code. */ static final int SECTION_CODE = 0x02; + /** The Section data. */ static final int SECTION_DATA = 0x03; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleWorld.java b/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleWorld.java index a9295568a68..3f17f1e3b9f 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleWorld.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleWorld.java @@ -31,6 +31,7 @@ public class SimpleWorld implements WorldUpdater { /** The Parent. */ SimpleWorld parent; + /** The Accounts. */ Map accounts = new HashMap<>(); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/frame/ExceptionalHaltReason.java b/evm/src/main/java/org/hyperledger/besu/evm/frame/ExceptionalHaltReason.java index 06c10b9c025..c39df00b6b1 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/frame/ExceptionalHaltReason.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/frame/ExceptionalHaltReason.java @@ -19,42 +19,57 @@ public interface ExceptionalHaltReason { /** The constant NONE. */ ExceptionalHaltReason NONE = DefaultExceptionalHaltReason.NONE; + /** The constant INSUFFICIENT_GAS. */ ExceptionalHaltReason INSUFFICIENT_GAS = DefaultExceptionalHaltReason.INSUFFICIENT_GAS; + /** The constant INSUFFICIENT_STACK_ITEMS. */ ExceptionalHaltReason INSUFFICIENT_STACK_ITEMS = DefaultExceptionalHaltReason.INSUFFICIENT_STACK_ITEMS; + /** The constant INVALID_JUMP_DESTINATION. */ ExceptionalHaltReason INVALID_JUMP_DESTINATION = DefaultExceptionalHaltReason.INVALID_JUMP_DESTINATION; + /** The constant INVALID_OPERATION. */ ExceptionalHaltReason INVALID_OPERATION = DefaultExceptionalHaltReason.INVALID_OPERATION; + /** The constant INVALID_RETURN_DATA_BUFFER_ACCESS. */ ExceptionalHaltReason INVALID_RETURN_DATA_BUFFER_ACCESS = DefaultExceptionalHaltReason.INVALID_RETURN_DATA_BUFFER_ACCESS; + /** The constant TOO_MANY_STACK_ITEMS. */ ExceptionalHaltReason TOO_MANY_STACK_ITEMS = DefaultExceptionalHaltReason.TOO_MANY_STACK_ITEMS; + /** The constant ILLEGAL_STATE_CHANGE. */ ExceptionalHaltReason ILLEGAL_STATE_CHANGE = DefaultExceptionalHaltReason.ILLEGAL_STATE_CHANGE; + /** The constant OUT_OF_BOUNDS. */ ExceptionalHaltReason OUT_OF_BOUNDS = DefaultExceptionalHaltReason.OUT_OF_BOUNDS; + /** The constant CODE_TOO_LARGE. */ ExceptionalHaltReason CODE_TOO_LARGE = DefaultExceptionalHaltReason.CODE_TOO_LARGE; + /** The constant INVALID_CODE. */ ExceptionalHaltReason INVALID_CODE = DefaultExceptionalHaltReason.INVALID_CODE; + /** The constant PRECOMPILE_ERROR. */ ExceptionalHaltReason PRECOMPILE_ERROR = DefaultExceptionalHaltReason.PRECOMPILE_ERROR; /** The constant CODE_SECTION_MISSING. */ ExceptionalHaltReason CODE_SECTION_MISSING = DefaultExceptionalHaltReason.CODE_SECTION_MISSING; + /** The constant INCORRECT_CODE_SECTION_RETURN_OUTPUTS. */ ExceptionalHaltReason INCORRECT_CODE_SECTION_RETURN_OUTPUTS = DefaultExceptionalHaltReason.INCORRECT_CODE_SECTION_RETURN_OUTPUTS; + /** The constant TOO_FEW_INPUTS_FOR_CODE_SECTION. */ ExceptionalHaltReason TOO_FEW_INPUTS_FOR_CODE_SECTION = DefaultExceptionalHaltReason.TOO_FEW_INPUTS_FOR_CODE_SECTION; + /** The constant JUMPF_STACK_MISMATCH. */ ExceptionalHaltReason JUMPF_STACK_MISMATCH = DefaultExceptionalHaltReason.JUMPF_STACK_MISMATCH; + /** The constant EOF_CREATE_VERSION_INCOMPATIBLE. */ ExceptionalHaltReason EOF_CREATE_VERSION_INCOMPATIBLE = DefaultExceptionalHaltReason.EOF_CREATE_VERSION_INCOMPATIBLE; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/frame/MessageFrame.java b/evm/src/main/java/org/hyperledger/besu/evm/frame/MessageFrame.java index f8e9d3d6121..e203649557e 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/frame/MessageFrame.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/frame/MessageFrame.java @@ -944,6 +944,7 @@ public Set
getSelfDestructs() { public void addCreate(final Address address) { txValues.creates().add(address); } + /** * Add addresses to the create set if they are not already present. * @@ -1118,6 +1119,7 @@ public int getMessageStackSize() { public int getDepth() { return getMessageStackSize() - 1; } + /** * Returns the recipient that originated the message. * diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/PetersburgGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/PetersburgGasCalculator.java index df5dd960ff3..62f43e82573 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/PetersburgGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/PetersburgGasCalculator.java @@ -28,8 +28,10 @@ public class PetersburgGasCalculator extends ConstantinopleGasCalculator { /** Same as {#link {@link FrontierGasCalculator#STORAGE_SET_GAS_COST} */ private static final long STORAGE_SET_GAS_COST = 20_000L; + /** Same as {#link {@link FrontierGasCalculator#STORAGE_RESET_GAS_COST} */ private static final long STORAGE_RESET_GAS_COST = 5_000L; + /** Same as {#link {@link FrontierGasCalculator#STORAGE_RESET_REFUND_AMOUNT} */ private static final long STORAGE_RESET_REFUND_AMOUNT = 15_000L; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ShanghaiGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ShanghaiGasCalculator.java index e3c8c43928c..68a0415eb0e 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ShanghaiGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ShanghaiGasCalculator.java @@ -1,4 +1,5 @@ package org.hyperledger.besu.evm.gascalculator; + /* * Copyright contributors to Hyperledger Besu. * diff --git a/evm/src/main/java/org/hyperledger/besu/evm/internal/ReturnStack.java b/evm/src/main/java/org/hyperledger/besu/evm/internal/ReturnStack.java index 565f9c8cdcf..5c0906c628c 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/internal/ReturnStack.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/internal/ReturnStack.java @@ -25,8 +25,10 @@ public static final class ReturnStackItem { /** The Code section index. */ final int codeSectionIndex; + /** The Pc. */ final int pc; + /** The Stack height. */ final int stackHeight; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/AbstractFixedCostOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/AbstractFixedCostOperation.java index 30a7b79305e..5a5ecd53008 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/AbstractFixedCostOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/AbstractFixedCostOperation.java @@ -28,11 +28,13 @@ abstract class AbstractFixedCostOperation extends AbstractOperation { /** The Success response. */ protected final OperationResult successResponse; + /** The Out of gas response. */ protected final OperationResult outOfGasResponse; private final OperationResult underflowResponse; private final OperationResult overflowResponse; + /** The Gas cost. */ protected final long gasCost; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/CallFOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/CallFOperation.java index 998d8a2e923..c9b51e88b17 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/CallFOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/CallFOperation.java @@ -25,6 +25,7 @@ public class CallFOperation extends AbstractOperation { /** The constant OPCODE. */ public static final int OPCODE = 0xe3; + /** The Call F success. */ static final OperationResult callfSuccess = new OperationResult(5, null); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/DupOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/DupOperation.java index be5eec56677..d0b44c917cd 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/DupOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/DupOperation.java @@ -24,8 +24,10 @@ public class DupOperation extends AbstractFixedCostOperation { /** The constant DUP_BASE. */ public static final int DUP_BASE = 0x7F; + /** The Dup success operation result. */ static final OperationResult dupSuccess = new OperationResult(3, null); + /** The Underflow response. */ protected final Operation.OperationResult underflowResponse; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/InvalidOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/InvalidOperation.java index adb6b1bc4aa..b7ca197d0d3 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/InvalidOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/InvalidOperation.java @@ -24,9 +24,11 @@ public class InvalidOperation extends AbstractOperation { /** The constant OPCODE. */ public static final int OPCODE = 0xFE; + /** The constant INVALID_RESULT. */ public static final OperationResult INVALID_RESULT = new OperationResult(0, ExceptionalHaltReason.INVALID_OPERATION); + /** The Invalid operation result. */ protected final OperationResult invalidResult; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/JumpFOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/JumpFOperation.java index 612d70fb16c..c0abcaffce5 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/JumpFOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/JumpFOperation.java @@ -25,6 +25,7 @@ public class JumpFOperation extends AbstractOperation { /** The constant OPCODE. */ public static final int OPCODE = 0xe5; + /** The Jump F success operation result. */ static final OperationResult jumpfSuccess = new OperationResult(3, null); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/Operation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/Operation.java index 4a926fd1efd..23c8673694d 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/Operation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/Operation.java @@ -25,8 +25,10 @@ public interface Operation { class OperationResult { /** The Gas cost. */ final long gasCost; + /** The Halt reason. */ final ExceptionalHaltReason haltReason; + /** The increment. */ final int pcIncrement; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/PushOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/PushOperation.java index af107d994de..006956207b3 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/PushOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/PushOperation.java @@ -25,6 +25,7 @@ public class PushOperation extends AbstractFixedCostOperation { /** The constant PUSH_BASE. */ public static final int PUSH_BASE = 0x5F; + /** The constant PUSH_MAX. */ public static final int PUSH_MAX = 0x7F; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/RetFOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/RetFOperation.java index 3f40081bc06..763a21d2a4a 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/RetFOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/RetFOperation.java @@ -23,6 +23,7 @@ public class RetFOperation extends AbstractOperation { /** The Opcode. */ public static final int OPCODE = 0xe4; + /** The Ret F success. */ static final OperationResult retfSuccess = new OperationResult(3, null); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/ReturnDataCopyOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/ReturnDataCopyOperation.java index c2cb651cf60..c7c69149db7 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/ReturnDataCopyOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/ReturnDataCopyOperation.java @@ -29,6 +29,7 @@ public class ReturnDataCopyOperation extends AbstractOperation { /** The constant INVALID_RETURN_DATA_BUFFER_ACCESS. */ protected static final OperationResult INVALID_RETURN_DATA_BUFFER_ACCESS = new OperationResult(0L, ExceptionalHaltReason.INVALID_RETURN_DATA_BUFFER_ACCESS); + /** The constant OUT_OF_BOUNDS. */ protected static final OperationResult OUT_OF_BOUNDS = new OperationResult(0L, ExceptionalHaltReason.OUT_OF_BOUNDS); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/SStoreOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/SStoreOperation.java index d5055e0bd81..1c3c9e086a3 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/SStoreOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/SStoreOperation.java @@ -31,6 +31,7 @@ public class SStoreOperation extends AbstractOperation { /** The constant FRONTIER_MINIMUM. */ public static final long FRONTIER_MINIMUM = 0L; + /** The constant EIP_1706_MINIMUM. */ public static final long EIP_1706_MINIMUM = 2300L; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/operation/SwapOperation.java b/evm/src/main/java/org/hyperledger/besu/evm/operation/SwapOperation.java index bcb11bd9b8c..12a389dcc5c 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/operation/SwapOperation.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/operation/SwapOperation.java @@ -26,10 +26,12 @@ public class SwapOperation extends AbstractFixedCostOperation { /** The constant SWAP_BASE. */ public static final int SWAP_BASE = 0x8F; + /** The Swap operation success result. */ static final OperationResult swapSuccess = new OperationResult(3, null); private final int index; + /** The operation result due to underflow. */ protected final Operation.OperationResult underflowResponse; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/AltBN128PairingPrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AltBN128PairingPrecompiledContract.java index 992544d5c0e..82496d4e31c 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/precompile/AltBN128PairingPrecompiledContract.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AltBN128PairingPrecompiledContract.java @@ -43,6 +43,7 @@ public class AltBN128PairingPrecompiledContract extends AbstractAltBnPrecompiled /** The constant FALSE. */ static final Bytes FALSE = Bytes.fromHexString("0x0000000000000000000000000000000000000000000000000000000000000000"); + /** The constant TRUE. */ public static final Bytes TRUE = Bytes.fromHexString("0x0000000000000000000000000000000000000000000000000000000000000001"); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/ECRECPrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/ECRECPrecompiledContract.java index d3944f08a5e..94920abca06 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/precompile/ECRECPrecompiledContract.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/ECRECPrecompiledContract.java @@ -36,6 +36,7 @@ public class ECRECPrecompiledContract extends AbstractPrecompiledContract { private static final int V_BASE = 27; final SignatureAlgorithm signatureAlgorithm; + /** * Instantiates a new ECREC precompiled contract with the default signature algorithm. * diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 7a0805fccef..05d30d60617 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -850,6 +850,14 @@ + + + + + + + + @@ -868,6 +876,11 @@ + + + + + diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/BesuMetricCategory.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/BesuMetricCategory.java index 27be3ff9321..d419a6ac7c5 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/BesuMetricCategory.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/BesuMetricCategory.java @@ -56,6 +56,7 @@ public enum BesuMetricCategory implements MetricCategory { STRATUM("stratum"); private static final Optional BESU_PREFIX = Optional.of("besu_"); + /** The constant DEFAULT_METRIC_CATEGORIES. */ public static final Set DEFAULT_METRIC_CATEGORIES; diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/RunnableCounter.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/RunnableCounter.java index a942bcf3826..1ae4bbb6927 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/RunnableCounter.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/RunnableCounter.java @@ -23,10 +23,13 @@ public class RunnableCounter implements Counter { /** The Backed counter. */ protected final Counter backedCounter; + /** The Task. */ protected final Runnable task; + /** The Step. */ protected final int step; + /** The Step counter. */ protected final AtomicLong stepCounter; diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpMetricsSystem.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpMetricsSystem.java index 54ccc70d33e..adb91ed8873 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpMetricsSystem.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpMetricsSystem.java @@ -36,31 +36,39 @@ public class NoOpMetricsSystem implements ObservableMetricsSystem { /** The constant NO_OP_COUNTER. */ public static final Counter NO_OP_COUNTER = new NoOpCounter(); + /** The constant NO_OP_GAUGE. */ public static final LabelledGauge NO_OP_GAUGE = new NoOpValueCollector(); private static final OperationTimer.TimingContext NO_OP_TIMING_CONTEXT = () -> 0; + /** The constant NO_OP_OPERATION_TIMER. */ public static final OperationTimer NO_OP_OPERATION_TIMER = () -> NO_OP_TIMING_CONTEXT; /** The constant NO_OP_LABELLED_1_COUNTER. */ public static final LabelledMetric NO_OP_LABELLED_1_COUNTER = new LabelCountingNoOpMetric<>(1, NO_OP_COUNTER); + /** The constant NO_OP_LABELLED_2_COUNTER. */ public static final LabelledMetric NO_OP_LABELLED_2_COUNTER = new LabelCountingNoOpMetric<>(2, NO_OP_COUNTER); + /** The constant NO_OP_LABELLED_3_COUNTER. */ public static final LabelledMetric NO_OP_LABELLED_3_COUNTER = new LabelCountingNoOpMetric<>(3, NO_OP_COUNTER); + /** The constant NO_OP_LABELLED_1_OPERATION_TIMER. */ public static final LabelledMetric NO_OP_LABELLED_1_OPERATION_TIMER = new LabelCountingNoOpMetric<>(1, NO_OP_OPERATION_TIMER); + /** The constant NO_OP_LABELLED_1_GAUGE. */ public static final LabelledGauge NO_OP_LABELLED_1_GAUGE = new LabelledGaugeNoOpMetric(1, NO_OP_GAUGE); + /** The constant NO_OP_LABELLED_2_GAUGE. */ public static final LabelledGauge NO_OP_LABELLED_2_GAUGE = new LabelledGaugeNoOpMetric(2, NO_OP_GAUGE); + /** The constant NO_OP_LABELLED_3_GAUGE. */ public static final LabelledGauge NO_OP_LABELLED_3_GAUGE = new LabelledGaugeNoOpMetric(3, NO_OP_GAUGE); @@ -176,6 +184,7 @@ public static class LabelCountingNoOpMetric implements LabelledMetric { /** The Label count. */ final int labelCount; + /** The Fake metric. */ final T fakeMetric; @@ -203,6 +212,7 @@ public T labels(final String... labels) { public static class LabelledGaugeNoOpMetric implements LabelledGauge { /** The Label count. */ final int labelCount; + /** The Label values cache. */ final List labelValuesCache = new ArrayList<>(); diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/prometheus/MetricsConfiguration.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/prometheus/MetricsConfiguration.java index 6a2424df50a..a0e96f5921d 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/prometheus/MetricsConfiguration.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/prometheus/MetricsConfiguration.java @@ -31,15 +31,19 @@ /** The Metrics configuration. */ public class MetricsConfiguration { private static final String DEFAULT_METRICS_HOST = "127.0.0.1"; + /** The constant DEFAULT_METRICS_PORT. */ public static final int DEFAULT_METRICS_PORT = 9545; private static final MetricsProtocol DEFAULT_METRICS_PROTOCOL = MetricsProtocol.PROMETHEUS; private static final String DEFAULT_METRICS_PUSH_HOST = "127.0.0.1"; + /** The constant DEFAULT_METRICS_PUSH_PORT. */ public static final int DEFAULT_METRICS_PUSH_PORT = 9001; + /** The constant DEFAULT_METRICS_TIMERS_ENABLED. */ public static final Boolean DEFAULT_METRICS_TIMERS_ENABLED = true; + /** The constant DEFAULT_METRICS_IDLE_TIMEOUT_SECONDS. */ public static final int DEFAULT_METRICS_IDLE_TIMEOUT_SECONDS = 60; diff --git a/metrics/rocksdb/src/main/java/org/hyperledger/besu/metrics/rocksdb/RocksDBStats.java b/metrics/rocksdb/src/main/java/org/hyperledger/besu/metrics/rocksdb/RocksDBStats.java index c8a0cb89ba9..e919364d420 100644 --- a/metrics/rocksdb/src/main/java/org/hyperledger/besu/metrics/rocksdb/RocksDBStats.java +++ b/metrics/rocksdb/src/main/java/org/hyperledger/besu/metrics/rocksdb/RocksDBStats.java @@ -35,10 +35,13 @@ public class RocksDBStats { /** The Labels. */ static final List LABELS = Collections.singletonList("quantile"); + /** The Label 50. */ static final List LABEL_50 = Collections.singletonList("0.5"); + /** The Label 95. */ static final List LABEL_95 = Collections.singletonList("0.95"); + /** The Label 99. */ static final List LABEL_99 = Collections.singletonList("0.99"); diff --git a/pki/src/main/java/org/hyperledger/besu/pki/cms/CmsCreator.java b/pki/src/main/java/org/hyperledger/besu/pki/cms/CmsCreator.java index 57bc78908e3..088bf2eaed6 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/cms/CmsCreator.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/cms/CmsCreator.java @@ -134,8 +134,9 @@ public static String getPreferredSignatureAlgorithm(final PublicKey pub) { case "RSA" -> { return "SHA256WithRSAEncryption"; } - default -> throw new UnsupportedOperationException( - "Private key algorithm not supported: " + pub.getAlgorithm()); + default -> + throw new UnsupportedOperationException( + "Private key algorithm not supported: " + pub.getAlgorithm()); } } } diff --git a/pki/src/main/java/org/hyperledger/besu/pki/config/PkiKeyStoreConfiguration.java b/pki/src/main/java/org/hyperledger/besu/pki/config/PkiKeyStoreConfiguration.java index 57e330558cc..83ce80f0e4d 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/config/PkiKeyStoreConfiguration.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/config/PkiKeyStoreConfiguration.java @@ -29,6 +29,7 @@ public class PkiKeyStoreConfiguration { /** The constant DEFAULT_KEYSTORE_TYPE. */ public static String DEFAULT_KEYSTORE_TYPE = "PKCS12"; + /** The constant DEFAULT_CERTIFICATE_ALIAS. */ public static String DEFAULT_CERTIFICATE_ALIAS = "validator"; diff --git a/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java b/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java index 36e2390e1b4..d9a5f199fc8 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java @@ -26,8 +26,10 @@ public interface KeyStoreWrapper { /** The constant KEYSTORE_TYPE_JKS. */ String KEYSTORE_TYPE_JKS = "JKS"; + /** The constant KEYSTORE_TYPE_PKCS11. */ String KEYSTORE_TYPE_PKCS11 = "PKCS11"; + /** The constant KEYSTORE_TYPE_PKCS12. */ String KEYSTORE_TYPE_PKCS12 = "PKCS12"; diff --git a/plugin-api/build.gradle b/plugin-api/build.gradle index ea352273b5a..e76b43f18a3 100644 --- a/plugin-api/build.gradle +++ b/plugin-api/build.gradle @@ -69,7 +69,7 @@ Calculated : ${currentHash} tasks.register('checkAPIChanges', FileStateChecker) { description = "Checks that the API for the Plugin-API project does not change without deliberate thought" files = sourceSets.main.allJava.files - knownHash = 'T98TztTmKMLspdRDLKxOTH5nTxFiVijRgNN2twZu3OY=' + knownHash = 'lsBecdCyK9rIi5FIjURF2uPwKzXgqHCayMcLyOOl4fE=' } check.dependsOn('checkAPIChanges') diff --git a/plugin-api/src/main/java/org/hyperledger/besu/plugin/data/TransactionSelectionResult.java b/plugin-api/src/main/java/org/hyperledger/besu/plugin/data/TransactionSelectionResult.java index 5c037983d79..91dc7b14a67 100644 --- a/plugin-api/src/main/java/org/hyperledger/besu/plugin/data/TransactionSelectionResult.java +++ b/plugin-api/src/main/java/org/hyperledger/besu/plugin/data/TransactionSelectionResult.java @@ -92,33 +92,40 @@ public boolean discard() { /** The transaction has been selected to be included in the new block */ public static final TransactionSelectionResult SELECTED = new TransactionSelectionResult(BaseStatus.SELECTED); + /** The transaction has not been selected since the block is full. */ public static final TransactionSelectionResult BLOCK_FULL = new TransactionSelectionResult(BaseStatus.BLOCK_FULL); + /** There was no more time to add transaction to the block */ public static final TransactionSelectionResult BLOCK_SELECTION_TIMEOUT = new TransactionSelectionResult(BaseStatus.BLOCK_SELECTION_TIMEOUT); + /** Transaction took too much to evaluate */ public static final TransactionSelectionResult TX_EVALUATION_TOO_LONG = new TransactionSelectionResult(BaseStatus.TX_EVALUATION_TOO_LONG); + /** * The transaction has not been selected since too large and the occupancy of the block is enough * to stop the selection. */ public static final TransactionSelectionResult BLOCK_OCCUPANCY_ABOVE_THRESHOLD = new TransactionSelectionResult(BaseStatus.BLOCK_OCCUPANCY_ABOVE_THRESHOLD); + /** * The transaction has not been selected since its gas limit is greater than the block remaining * gas, but the selection should continue. */ public static final TransactionSelectionResult TX_TOO_LARGE_FOR_REMAINING_GAS = TransactionSelectionResult.invalidTransient("TX_TOO_LARGE_FOR_REMAINING_GAS"); + /** * The transaction has not been selected since its current price is below the configured min * price, but the selection should continue. */ public static final TransactionSelectionResult CURRENT_TX_PRICE_BELOW_MIN = TransactionSelectionResult.invalidTransient("CURRENT_TX_PRICE_BELOW_MIN"); + /** * The transaction has not been selected since its blob price is below the current network blob * price, but the selection should continue. diff --git a/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/exception/PluginRpcEndpointException.java b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/exception/PluginRpcEndpointException.java index b9cb8d71e8c..4ac1c96a146 100644 --- a/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/exception/PluginRpcEndpointException.java +++ b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/exception/PluginRpcEndpointException.java @@ -20,6 +20,7 @@ public class PluginRpcEndpointException extends RuntimeException { /** The error */ private final RpcMethodError rpcMethodError; + /** The data associated with the exception */ private final String data; diff --git a/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/trielogs/TrieLog.java b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/trielogs/TrieLog.java index 9bfe505fb1c..e9d80759755 100644 --- a/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/trielogs/TrieLog.java +++ b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/trielogs/TrieLog.java @@ -127,6 +127,7 @@ Optional getStorageByStorageSlotKey( * Optional */ Optional getPriorAccount(final Address address); + /** * Gets the account value for a specific address, if available. * diff --git a/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/txselection/PluginTransactionSelector.java b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/txselection/PluginTransactionSelector.java index c323f6071c7..4f3d6c45367 100644 --- a/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/txselection/PluginTransactionSelector.java +++ b/plugin-api/src/main/java/org/hyperledger/besu/plugin/services/txselection/PluginTransactionSelector.java @@ -84,6 +84,7 @@ TransactionSelectionResult evaluateTransactionPostProcessing( default void onTransactionSelected( final TransactionEvaluationContext evaluationContext, final TransactionProcessingResult processingResult) {} + /** * Method called when a transaction is not selected to be added to a block. * diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/BaseVersionedStorageFormat.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/BaseVersionedStorageFormat.java index 474d5e99201..481e433ca26 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/BaseVersionedStorageFormat.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/BaseVersionedStorageFormat.java @@ -63,12 +63,14 @@ public enum BaseVersionedStorageFormat implements VersionedStorageFormat { public static BaseVersionedStorageFormat defaultForNewDB( final DataStorageConfiguration configuration) { return switch (configuration.getDatabaseFormat()) { - case FOREST -> configuration.getReceiptCompactionEnabled() - ? FOREST_WITH_RECEIPT_COMPACTION - : FOREST_WITH_VARIABLES; - case BONSAI -> configuration.getReceiptCompactionEnabled() - ? BONSAI_WITH_RECEIPT_COMPACTION - : BONSAI_WITH_VARIABLES; + case FOREST -> + configuration.getReceiptCompactionEnabled() + ? FOREST_WITH_RECEIPT_COMPACTION + : FOREST_WITH_VARIABLES; + case BONSAI -> + configuration.getReceiptCompactionEnabled() + ? BONSAI_WITH_RECEIPT_COMPACTION + : BONSAI_WITH_VARIABLES; }; } diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/DatabaseMetadata.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/DatabaseMetadata.java index c9cdd4b8bc9..46dbb9e7403 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/DatabaseMetadata.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/DatabaseMetadata.java @@ -168,13 +168,15 @@ private static DatabaseMetadata tryReadAndMigrateV1(final File metadataFile) thr } else { versionedStorageFormat = switch (v1.privacyVersion().getAsInt()) { - case 1 -> switch (v1.version()) { - case 1 -> PrivacyVersionedStorageFormat.FOREST_WITH_VARIABLES; - case 2 -> PrivacyVersionedStorageFormat.BONSAI_WITH_VARIABLES; - default -> throw new StorageException("Unsupported db version: " + v1.version()); - }; - default -> throw new StorageException( - "Unsupported db privacy version: " + v1.privacyVersion().getAsInt()); + case 1 -> + switch (v1.version()) { + case 1 -> PrivacyVersionedStorageFormat.FOREST_WITH_VARIABLES; + case 2 -> PrivacyVersionedStorageFormat.BONSAI_WITH_VARIABLES; + default -> throw new StorageException("Unsupported db version: " + v1.version()); + }; + default -> + throw new StorageException( + "Unsupported db privacy version: " + v1.privacyVersion().getAsInt()); }; } @@ -227,22 +229,26 @@ private static VersionedStorageFormat fromV2(final MetadataV2 metadataV2) { public DatabaseMetadata upgradeToPrivacy() { return new DatabaseMetadata( switch (versionedStorageFormat.getFormat()) { - case FOREST -> switch (versionedStorageFormat.getVersion()) { - case 1 -> PrivacyVersionedStorageFormat.FOREST_ORIGINAL; - case 2 -> PrivacyVersionedStorageFormat.FOREST_WITH_VARIABLES; - case 3 -> PrivacyVersionedStorageFormat.FOREST_WITH_RECEIPT_COMPACTION; - default -> throw new StorageException( - "Unsupported database with format FOREST and version " - + versionedStorageFormat.getVersion()); - }; - case BONSAI -> switch (versionedStorageFormat.getVersion()) { - case 1 -> PrivacyVersionedStorageFormat.BONSAI_ORIGINAL; - case 2 -> PrivacyVersionedStorageFormat.BONSAI_WITH_VARIABLES; - case 3 -> PrivacyVersionedStorageFormat.BONSAI_WITH_RECEIPT_COMPACTION; - default -> throw new StorageException( - "Unsupported database with format BONSAI and version " - + versionedStorageFormat.getVersion()); - }; + case FOREST -> + switch (versionedStorageFormat.getVersion()) { + case 1 -> PrivacyVersionedStorageFormat.FOREST_ORIGINAL; + case 2 -> PrivacyVersionedStorageFormat.FOREST_WITH_VARIABLES; + case 3 -> PrivacyVersionedStorageFormat.FOREST_WITH_RECEIPT_COMPACTION; + default -> + throw new StorageException( + "Unsupported database with format FOREST and version " + + versionedStorageFormat.getVersion()); + }; + case BONSAI -> + switch (versionedStorageFormat.getVersion()) { + case 1 -> PrivacyVersionedStorageFormat.BONSAI_ORIGINAL; + case 2 -> PrivacyVersionedStorageFormat.BONSAI_WITH_VARIABLES; + case 3 -> PrivacyVersionedStorageFormat.BONSAI_WITH_RECEIPT_COMPACTION; + default -> + throw new StorageException( + "Unsupported database with format BONSAI and version " + + versionedStorageFormat.getVersion()); + }; }); } diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/PrivacyVersionedStorageFormat.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/PrivacyVersionedStorageFormat.java index a883516f6a6..7a7887b57d7 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/PrivacyVersionedStorageFormat.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/PrivacyVersionedStorageFormat.java @@ -64,12 +64,14 @@ public enum PrivacyVersionedStorageFormat implements VersionedStorageFormat { public static VersionedStorageFormat defaultForNewDB( final DataStorageConfiguration configuration) { return switch (configuration.getDatabaseFormat()) { - case FOREST -> configuration.getReceiptCompactionEnabled() - ? FOREST_WITH_RECEIPT_COMPACTION - : FOREST_WITH_VARIABLES; - case BONSAI -> configuration.getReceiptCompactionEnabled() - ? BONSAI_WITH_RECEIPT_COMPACTION - : BONSAI_WITH_VARIABLES; + case FOREST -> + configuration.getReceiptCompactionEnabled() + ? FOREST_WITH_RECEIPT_COMPACTION + : FOREST_WITH_VARIABLES; + case BONSAI -> + configuration.getReceiptCompactionEnabled() + ? BONSAI_WITH_RECEIPT_COMPACTION + : BONSAI_WITH_VARIABLES; }; } diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBCLIOptions.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBCLIOptions.java index df7dcc4b5f6..76b136eebea 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBCLIOptions.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBCLIOptions.java @@ -22,21 +22,26 @@ public class RocksDBCLIOptions { /** The constant DEFAULT_MAX_OPEN_FILES. */ public static final int DEFAULT_MAX_OPEN_FILES = 1024; + /** The constant DEFAULT_CACHE_CAPACITY. */ public static final long DEFAULT_CACHE_CAPACITY = 134217728; /** The constant DEFAULT_BACKGROUND_THREAD_COUNT. */ public static final int DEFAULT_BACKGROUND_THREAD_COUNT = 4; + /** The constant DEFAULT_IS_HIGH_SPEC. */ public static final boolean DEFAULT_IS_HIGH_SPEC = false; /** The constant MAX_OPEN_FILES_FLAG. */ public static final String MAX_OPEN_FILES_FLAG = "--Xplugin-rocksdb-max-open-files"; + /** The constant CACHE_CAPACITY_FLAG. */ public static final String CACHE_CAPACITY_FLAG = "--Xplugin-rocksdb-cache-capacity"; + /** The constant BACKGROUND_THREAD_COUNT_FLAG. */ public static final String BACKGROUND_THREAD_COUNT_FLAG = "--Xplugin-rocksdb-background-thread-count"; + /** The constant IS_HIGH_SPEC. */ public static final String IS_HIGH_SPEC = "--Xplugin-rocksdb-high-spec-enabled"; diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBColumnarKeyValueStorage.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBColumnarKeyValueStorage.java index 5db32b4bc90..bee7cf50010 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBColumnarKeyValueStorage.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBColumnarKeyValueStorage.java @@ -72,16 +72,22 @@ public abstract class RocksDBColumnarKeyValueStorage implements SegmentedKeyValu private static final Logger LOG = LoggerFactory.getLogger(RocksDBColumnarKeyValueStorage.class); private static final int ROCKSDB_FORMAT_VERSION = 5; private static final long ROCKSDB_BLOCK_SIZE = 32768; + /** RocksDb blockcache size when using the high spec option */ protected static final long ROCKSDB_BLOCKCACHE_SIZE_HIGH_SPEC = 1_073_741_824L; + /** RocksDb memtable size when using the high spec option */ protected static final long ROCKSDB_MEMTABLE_SIZE_HIGH_SPEC = 536_870_912L; + /** Max total size of all WAL file, after which a flush is triggered */ protected static final long WAL_MAX_TOTAL_SIZE = 1_073_741_824L; + /** Expected size of a single WAL file, to determine how many WAL files to keep around */ protected static final long EXPECTED_WAL_FILE_SIZE = 67_108_864L; + /** RocksDb number of log files to keep on disk */ private static final long NUMBER_OF_LOG_FILES_TO_KEEP = 7; + /** RocksDb Time to roll a log file (1 day = 3600 * 24 seconds) */ private static final long TIME_TO_ROLL_LOG_FILE = 86_400L; @@ -98,11 +104,13 @@ public abstract class RocksDBColumnarKeyValueStorage implements SegmentedKeyValu private final MetricsSystem metricsSystem; private final RocksDBMetricsFactory rocksDBMetricsFactory; private final RocksDBConfiguration configuration; + /** RocksDB DB options */ protected DBOptions options; /** RocksDb transactionDB options */ protected TransactionDBOptions txOptions; + /** RocksDb statistics */ protected final Statistics stats = new Statistics(); @@ -111,8 +119,10 @@ public abstract class RocksDBColumnarKeyValueStorage implements SegmentedKeyValu /** Map of the columns handles by name */ protected Map columnHandlesBySegmentIdentifier; + /** Column descriptors */ protected List columnDescriptors; + /** Column handles */ protected List columnHandles; diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBSnapshotTransaction.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBSnapshotTransaction.java index ad3438d381b..938e4c4d712 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBSnapshotTransaction.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/segmented/RocksDBSnapshotTransaction.java @@ -179,6 +179,7 @@ public Stream streamKeys(final SegmentIdentifier segmentId) { rocksIterator.seekToFirst(); return RocksDbIterator.create(rocksIterator).toStreamKeys(); } + /** * Returns a stream of key-value pairs starting from the specified key. This method is used to * retrieve a stream of data reading through the transaction, starting from the given key. If no diff --git a/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedInMemoryKeyValueStorage.java b/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedInMemoryKeyValueStorage.java index 0467449523a..98fc3859589 100644 --- a/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedInMemoryKeyValueStorage.java +++ b/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedInMemoryKeyValueStorage.java @@ -286,6 +286,7 @@ public class SegmentedInMemoryTransaction implements SegmentedKeyValueStorageTra /** protected access to updatedValues map for the transaction. */ protected Map>> updatedValues = new HashMap<>(); + /** protected access to deletedValues set for the transaction. */ protected Map> removedKeys = new HashMap<>(); diff --git a/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedKeyValueStorageAdapter.java b/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedKeyValueStorageAdapter.java index 404689be420..28c2d4c7964 100644 --- a/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedKeyValueStorageAdapter.java +++ b/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/SegmentedKeyValueStorageAdapter.java @@ -36,6 +36,7 @@ public class SegmentedKeyValueStorageAdapter implements KeyValueStorage { private static final Logger LOG = LoggerFactory.getLogger(SegmentedKeyValueStorageAdapter.class); private final SegmentIdentifier segmentIdentifier; + /** The storage to wrap. */ protected final SegmentedKeyValueStorage storage; diff --git a/services/tasks/src/main/java/org/hyperledger/besu/services/tasks/CachingTaskCollection.java b/services/tasks/src/main/java/org/hyperledger/besu/services/tasks/CachingTaskCollection.java index 586ab62a2ae..106d818c39d 100644 --- a/services/tasks/src/main/java/org/hyperledger/besu/services/tasks/CachingTaskCollection.java +++ b/services/tasks/src/main/java/org/hyperledger/besu/services/tasks/CachingTaskCollection.java @@ -34,10 +34,12 @@ public class CachingTaskCollection implements TaskCollection { // The underlying collection private final TaskCollection wrappedCollection; + /** * A cache of tasks to operate on before going to {@link CachingTaskCollection#wrappedCollection} */ private final Queue> cache = new ArrayDeque<>(); + // Tasks that have been removed, but not marked completed yet private final Set> outstandingTasks = new HashSet<>(); diff --git a/testutil/src/main/java/org/hyperledger/besu/testutil/BlockTestUtil.java b/testutil/src/main/java/org/hyperledger/besu/testutil/BlockTestUtil.java index d2909a84f3b..9f31283bfcf 100644 --- a/testutil/src/main/java/org/hyperledger/besu/testutil/BlockTestUtil.java +++ b/testutil/src/main/java/org/hyperledger/besu/testutil/BlockTestUtil.java @@ -146,6 +146,7 @@ public static ChainResources getOutdatedForkResources() { public static ChainResources getUpgradedForkResources() { return forkUpgradedSupplier.get(); } + /** * Gets Eth Ref Test resources. * diff --git a/testutil/src/main/java/org/hyperledger/besu/testutil/DeterministicEthScheduler.java b/testutil/src/main/java/org/hyperledger/besu/testutil/DeterministicEthScheduler.java index 6959816a128..14728aeaf7d 100644 --- a/testutil/src/main/java/org/hyperledger/besu/testutil/DeterministicEthScheduler.java +++ b/testutil/src/main/java/org/hyperledger/besu/testutil/DeterministicEthScheduler.java @@ -139,6 +139,7 @@ public void failAfterTimeout(final CompletableFuture promise, final Durat public interface TimeoutPolicy { /** A policy that never timeouts */ TimeoutPolicy NEVER_TIMEOUT = () -> false; + /** A policy that timeouts on every task */ TimeoutPolicy ALWAYS_TIMEOUT = () -> true; diff --git a/testutil/src/main/java/org/hyperledger/besu/testutil/JsonTestParameters.java b/testutil/src/main/java/org/hyperledger/besu/testutil/JsonTestParameters.java index 93519d1c41d..942a04d29ba 100644 --- a/testutil/src/main/java/org/hyperledger/besu/testutil/JsonTestParameters.java +++ b/testutil/src/main/java/org/hyperledger/besu/testutil/JsonTestParameters.java @@ -132,6 +132,7 @@ public interface Generator { // The type to which the json file is directly mapped private final Class jsonFileMappedType; + // The final type of the test case spec, which may or may not not be same than jsonFileMappedType // Note that we don't really use this field as of now, but as this is the actual type of the final // spec used by tests, it feels "right" to have it passed explicitly at construction and having it diff --git a/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarness.java b/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarness.java index b7e19126453..f27224fa1d5 100644 --- a/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarness.java +++ b/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarness.java @@ -55,6 +55,7 @@ public class TesseraTestHarness implements EnclaveTestHarness { private final int thirdPartyPort = 9081; private final int q2TPort = 9082; + /** The constant p2pPort. */ public static final int p2pPort = 9001; diff --git a/util/src/main/java/org/hyperledger/besu/util/NetworkUtility.java b/util/src/main/java/org/hyperledger/besu/util/NetworkUtility.java index 8a3e3252c71..3851b3fe099 100644 --- a/util/src/main/java/org/hyperledger/besu/util/NetworkUtility.java +++ b/util/src/main/java/org/hyperledger/besu/util/NetworkUtility.java @@ -35,14 +35,19 @@ public class NetworkUtility { /** The constant INADDR_ANY. */ public static final String INADDR_ANY = "0.0.0.0"; + /** The constant INADDR_NONE. */ public static final String INADDR_NONE = "255.255.255.255"; + /** The constant INADDR6_ANY. */ public static final String INADDR6_ANY = "0:0:0:0:0:0:0:0"; + /** The constant INADDR6_NONE. */ public static final String INADDR6_NONE = "::"; + /** The constant INADDR_LOCALHOST. */ public static final String INADDR_LOCALHOST = "127.0.0.1"; + /** The constant INADDR6_LOCALHOST. */ public static final String INADDR6_LOCALHOST = "::1";