Waku EIP-1459: ENR Extension

Currently we have added the change to enable EIP-1459 discovery within the status app, this is already a plus. I would suggest that we extend the ENRs to contain information on the node such as whether they are mailserver or lightclients.

This is doable given that ENRs allow us to add any fields in the end: https://eips.ethereum.org/EIPS/eip-778

This came up during eth2 as well:

  • ENR’s must be < 300 bytes
  • there’s the question of what to use for the “capability” - in eth2, a natural candidate is the libp2p protocol specifier but that can be tricky because of versions etc, so the alternative is to come up with unique monikers that “group” functionality.
  • ENR’s update slowly - if you’re running adaptive nodes that move between networks, what do you do with your capabilities? One option is that you keep separate peer id’s for separate “profiles”

I think in the Waku case it could be relatively simple for the capabilities with simple key, 1 byte value which is a boolean. And key would hopefully be one byte as well. I like the idea of switching ENRs for different profiles this would work relatively well with another idea which I am fleshing out today to make DNS based discovery easier to lookup.