-
Notifications
You must be signed in to change notification settings - Fork 4
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
ENR Size limit #189
Comments
Regarding circuit relay. Alice --> Bob (Relay) <-- Carole (behind NAT) Talking about Carole's ENR. If Carole cannot be reached from the outside, then she needs to connect to a Relay node (Bob) and provide circuit relay information in her ENR. Carole's Hence, she could encode Bob's When decoding an ENR, if The only remaining question is: How does Carole determine that she is not reachable from the Internet and that she:
Ref: waku-org/nwaku#1493 |
Indeed. Circuit relay is already used quite extensively by go-waku and nwaku supports the relay process as server. I think following the process as described here would allow Carol to encode information in her ENR as you described. In short:
She uses AutoNAT, the first step of the circuit relay process (already supported as server by nwaku): https://docs.libp2p.io/concepts/nat/autonat/
Carole knows that she has successfully reserved a relay slot in the circuit-relay server and hence knows the address. That said, if Carole is behind a restrictive NAT, how does she advertise her ENR as her discv5 UDP port is also likely to be unreachable? For this reason I think a |
Problem
31/WAKU2-ENR conforms to the EIP-778 size limit of 300 bytes.
multiaddrs
field was added to enable storage of information for secure websocket connections: FQDN + WSS PORT.Circuit relay information also needs to be stored, currently using
multiaddrs
field: To investigate: adding circuit relay information to multiaddr waku-org/nwaku#1491rs
relay sharding field is being added: update 31/WAKU2-ENR: add static sharding fields #178WSS + Circuit Relay information already takes the ENR over 300 bytes (especially when trying to store 2 circuit relay multiaddr)
WSS + relay shard information takes the ENR over 300 bytes in some instances
Solutions
rs
attribute.fqdn
andwss_port
fields to the ENR and prefer it overmultiaddrs
to suport secure websocket information. Also do not encodewss_port
if value is443
. 31/WAKU2-ENR: Move websocket connection info frommultiadrrs
tows_port
+fqdn
rfc#578identify
protocol).Evaluation of solutions
rs
field even if only using store/filter/light pushwaku2
info is covered as part ofidentify
so it could be removed from ENR?Acceptance criteria
Notes
a. For efficiency reason, the
rs
information must be present in the ENR and cannot be transmitted via req/resp protocol (4)b. Connection information (ws/tcp/ip/fqdn details) must be present in the ENR otherwise the req/resp protocol cannot happen
c.
waku2
information is already covered as part ofidentify
so could be removed?d.
A node that provide circuit relay info would not also provide ws info: if it needs to provide circuit relay info to be connected to, then it means it does not expose a direct port to the internet and hence ws connection is not possible @richard-ramos to confirm this point.The text was updated successfully, but these errors were encountered: