-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support multiple all eth protocol versions announced in HelloMessage #1101
Comments
I think this is because we always use reth/crates/net/eth-wire/src/types/status.rs Lines 152 to 158 in e0dbcae
Instead, this should be selected depending on the highest version shared |
for the handshake this should check that the version of the remote peer's Status message is supported. |
right, yeah |
I'd like to take this one. |
Question: Do we need to send reth/crates/net/eth-wire/src/ethstream.rs Lines 59 to 64 in a588f79
|
A few questions:
So is the idea that since we don't support multiple protocols yet, we'd just "loosen" the check from "if our version is not the same as theirs" to "if our version is eth/67 and their version is eth/66 or eth/67 we still mark it as an OK handshake"? |
yes, that's the short term fix, and the long term fix is supporting multiple protocol versions, which will look a lot like how geth does it. |
But should we be announcing eth/66? We're not responding to GetNodeData for example, so won't that get us penalized? Should we just not advertise support for eth/66, and properly do the multiple caps? Most of the network is on latest geth anyway, so they all have eth/67, I doubt that we'd lose a lot of peers that way? |
After some research, I'm leaning much more toward implementing support for multiple capabilities, and don't think peers with
So most nodes should support |
Yeah, so I think let's just stop advertising eth/66, and when we can prioritize, go for the multiple caps? |
Need feedback. Alternative idea to original issue, passing
Rationale to my alternative idea:
HDYT? |
Describe the feature
as highlighted here:
https://t.me/paradigm_reth/1611
we're announcing support for eth66/67 by default in
Hello
but only check for a single version in the ethStatus
handshake.reth/crates/net/eth-wire/src/ethstream.rs
Lines 101 to 106 in e0dbcae
the status message should also accept older versions if announced.
TODO
if we add this to
Status
directly, we can no longer derive Rlpso perhaps we add a list of versions as a separate parameter to the
handshake
functionwdyt @Rjected
Additional context
No response
The text was updated successfully, but these errors were encountered: