From 12c70f984f51fca35e11f6b691acbc108f5a9ecb Mon Sep 17 00:00:00 2001 From: Joshua Fernandes Date: Wed, 15 Apr 2026 08:24:53 +1000 Subject: [PATCH 1/2] Renovate (#212) * add renovate * updates --- .github/dependabot.yml | 14 ++++++++++++++ renovate.json | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 194b6b3c7..fff660f8b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,6 +8,20 @@ updates: interval: "weekly" day: "monday" time: "09:00" + # wait 7 days for stability + cooldown: + default-days: 7 + + # grouping: bundle updates into one PR rather than one at a time + groups: + java-dependencies: + patterns: + - "*" + # Optional: exclude major versions so we can review these + # update-types: + # - "minor" + # - "patch" + open-pull-requests-limit: 5 labels: - "dependencies" diff --git a/renovate.json b/renovate.json index cb2f205e4..e01e9f1e5 100644 --- a/renovate.json +++ b/renovate.json @@ -9,7 +9,9 @@ { "description": "Pin all GitHub Actions to SHA digests", "matchManagers": ["github-actions"], - "pinDigests": true + "pinDigests": true, + "minimumReleaseAge": "7 days", + "groupName": "Renovatebot GHA Updates" } ] } \ No newline at end of file From 62fc1ea13003b336bb3032bf3d2cfaf3b26c5382 Mon Sep 17 00:00:00 2001 From: parthdagia05 Date: Fri, 17 Apr 2026 00:45:52 +0530 Subject: [PATCH 2/2] Downgrade routine peer-interaction logs from DEBUG to TRACE Discovery v5 handlers log expected peer-interaction failures (bad packets, failed handshakes, policy-rejected peers, session timeouts) at DEBUG level, producing ~114 messages/minute on mainnet and making --logging=DEBUG output hard to read. Demote 16 such LOG.debug() calls across 9 files to LOG.trace(). The messages remain available at TRACE for protocol debugging; no LOG.warn/error/info calls are touched. Two additional debug calls in NodeSession#cancelAllRequests are intentionally left at DEBUG because they signal potential local-code issues (unexpected cleanup exception, possible race on requestIdStatuses) rather than routine peer behavior. Refs: besu-eth/besu#9691 --- .../discovery/pipeline/handler/BadPacketHandler.java | 2 +- .../handler/HandshakeMessagePacketHandler.java | 12 ++++++------ .../pipeline/handler/MessagePacketHandler.java | 2 +- .../pipeline/handler/OutgoingParcelHandler.java | 2 +- .../pipeline/handler/PacketSourceFilter.java | 2 +- .../handler/UnauthorizedMessagePacketHandler.java | 2 +- .../pipeline/handler/WhoAreYouPacketHandler.java | 2 +- .../pipeline/info/FindNodeResponseHandler.java | 4 ++-- .../beacon/discovery/schema/NodeSession.java | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/BadPacketHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/BadPacketHandler.java index 9074a3baa..2ad7e7e85 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/BadPacketHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/BadPacketHandler.java @@ -26,7 +26,7 @@ public void handle(Envelope envelope) { "Envelope %s in BadPacketHandler, requirements are satisfied!", envelope.getIdString())); - LOG.debug( + LOG.trace( () -> String.format( "Bad packet: %s in envelope #%s: %s", diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/HandshakeMessagePacketHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/HandshakeMessagePacketHandler.java index 328cf23f2..ee2fab6e3 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/HandshakeMessagePacketHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/HandshakeMessagePacketHandler.java @@ -70,7 +70,7 @@ public void handle(Envelope envelope) { try { if (session.getWhoAreYouChallenge().isEmpty()) { - LOG.debug(String.format("Outbound WhoAreYou challenge not found for session %s", session)); + LOG.trace(String.format("Outbound WhoAreYou challenge not found for session %s", session)); markHandshakeAsFailed(envelope, session); return; } @@ -90,7 +90,7 @@ public void handle(Envelope envelope) { Optional enr = packet.getHeader().getAuthData().getNodeRecord(nodeRecordFactory); if (!enr.map(NodeRecord::isValid).orElse(true)) { - LOG.debug( + LOG.trace( String.format( "Node record not valid for message [%s] from node %s in status %s", packet, session.getNodeRecord(), session.getState())); @@ -100,7 +100,7 @@ public void handle(Envelope envelope) { final Optional nodeRecordMaybe = session.getNodeRecord().or(() -> enr); // Check the node record matches the ID we expect if (!nodeRecordMaybe.map(r -> r.getNodeId().equals(session.getNodeId())).orElse(false)) { - LOG.debug( + LOG.trace( "Incorrect node ID for message [{}] from node {} in status {}", packet, session.getNodeRecord(), @@ -108,7 +108,7 @@ public void handle(Envelope envelope) { markHandshakeAsFailed(envelope, session); return; } else if (!enr.map(addressAccessPolicy::allow).orElse(true)) { - LOG.debug( + LOG.trace( "Rejecting handshake from node {} because the ENR was disallowed: {}", session.getNodeRecord(), enr); @@ -127,7 +127,7 @@ public void handle(Envelope envelope) { (Bytes) nodeRecord.get(EnrField.PKEY_SECP256K1)); if (!idNonceVerifyResult) { - LOG.debug( + LOG.trace( String.format( "ID signature not valid for message [%s] from node %s in status %s", packet, session.getNodeRecord(), session.getState())); @@ -145,7 +145,7 @@ public void handle(Envelope envelope) { enr.ifPresent(session::onNodeRecordReceived); NextTaskHandler.tryToSendAwaitTaskIfAny(session, outgoingPipeline, scheduler); } catch (Exception ex) { - LOG.debug( + LOG.trace( String.format( "Failed to read message [%s] from node %s in status %s", packet, session.getNodeRecord(), session.getState()), diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/MessagePacketHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/MessagePacketHandler.java index dbcf0739c..6c5a1e829 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/MessagePacketHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/MessagePacketHandler.java @@ -69,7 +69,7 @@ public void handle(Envelope envelope) { String.format( "Failed to read message [%s] from node %s in status %s", packet, session.getNodeRecord(), session.getState()); - LOG.debug(error, ex); + LOG.trace(error, ex); envelope.remove(Field.PACKET_MESSAGE); envelope.put(Field.BAD_PACKET, packet); } catch (Throwable t) { diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/OutgoingParcelHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/OutgoingParcelHandler.java index 649e7e505..c1078857c 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/OutgoingParcelHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/OutgoingParcelHandler.java @@ -47,7 +47,7 @@ public void handle(Envelope envelope) { if (parcel.getPacket().getBytes().size() > IncomingDataPacker.MAX_PACKET_SIZE) { LOG.error("Outgoing packet is too large, dropping it: {}", parcel.getPacket()); } else if (!addressAccessPolicy.allow(parcel.getDestination())) { - LOG.debug( + LOG.trace( "Dropping outgoing packet to disallowed destination: {}", parcel.getDestination()); } else { outgoingSink.next(parcel); diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/PacketSourceFilter.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/PacketSourceFilter.java index 5493bb5b2..3328d8dc2 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/PacketSourceFilter.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/PacketSourceFilter.java @@ -30,7 +30,7 @@ public void handle(final Envelope envelope) { final InetSocketAddress sender = envelope.get(Field.REMOTE_SENDER); if (!addressAccessPolicy.allow(sender)) { envelope.remove(Field.INCOMING); - LOG.debug("Ignoring message from disallowed source {}", sender); + LOG.trace("Ignoring message from disallowed source {}", sender); } } } diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/UnauthorizedMessagePacketHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/UnauthorizedMessagePacketHandler.java index b314639f1..21cbdbf50 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/UnauthorizedMessagePacketHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/UnauthorizedMessagePacketHandler.java @@ -61,7 +61,7 @@ public void handle(Envelope envelope) { String.format( "Failed to read message [%s] from node %s in status %s", unknownPacket, session.getNodeRecord(), session.getState()); - LOG.debug(error, ex); + LOG.trace(error, ex); envelope.put(Field.BAD_PACKET, unknownPacket); envelope.put(Field.BAD_EXCEPTION, ex); } diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/WhoAreYouPacketHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/WhoAreYouPacketHandler.java index 919af14fb..58a048cf4 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/WhoAreYouPacketHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/handler/WhoAreYouPacketHandler.java @@ -68,7 +68,7 @@ public void handle(final Envelope envelope) { boolean nonceMatches = session.getLastOutboundNonce().map(whoAreYouNonce::equals).orElse(false); if (!nonceMatches) { - LOG.debug( + LOG.trace( "Verification not passed for message [{}] from node {} in status {}", whoAreYouPacket, nodeRecord, diff --git a/src/main/java/org/ethereum/beacon/discovery/pipeline/info/FindNodeResponseHandler.java b/src/main/java/org/ethereum/beacon/discovery/pipeline/info/FindNodeResponseHandler.java index 618885011..16d9d8eed 100644 --- a/src/main/java/org/ethereum/beacon/discovery/pipeline/info/FindNodeResponseHandler.java +++ b/src/main/java/org/ethereum/beacon/discovery/pipeline/info/FindNodeResponseHandler.java @@ -73,7 +73,7 @@ public synchronized List getFoundNodes() { private boolean isValid(final NodeRecord record) { if (!record.isValid()) { - LOG.debug("Rejecting invalid node record {}", record); + LOG.trace("Rejecting invalid node record {}", record); return false; } return true; @@ -82,7 +82,7 @@ private boolean isValid(final NodeRecord record) { private boolean hasCorrectDistance(final NodeSession session, final NodeRecord nodeRecordV5) { final int actualDistance = Functions.logDistance(nodeRecordV5.getNodeId(), session.getNodeId()); if (!distances.contains(actualDistance)) { - LOG.debug( + LOG.trace( "Rejecting node record {} received from {} because distance was not in {}.", nodeRecordV5.getNodeId(), session.getNodeId(), diff --git a/src/main/java/org/ethereum/beacon/discovery/schema/NodeSession.java b/src/main/java/org/ethereum/beacon/discovery/schema/NodeSession.java index 7bdb1f3bf..64fe17ff8 100644 --- a/src/main/java/org/ethereum/beacon/discovery/schema/NodeSession.java +++ b/src/main/java/org/ethereum/beacon/discovery/schema/NodeSession.java @@ -234,7 +234,7 @@ private synchronized void resetHandshakeState() { /** Updates request info. Thread-safe. */ public synchronized void cancelAllRequests(final String message) { - LOG.debug(() -> String.format("Cancelling all requests in session %s", this)); + LOG.trace(() -> String.format("Cancelling all requests in session %s", this)); final Set requestIdsCopy = new HashSet<>(requestIdStatuses.keySet()); requestIdsCopy.forEach( requestId -> {