fix: SessionService should send challenge even with active challenge #311
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix for failing hive test PingHandshakeInterrupted
Test
PingHandshakeInterruptedstarts a handshake, but doesn't finish it and sends a second ordinary messagepacket instead of a handshake message packet. The remote node should respond with
another WHOAREYOU challenge for the second packet.
@chainsafe/discv5fails to do this. ThesendChallengemethod is called, but first checks to see if we already sent a challenge, and if so, simply returns without sending a new challenge.This PR removes the condition from
sessionService.sendChallengewhich prevents a new challenge from being sent. The new challenge simply replaces the old one inthis.activeChallenges.This allows the hive test linked above to pass. Actually, it allows the test to fail for a different reason, detailed in #309 . When combined with a solution to the id encoding issue here: #312, the PingHandshakeInterrupted test passes.