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
p2p-interface.md
: Add quic
ENR entry.
#3644
base: dev
Are you sure you want to change the base?
Conversation
libp2p has several quic implementations of varying quality - which one is this? if anything, we should be using the standards-compliant one, ie quic-v1: https://docs.libp2p.io/concepts/transports/quic/#distinguishing-multiple-quic-versions-in-libp2p but this has not yet gone through a standardisation / testing process on the ethereum side (ie afaik this is an LH experiment) - I'm not sure adding an entry here is the right end to start that process |
As far as I know, LH uses To add a little bit of context to this present pull request, I'm implementing the QUIC (V1) support in Prysm: prysmaticlabs/prysm#13786 With this linked PR, Prysm BN is able to connect to other Prysm BN and LH BN with both QUIC (V1) and TCP. QUIC (V1) is favored if both are available. As far as I know, only LH, and with the linked PR, Prysm, do support QUIC (V1). The linked PR also adds the |
Yep. I added this field in lighthouse. It was originally a test amongst all Lighthouse peers because other clients didn't support quic. We wanted to test to see how well the transport works. We didn't bother standardising it, as it is likely involved in a larger conversation around which kind of quic and who wants to support it etc as @arnetheduck has suggested. However if others want to test along with us, I have no objections to adding it to the specs. I'm personally fine with the |
Nice! When this PR is merged and the This PR has been successfully tested with multiple inbound/outbound (LH) peers. About the ENR entry itself, I would vote for Pros:
Using
Also, using the Cons:
|
Sure. I'm happy to switch to the I guess up until the next hard fork we will also support the |
For reference @jxs linked me some research done last year into the different implementations and ultimately why we went with Quinn. Might be useful for others: |
there's also the issue with the ipv6 fields, what could be the ipv6 quic ENR field? |
RE the field name, one thing to keep in mind is that ENRs are limited by the spec to 300 bytes when encoded. So making longer field names isn't free. It eats into space that may be used by future fields. Using As far as mapping the field name to the multiaddr prefix, I don't think this needs to be preserved. As mentioned above, we already don't have equivalence there. And keep in mind that the multiaddr string prefixes are just human-readable representations of a varint code. We have different needs here (field names are serialized directly, limited size) so we likely shouldn't be choosing field names based on entirely on human-readability. My opinion would be to use a smaller field name, all else being the same. The meaning of the field will be handled by standards, this PR or an EIP, so ambiguity shouldn't be a problem for conforming implementations. |
Not related to this topic, but EIP-7594 introduces a new According to your comment, it may be interesting to rename it. |
This ENR entry seems already used by Lighthouse BN.
Exemple found on the Holesky network:
cc @michaelsproul