diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/EthPeer.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/EthPeer.java index 4ea10ef96e5..41db20bb07f 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/EthPeer.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/EthPeer.java @@ -215,7 +215,7 @@ public void recordRequestTimeout(final int requestCode) { .addArgument(this::getLoggableId) .log(); LOG.trace("Timed out while waiting for response from peer {}", this); - reputation.recordRequestTimeout(requestCode).ifPresent(this::disconnect); + reputation.recordRequestTimeout(requestCode, this).ifPresent(this::disconnect); } public void recordUselessResponse(final String requestType) { @@ -224,7 +224,7 @@ public void recordUselessResponse(final String requestType) { .addArgument(requestType) .addArgument(this::getLoggableId) .log(); - reputation.recordUselessResponse(System.currentTimeMillis()).ifPresent(this::disconnect); + reputation.recordUselessResponse(System.currentTimeMillis(), this).ifPresent(this::disconnect); } public void recordUsefulResponse() { diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputation.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputation.java index 8a1a7b8839f..8f601ed9005 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputation.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputation.java @@ -62,13 +62,15 @@ public PeerReputation(final int initialScore, final int maxScore) { this.score = initialScore; } - public Optional recordRequestTimeout(final int requestCode) { + public Optional recordRequestTimeout( + final int requestCode, final EthPeer peer) { final int newTimeoutCount = getOrCreateTimeoutCount(requestCode).incrementAndGet(); if (newTimeoutCount >= TIMEOUT_THRESHOLD) { LOG.debug( - "Disconnection triggered by {} repeated timeouts for requestCode {}", + "Disconnection triggered by {} repeated timeouts for requestCode {} for peer {}", newTimeoutCount, - requestCode); + requestCode, + peer.getLoggableId()); score -= LARGE_ADJUSTMENT; return Optional.of(DisconnectReason.TIMEOUT); } else { @@ -89,14 +91,17 @@ public Map timeoutCounts() { return timeoutCountByRequestType; } - public Optional recordUselessResponse(final long timestamp) { + public Optional recordUselessResponse( + final long timestamp, final EthPeer peer) { uselessResponseTimes.add(timestamp); while (shouldRemove(uselessResponseTimes.peek(), timestamp)) { uselessResponseTimes.poll(); } if (uselessResponseTimes.size() >= USELESS_RESPONSE_THRESHOLD) { score -= LARGE_ADJUSTMENT; - LOG.debug("Disconnection triggered by exceeding useless response threshold"); + LOG.debug( + "Disconnection triggered by exceeding useless response threshold for peer {}", + peer.getLoggableId()); return Optional.of(DisconnectReason.USELESS_PEER_USELESS_RESPONSES); } else { score -= SMALL_ADJUSTMENT; diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/RequestDataStep.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/RequestDataStep.java index f11914fd6b0..5fec76994fd 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/RequestDataStep.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/RequestDataStep.java @@ -105,6 +105,14 @@ public CompletableFuture> requestAccount( accountDataRequest.addResponse( worldStateProofProvider, response.accounts(), response.proofs()); } + if (error != null) { + LOG.atDebug() + .setMessage("Error handling account download accounts ({} - {}) task: {}") + .addArgument(accountDataRequest.getStartKeyHash()) + .addArgument(accountDataRequest.getEndKeyHash()) + .addArgument(error) + .log(); + } return requestTask; }); } @@ -167,6 +175,12 @@ public CompletableFuture>> requestStorage( LOG.error("Error while processing storage range response", e); } } + if (error != null) { + LOG.atDebug() + .setMessage("Error handling storage range request task: {}") + .addArgument(error) + .log(); + } return requestTasks; }); } @@ -200,6 +214,12 @@ public CompletableFuture>> requestCode( } } } + if (error != null) { + LOG.atDebug() + .setMessage("Error handling code request task: {}") + .addArgument(error) + .log(); + } return requestTasks; }); } @@ -240,6 +260,12 @@ public CompletableFuture>> requestTrieNodeByPath( } } } + if (error != null) { + LOG.atDebug() + .setMessage("Error handling trie node request task: {}") + .addArgument(error) + .log(); + } return requestTasks; }); } diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionsMessageSender.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionsMessageSender.java index eb0eb538e4b..1173fce69a8 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionsMessageSender.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/TransactionsMessageSender.java @@ -52,11 +52,13 @@ void sendTransactionsToPeer(final EthPeer peer) { LOG.atTrace() .setMessage( "Sending transactions to peer {} all transactions count {}, " - + "single message transactions {}, single message list {}") + + "single message transactions {}, single message list {}, transactions {}, AgreedCapabilities {}") .addArgument(peer) .addArgument(allTxToSend::size) .addArgument(includedTransactions::size) .addArgument(() -> toHashList(includedTransactions)) + .addArgument(() -> includedTransactions) + .addArgument(peer::getAgreedCapabilities) .log(); allTxToSend.removeAll(limitedTransactionsMessages.getIncludedTransactions()); try { diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputationTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputationTest.java index 99d94414716..1387461f7f6 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputationTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/manager/PeerReputationTest.java @@ -17,6 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.hyperledger.besu.ethereum.p2p.rlpx.wire.messages.DisconnectMessage.DisconnectReason.TIMEOUT; import static org.hyperledger.besu.ethereum.p2p.rlpx.wire.messages.DisconnectMessage.DisconnectReason.USELESS_PEER_USELESS_RESPONSES; +import static org.mockito.Mockito.mock; import org.hyperledger.besu.ethereum.eth.messages.EthPV62; @@ -28,6 +29,7 @@ public class PeerReputationTest { private static final int INITIAL_SCORE = 25; private static final int MAX_SCORE = 50; private final PeerReputation reputation = new PeerReputation(INITIAL_SCORE, MAX_SCORE); + private final EthPeer mockEthPeer = mock(EthPeer.class); @Test public void shouldThrowOnInvalidInitialScore() { @@ -37,7 +39,8 @@ public void shouldThrowOnInvalidInitialScore() { @Test public void shouldOnlyDisconnectWhenTimeoutLimitReached() { sendRequestTimeouts(EthPV62.GET_BLOCK_HEADERS, PeerReputation.TIMEOUT_THRESHOLD - 1); - assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_HEADERS)).contains(TIMEOUT); + assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_HEADERS, mockEthPeer)) + .contains(TIMEOUT); } @Test @@ -45,8 +48,10 @@ public void shouldTrackTimeoutsSeparatelyForDifferentRequestTypes() { sendRequestTimeouts(EthPV62.GET_BLOCK_HEADERS, PeerReputation.TIMEOUT_THRESHOLD - 1); sendRequestTimeouts(EthPV62.GET_BLOCK_BODIES, PeerReputation.TIMEOUT_THRESHOLD - 1); - assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_HEADERS)).contains(TIMEOUT); - assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_BODIES)).contains(TIMEOUT); + assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_HEADERS, mockEthPeer)) + .contains(TIMEOUT); + assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_BODIES, mockEthPeer)) + .contains(TIMEOUT); } @Test @@ -55,14 +60,16 @@ public void shouldResetTimeoutCountForRequestType() { sendRequestTimeouts(EthPV62.GET_BLOCK_BODIES, PeerReputation.TIMEOUT_THRESHOLD - 1); reputation.resetTimeoutCount(EthPV62.GET_BLOCK_HEADERS); - assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_HEADERS)).isEmpty(); - assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_BODIES)).contains(TIMEOUT); + assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_HEADERS, mockEthPeer)).isEmpty(); + assertThat(reputation.recordRequestTimeout(EthPV62.GET_BLOCK_BODIES, mockEthPeer)) + .contains(TIMEOUT); } @Test public void shouldOnlyDisconnectWhenEmptyResponseThresholdReached() { sendUselessResponses(1001, PeerReputation.USELESS_RESPONSE_THRESHOLD - 1); - assertThat(reputation.recordUselessResponse(1005)).contains(USELESS_PEER_USELESS_RESPONSES); + assertThat(reputation.recordUselessResponse(1005, mockEthPeer)) + .contains(USELESS_PEER_USELESS_RESPONSES); } @Test @@ -73,7 +80,7 @@ public void shouldDiscardEmptyResponseRecordsAfterTimeWindowElapses() { // But then the next empty response doesn't come in until after the window expires on the first assertThat( reputation.recordUselessResponse( - 1001 + PeerReputation.USELESS_RESPONSE_WINDOW_IN_MILLIS + 1)) + 1001 + PeerReputation.USELESS_RESPONSE_WINDOW_IN_MILLIS + 1, mockEthPeer)) .isEmpty(); } @@ -93,13 +100,13 @@ public void shouldNotIncreaseScoreOverMax() { private void sendRequestTimeouts(final int requestType, final int repeatCount) { for (int i = 0; i < repeatCount; i++) { - assertThat(reputation.recordRequestTimeout(requestType)).isEmpty(); + assertThat(reputation.recordRequestTimeout(requestType, mockEthPeer)).isEmpty(); } } private void sendUselessResponses(final long timestamp, final int repeatCount) { for (int i = 0; i < repeatCount; i++) { - assertThat(reputation.recordUselessResponse(timestamp + i)).isEmpty(); + assertThat(reputation.recordUselessResponse(timestamp + i, mockEthPeer)).isEmpty(); } } } diff --git a/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoMap.java b/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoMap.java index 8b5da7c98f2..89359ac796c 100644 --- a/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoMap.java +++ b/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoMap.java @@ -31,7 +31,8 @@ * increases the global mark, so a mark set in once collection is usable across all * UndoableCollection instances. * - * @param The type of the collection. + * @param The type of the keys maintained by this map. + * @param The type of mapped values. */ public class UndoMap implements Map, Undoable { diff --git a/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoNavigableMap.java b/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoNavigableMap.java index 1378a9d5dbc..fb268d43f8b 100644 --- a/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoNavigableMap.java +++ b/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoNavigableMap.java @@ -27,7 +27,8 @@ * increases the global mark, so a mark set in once collection is usable across all * UndoableCollection instances. * - * @param The type of the collection. + * @param The type of the keys maintained by this map. + * @param The type of mapped values. */ public class UndoNavigableMap extends UndoMap implements NavigableMap { diff --git a/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoTable.java b/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoTable.java index 327cf9819d0..967cd14f7a3 100644 --- a/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoTable.java +++ b/evm/src/main/java/org/hyperledger/besu/collections/undo/UndoTable.java @@ -34,7 +34,9 @@ * increases the global mark, so a mark set in once collection is usable across all * UndoableCollection instances. * - * @param The type of the collection. + * @param the type of the table row keys + * @param the type of the table column keys + * @param the type of the mapped values */ public class UndoTable implements Table, Undoable { diff --git a/evm/src/main/java/org/hyperledger/besu/evm/ClassicEVMs.java b/evm/src/main/java/org/hyperledger/besu/evm/ClassicEVMs.java index 97cd40dfd5c..7cd02bbf65a 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/ClassicEVMs.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/ClassicEVMs.java @@ -28,6 +28,8 @@ /** Provides EVMs supporting the appropriate operations for ETC network upgrades. */ public class ClassicEVMs { + /** Default constructor. */ + private ClassicEVMs() {} /** * spiral evm. diff --git a/evm/src/main/java/org/hyperledger/besu/evm/contractvalidation/PrefixCodeRule.java b/evm/src/main/java/org/hyperledger/besu/evm/contractvalidation/PrefixCodeRule.java index d6be76d599a..b596786bacf 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/contractvalidation/PrefixCodeRule.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/contractvalidation/PrefixCodeRule.java @@ -30,6 +30,9 @@ public class PrefixCodeRule implements ContractValidationRule { private static final byte FORMAT_RESERVED = (byte) 0xEF; + /** Default constructor. */ + public PrefixCodeRule() {} + @Override // As per https://eips.ethereum.org/EIPS/eip-3541 public Optional validate( diff --git a/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleBlockValues.java b/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleBlockValues.java index e4d44b86042..edd4f174807 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleBlockValues.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/fluent/SimpleBlockValues.java @@ -32,6 +32,9 @@ public class SimpleBlockValues implements BlockValues { long timestamp = 1; long gasLimit = Long.MAX_VALUE; + /** Default constructor. */ + public SimpleBlockValues() {} + @Override public Bytes getDifficultyBytes() { return difficultyBytes; 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 8673640d0fc..36a84e4ba4e 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 @@ -1428,6 +1428,9 @@ public static class Builder { private Optional> versionedHashes = Optional.empty(); + /** Instantiates a new Builder. */ + public Builder() {} + /** * The "parent" message frame. When present some fields will be populated from the parent and * ignored if passed in via builder diff --git a/evm/src/main/java/org/hyperledger/besu/evm/frame/TxValues.java b/evm/src/main/java/org/hyperledger/besu/evm/frame/TxValues.java index 5089dc607a9..4ab416d6e2c 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/frame/TxValues.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/frame/TxValues.java @@ -33,6 +33,22 @@ * Transaction Values used by various EVM Opcodes. These are the values that either do not change or * the backing stores whose changes transcend message frames and are not part of state, such as * transient storage and address warming. + * + * @param blockHashLookup The block hash lookup function + * @param maxStackSize The maximum stack size + * @param warmedUpAddresses The warmed up addresses + * @param warmedUpStorage The warmed up storage + * @param originator The originator address + * @param gasPrice The gas price + * @param blobGasPrice The blob gas price + * @param blockValues The block values + * @param messageFrameStack The message frame stack + * @param miningBeneficiary The mining beneficiary address + * @param versionedHashes The optional list of versioned hashes + * @param transientStorage The transient storage + * @param creates The set of addresses that creates + * @param selfDestructs The set of addresses that self-destructs + * @param gasRefunds The gas refunds */ public record TxValues( Function blockHashLookup, diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ByzantiumGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ByzantiumGasCalculator.java index bc17bdf81d1..55f113943ed 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ByzantiumGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ByzantiumGasCalculator.java @@ -33,6 +33,9 @@ public class ByzantiumGasCalculator extends SpuriousDragonGasCalculator { /** The constant MAX_FIRST_EXPONENT_BYTES. */ public static final int MAX_FIRST_EXPONENT_BYTES = 32; + /** Default constructor. */ + public ByzantiumGasCalculator() {} + @Override public long modExpGasCost(final Bytes input) { final long baseLength = BigIntegerModularExponentiationPrecompiledContract.baseLength(input); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ConstantinopleGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ConstantinopleGasCalculator.java index c252d7ed433..759847aba92 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ConstantinopleGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/ConstantinopleGasCalculator.java @@ -37,6 +37,9 @@ public class ConstantinopleGasCalculator extends ByzantiumGasCalculator { private static final long EXTCODE_HASH_COST = 400L; + /** Default constructor. */ + public ConstantinopleGasCalculator() {} + /** * Returns the amount of gas the CREATE2 operation will consume. * diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/DieHardGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/DieHardGasCalculator.java index 4dfc52a7982..4cff31490e6 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/DieHardGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/DieHardGasCalculator.java @@ -18,6 +18,9 @@ public class DieHardGasCalculator extends TangerineWhistleGasCalculator { private static final long EXP_OPERATION_BYTE_GAS_COST = 50L; + /** Default constructor. */ + public DieHardGasCalculator() {} + @Override protected long expOperationByteGasCost() { return EXP_OPERATION_BYTE_GAS_COST; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/FrontierGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/FrontierGasCalculator.java index 09ea7c29e18..616acd1eb8c 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/FrontierGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/FrontierGasCalculator.java @@ -120,6 +120,9 @@ public class FrontierGasCalculator implements GasCalculator { private static final long SELF_DESTRUCT_REFUND_AMOUNT = 24_000L; + /** Default constructor. */ + public FrontierGasCalculator() {} + @Override public long transactionIntrinsicGasCost(final Bytes payload, final boolean isContractCreate) { int zeros = 0; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/HomesteadGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/HomesteadGasCalculator.java index d3c8d30abf4..d0268f58eba 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/HomesteadGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/HomesteadGasCalculator.java @@ -19,6 +19,9 @@ public class HomesteadGasCalculator extends FrontierGasCalculator { private static final long TX_CREATE_EXTRA = 32_000L; + /** Default constructor. */ + public HomesteadGasCalculator() {} + @Override protected long txCreateExtraGasCost() { return TX_CREATE_EXTRA; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/IstanbulGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/IstanbulGasCalculator.java index 62fb0db4aa2..a997f7fe16e 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/IstanbulGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/IstanbulGasCalculator.java @@ -38,6 +38,9 @@ public class IstanbulGasCalculator extends PetersburgGasCalculator { private static final long SSTORE_RESET_GAS_LESS_SLOAD_GAS = SSTORE_RESET_GAS - SLOAD_GAS; private static final long NEGATIVE_SSTORE_CLEARS_SCHEDULE = -SSTORE_CLEARS_SCHEDULE; + /** Default constructor. */ + public IstanbulGasCalculator() {} + @Override public long transactionIntrinsicGasCost(final Bytes payload, final boolean isContractCreation) { int zeros = 0; 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 62f43e82573..e499e7be480 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 @@ -35,6 +35,9 @@ public class PetersburgGasCalculator extends ConstantinopleGasCalculator { /** Same as {#link {@link FrontierGasCalculator#STORAGE_RESET_REFUND_AMOUNT} */ private static final long STORAGE_RESET_REFUND_AMOUNT = 15_000L; + /** Default constructor. */ + public PetersburgGasCalculator() {} + /** * Same as {#link {@link FrontierGasCalculator#calculateStorageCost(UInt256, Supplier, Supplier)} */ diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/SpuriousDragonGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/SpuriousDragonGasCalculator.java index 7f3c18fb85a..f8e20c9c078 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/SpuriousDragonGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/SpuriousDragonGasCalculator.java @@ -26,6 +26,9 @@ public class SpuriousDragonGasCalculator extends TangerineWhistleGasCalculator { private static final long EXP_OPERATION_BYTE_GAS_COST = 50L; + /** Default constructor. */ + public SpuriousDragonGasCalculator() {} + @Override public long callOperationGasCost( final MessageFrame frame, diff --git a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/TangerineWhistleGasCalculator.java b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/TangerineWhistleGasCalculator.java index 997c01a60fa..cdcab74d38c 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/TangerineWhistleGasCalculator.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/gascalculator/TangerineWhistleGasCalculator.java @@ -37,6 +37,9 @@ public class TangerineWhistleGasCalculator extends HomesteadGasCalculator { private static final long SLOAD_OPERATION_GAS_COST = 200L; + /** Default constructor. */ + public TangerineWhistleGasCalculator() {} + @Override public long getBalanceOperationGasCost() { return BALANCE_OPERATION_GAS_COST; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/internal/EvmConfiguration.java b/evm/src/main/java/org/hyperledger/besu/evm/internal/EvmConfiguration.java index 0a1c7a9c6ba..1264076537b 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/internal/EvmConfiguration.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/internal/EvmConfiguration.java @@ -14,7 +14,12 @@ */ package org.hyperledger.besu.evm.internal; -/** The Evm configuration. */ +/** + * The type Evm configuration. + * + * @param jumpDestCacheWeightKB the jump destination cache weight in kb + * @param worldUpdaterMode the world updater mode + */ public record EvmConfiguration(long jumpDestCacheWeightKB, WorldUpdaterMode worldUpdaterMode) { /** How should the world state update be handled within transactions? */ diff --git a/evm/src/main/java/org/hyperledger/besu/evm/internal/OverflowException.java b/evm/src/main/java/org/hyperledger/besu/evm/internal/OverflowException.java index 9b2b8228b82..0621bbc3244 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/internal/OverflowException.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/internal/OverflowException.java @@ -21,6 +21,9 @@ */ public class OverflowException extends RuntimeException { + /** Default constructor. */ + public OverflowException() {} + /** * Overload the stack trace fill in so no stack is filled in. This is done for performance reasons * as this exception signals an expected corner case not a debuggable failure. diff --git a/evm/src/main/java/org/hyperledger/besu/evm/internal/UnderflowException.java b/evm/src/main/java/org/hyperledger/besu/evm/internal/UnderflowException.java index 97fe4ad0c2c..9f102690e8d 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/internal/UnderflowException.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/internal/UnderflowException.java @@ -20,6 +20,8 @@ * failure but instead an expected edge case the EVM should handle. */ public class UnderflowException extends RuntimeException { + /** Default constructor. */ + public UnderflowException() {} /** * Overload the stack trace fill in so no stack is filled in. This is done for performance reasons diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/KZGPointEvalPrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/KZGPointEvalPrecompiledContract.java index b88f614c440..2428da2dc2a 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/precompile/KZGPointEvalPrecompiledContract.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/KZGPointEvalPrecompiledContract.java @@ -89,6 +89,9 @@ public static void tearDown() { loaded.set(false); } + /** Default constructor. */ + public KZGPointEvalPrecompiledContract() {} + @Override public String getName() { return "KZGPointEval"; diff --git a/evm/src/main/java/org/hyperledger/besu/evm/tracing/AccessListOperationTracer.java b/evm/src/main/java/org/hyperledger/besu/evm/tracing/AccessListOperationTracer.java index bce1f3c4da9..20b2db47cb3 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/tracing/AccessListOperationTracer.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/tracing/AccessListOperationTracer.java @@ -30,6 +30,11 @@ public class AccessListOperationTracer extends EstimateGasOperationTracer { private Table warmedUpStorage; + /** Default constructor. */ + private AccessListOperationTracer() { + super(); + } + @Override public void tracePostExecution(final MessageFrame frame, final OperationResult operationResult) { super.tracePostExecution(frame, operationResult); diff --git a/evm/src/main/java/org/hyperledger/besu/evm/tracing/EstimateGasOperationTracer.java b/evm/src/main/java/org/hyperledger/besu/evm/tracing/EstimateGasOperationTracer.java index c7b11620311..ede5c1e338b 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/tracing/EstimateGasOperationTracer.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/tracing/EstimateGasOperationTracer.java @@ -25,6 +25,9 @@ public class EstimateGasOperationTracer implements OperationTracer { private long sStoreStipendNeeded = 0L; + /** Default constructor. */ + public EstimateGasOperationTracer() {} + @Override public void tracePostExecution(final MessageFrame frame, final OperationResult operationResult) { if (frame.getCurrentOperation() instanceof SStoreOperation sStoreOperation diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricCategoryRegistryImpl.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricCategoryRegistryImpl.java index 14699e7ff32..b0a31793bcc 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricCategoryRegistryImpl.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricCategoryRegistryImpl.java @@ -25,6 +25,9 @@ public class MetricCategoryRegistryImpl implements MetricCategoryRegistry { private final List metricCategories = new ArrayList<>(); + /** Default constructor */ + public MetricCategoryRegistryImpl() {} + /** * Gets metric categories. * diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsConfigurationModule.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsConfigurationModule.java index 8a197403179..3559958abae 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsConfigurationModule.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsConfigurationModule.java @@ -24,6 +24,9 @@ /** Dagger module for providing the {@link MetricsConfiguration} instance. */ @Module public class MetricsConfigurationModule { + /** Default constructor */ + public MetricsConfigurationModule() {} + @Provides @Singleton MetricsConfiguration provideMetricsConfiguration() { diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsSystemModule.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsSystemModule.java index 95b861feaa7..044085ef426 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsSystemModule.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/MetricsSystemModule.java @@ -28,6 +28,8 @@ */ @Module public class MetricsSystemModule { + /** Default constructor */ + public MetricsSystemModule() {} @Provides @Singleton 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 adb91ed8873..2b3db497b35 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 @@ -73,6 +73,9 @@ public class NoOpMetricsSystem implements ObservableMetricsSystem { public static final LabelledGauge NO_OP_LABELLED_3_GAUGE = new LabelledGaugeNoOpMetric(3, NO_OP_GAUGE); + /** Default constructor */ + public NoOpMetricsSystem() {} + @Override public LabelledMetric createLabelledCounter( final MetricCategory category, diff --git a/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpValueCollector.java b/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpValueCollector.java index 42884a92ff6..144e7f3187c 100644 --- a/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpValueCollector.java +++ b/metrics/core/src/main/java/org/hyperledger/besu/metrics/noop/NoOpValueCollector.java @@ -24,6 +24,9 @@ public class NoOpValueCollector implements LabelledGauge { private final List labelValuesCreated = new ArrayList<>(); + /** Default constructor */ + public NoOpValueCollector() {} + @Override public synchronized void labels(final DoubleSupplier valueSupplier, final String... labelValues) { final String labelValuesString = String.join(",", labelValues); 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 e919364d420..edb837985dd 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 @@ -164,6 +164,9 @@ public class RocksDBStats { HistogramType.READ_NUM_MERGE_OPERANDS, }; + /** Default constructor */ + private RocksDBStats() {} + /** * Register rocks db metrics. * diff --git a/nat/src/main/java/org/hyperledger/besu/nat/docker/DockerDetector.java b/nat/src/main/java/org/hyperledger/besu/nat/docker/DockerDetector.java index 4ac6656573c..1188759f630 100644 --- a/nat/src/main/java/org/hyperledger/besu/nat/docker/DockerDetector.java +++ b/nat/src/main/java/org/hyperledger/besu/nat/docker/DockerDetector.java @@ -25,6 +25,8 @@ /** The Docker detector. */ public class DockerDetector implements NatMethodDetector { + /** Default constructor */ + public DockerDetector() {} @Override public Optional detect() { diff --git a/nat/src/main/java/org/hyperledger/besu/nat/docker/HostBasedIpDetector.java b/nat/src/main/java/org/hyperledger/besu/nat/docker/HostBasedIpDetector.java index 42b2019e29e..c5a5b6c4419 100644 --- a/nat/src/main/java/org/hyperledger/besu/nat/docker/HostBasedIpDetector.java +++ b/nat/src/main/java/org/hyperledger/besu/nat/docker/HostBasedIpDetector.java @@ -25,6 +25,9 @@ public class HostBasedIpDetector implements IpDetector { private static final String HOSTNAME = "HOST_IP"; + /** Default constructor */ + public HostBasedIpDetector() {} + @Override @SuppressWarnings("AddressSelection") public Optional detectAdvertisedIp() { diff --git a/nat/src/main/java/org/hyperledger/besu/nat/kubernetes/KubernetesDetector.java b/nat/src/main/java/org/hyperledger/besu/nat/kubernetes/KubernetesDetector.java index 755f52b9e23..8165a0c3c8b 100644 --- a/nat/src/main/java/org/hyperledger/besu/nat/kubernetes/KubernetesDetector.java +++ b/nat/src/main/java/org/hyperledger/besu/nat/kubernetes/KubernetesDetector.java @@ -32,6 +32,9 @@ public class KubernetesDetector implements NatMethodDetector { Optional.ofNullable(System.getenv("KUBERNETES_SERVICE_HOST")); private static final Path KUBERNETES_WATERMARK_FILE = Paths.get("var/run/secrets/kubernetes.io"); + /** Default constructor */ + public KubernetesDetector() {} + @Override public Optional detect() { return KUBERNETES_SERVICE_HOST diff --git a/pki/src/main/java/org/hyperledger/besu/pki/crl/CRLUtil.java b/pki/src/main/java/org/hyperledger/besu/pki/crl/CRLUtil.java index a298736b4ad..17d3ecea765 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/crl/CRLUtil.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/crl/CRLUtil.java @@ -27,6 +27,8 @@ /** The CRL util. */ public class CRLUtil { + /** Default constructor */ + private CRLUtil() {} /** * Load CRLs cert store. diff --git a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBConfigurationBuilder.java b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBConfigurationBuilder.java index 4ca88a5e1d0..8e98b6cdac5 100644 --- a/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBConfigurationBuilder.java +++ b/plugins/rocksdb/src/main/java/org/hyperledger/besu/plugin/services/storage/rocksdb/configuration/RocksDBConfigurationBuilder.java @@ -31,6 +31,9 @@ public class RocksDBConfigurationBuilder { private int backgroundThreadCount = DEFAULT_BACKGROUND_THREAD_COUNT; private boolean isHighSpec = DEFAULT_IS_HIGH_SPEC; + /** Instantiates a new Rocks db configuration builder. */ + public RocksDBConfigurationBuilder() {} + /** * Database dir. * diff --git a/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/InMemoryStoragePlugin.java b/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/InMemoryStoragePlugin.java index 648de893ff4..6783a82c1c4 100644 --- a/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/InMemoryStoragePlugin.java +++ b/services/kvstore/src/main/java/org/hyperledger/besu/services/kvstore/InMemoryStoragePlugin.java @@ -40,6 +40,9 @@ public class InMemoryStoragePlugin implements BesuPlugin { private InMemoryKeyValueStorageFactory factory; private InMemoryKeyValueStorageFactory privacyFactory; + /** Default constructor */ + public InMemoryStoragePlugin() {} + @Override public void register(final BesuContext context) { LOG.debug("Registering plugin"); 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 e719dab5620..beabb04d84f 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 @@ -290,6 +290,9 @@ public class SegmentedInMemoryTransaction implements SegmentedKeyValueStorageTra /** protected access to deletedValues set for the transaction. */ protected Map> removedKeys = new HashMap<>(); + /** Default constructor */ + public SegmentedInMemoryTransaction() {} + @Override public void put( final SegmentIdentifier segmentIdentifier, final byte[] key, final byte[] value) { diff --git a/testutil/src/main/java/org/hyperledger/besu/kvstore/AbstractKeyValueStorageTest.java b/testutil/src/main/java/org/hyperledger/besu/kvstore/AbstractKeyValueStorageTest.java index 2e0d9195e86..a2f68e1777d 100644 --- a/testutil/src/main/java/org/hyperledger/besu/kvstore/AbstractKeyValueStorageTest.java +++ b/testutil/src/main/java/org/hyperledger/besu/kvstore/AbstractKeyValueStorageTest.java @@ -40,6 +40,8 @@ /** The Abstract key value storage test. */ @Disabled public abstract class AbstractKeyValueStorageTest { + /** Default Constructor */ + protected AbstractKeyValueStorageTest() {} /** * Create store key value storage. diff --git a/testutil/src/main/java/org/hyperledger/besu/testutil/MockExecutorService.java b/testutil/src/main/java/org/hyperledger/besu/testutil/MockExecutorService.java index a84d9b57879..0dc93a69fad 100644 --- a/testutil/src/main/java/org/hyperledger/besu/testutil/MockExecutorService.java +++ b/testutil/src/main/java/org/hyperledger/besu/testutil/MockExecutorService.java @@ -36,6 +36,14 @@ public class MockExecutorService implements ExecutorService { private final List> tasks = new ArrayList<>(); + /** Default constructor */ + public MockExecutorService() {} + + /** + * Gets tasks. + * + * @return the tasks + */ /** * Gets futures. * diff --git a/testutil/src/main/java/org/hyperledger/besu/testutil/MockScheduledExecutor.java b/testutil/src/main/java/org/hyperledger/besu/testutil/MockScheduledExecutor.java index fbcb5f1a065..14f62b7404e 100644 --- a/testutil/src/main/java/org/hyperledger/besu/testutil/MockScheduledExecutor.java +++ b/testutil/src/main/java/org/hyperledger/besu/testutil/MockScheduledExecutor.java @@ -25,6 +25,8 @@ /** The mock scheduled executor */ public class MockScheduledExecutor extends MockExecutorService implements ScheduledExecutorService { + /** Default constructor */ + public MockScheduledExecutor() {} @Override public ScheduledFuture schedule( diff --git a/testutil/src/main/java/org/hyperledger/enclave/testutil/EnclaveKeyUtils.java b/testutil/src/main/java/org/hyperledger/enclave/testutil/EnclaveKeyUtils.java index 39b75abba10..acefd47d671 100644 --- a/testutil/src/main/java/org/hyperledger/enclave/testutil/EnclaveKeyUtils.java +++ b/testutil/src/main/java/org/hyperledger/enclave/testutil/EnclaveKeyUtils.java @@ -34,6 +34,9 @@ public class EnclaveKeyUtils { private static final Logger LOG = LoggerFactory.getLogger(EnclaveKeyUtils.class); + /** Default constructor */ + private EnclaveKeyUtils() {} + /** * Utility method to load the enclave public key. Possible input values are the names of the *.pub * files in the resources folder. diff --git a/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarnessFactory.java b/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarnessFactory.java index cf02a160288..0cfe8b76c9b 100644 --- a/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarnessFactory.java +++ b/testutil/src/main/java/org/hyperledger/enclave/testutil/TesseraTestHarnessFactory.java @@ -30,6 +30,9 @@ public class TesseraTestHarnessFactory { private static final String storage = "memory"; + /** Default constructor */ + private TesseraTestHarnessFactory() {} + /** * Create tessera test harness. *