Skip to content

Conversation

@realcodywburns
Copy link

Description

A clear and concise description of what this pull request does or fixes.

Proposed Solution

Optional Explain how does this PR solves the problem stated in Description. You can also enumerate different alternatives considered while approaching this task.

Important Changes Introduced

Optional Notice Reviewers about changes that were introduced while developing this task

Testing

Optional Leave some recommendations should be useful while reviewers are testing this PR

Copilot AI and others added 30 commits November 2, 2025 14:15
…e-message-decode

Fix DeleteAccountsSpec, FilterManagerSpec, and PeerDiscoveryManagerSpec mock expectations
…test-failures

Fix block header timestamp in fast sync integration tests
…eption-messagehandler

Fix ClassCastException in VMClientSpec by extracting MessageHandlerApi trait
- Override system in PeerActorSpec TestSetup to use explicit scheduler from TestKit
- Increase normalTimeout from 3s to 5s to allow for slow initialization
- Run scalafmt on all source files

Co-authored-by: realcodywburns <[email protected]>
- Fix AuthInitiateMessageV4 encoder to wrap values in RLPValue
- Fix FrameCodecSpec DummyMsg encoder similarly
- Remove rebrand_backup_20251024_215518 directory
- Clean up unused imports
- Run scalafmt

Co-authored-by: realcodywburns <[email protected]>
…itialization-error

Fix scheduler initialization and RLP encoding in Scala 3 migration
…ption-issues

Increase Pekko actor timeouts to prevent mining and sync failures
Copilot AI and others added 30 commits November 5, 2025 02:37
Disable TUI by default per maintainer request
…-errors

Fix NumberFormatException crash during network sync from empty RLP byte arrays
The root cause was in RLPxConnectionHandler.ethMessageCodecFactory where the
message decoder chain was ordered incorrectly. Network protocol messages
(Hello, Disconnect, Ping, Pong) are part of the base RLPx protocol and must
be decoded before capability-specific messages.

When ETH68 peers sent Disconnect messages (code 0x01), the ETH68 decoder
tried first and failed with "Unknown eth/68 message type: 1", then the
NetworkMessageDecoder would fail to decode properly. This caused the
connection to be terminated, resulting in zero stable peer connections.

Changed decoder chain from:
  EthereumMessageDecoder.ethMessageDecoder(negotiated).orElse(NetworkMessageDecoder)
to:
  NetworkMessageDecoder.orElse(EthereumMessageDecoder.ethMessageDecoder(negotiated))

This aligns with the Ethereum devp2p specification and matches the test suite.

Co-authored-by: realcodywburns <[email protected]>
- Added Issue 14 to known-issues.md with comprehensive documentation
- Updated CHANGELOG.md with critical bugfix entry
- Updated known-issues table of contents and last updated date
- Added references to Ethereum devp2p specification

Co-authored-by: realcodywburns <[email protected]>
…ections

Fix ETH68 peer disconnect - incorrect message decoder order
…uplication, handle charset properly

Co-authored-by: realcodywburns <[email protected]>
… and remove unnecessary null check

Co-authored-by: realcodywburns <[email protected]>
…dlerfactory-failure

Fix JupnP URLStreamHandlerFactory conflict preventing node startup
…EtcHelloExchangeState.scala

	modified:   src/main/scala/com/chipprbots/ethereum/network/rlpx/MessageCodec.scala
	modified:   src/main/scala/com/chipprbots/ethereum/network/rlpx/RLPxConnectionHandler.scala
…usting test expectations

The test was failing because:
1. MessageCodec constructor arguments were swapped - each codec was getting its own version instead of the peer's version
2. Test used v4 for local when P2pVersion threshold was changed from 5 to 4, causing both sides to compress

Fixed by:
- Swapping version arguments so each codec gets the remote peer's version
- Changing negotiatedLocalP2PVersion from 4 to 3 in the failing test
- Updating test comment for clarity

Co-authored-by: realcodywburns <[email protected]>
…ge-delivery

Fix dead letters from RLPxConnectionHandler to terminated TCP selectors
…nges; enhance logging for decompression errors and handle protocol deviations in message decoding
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant