Open johannbarbie opened 3 years ago
IPv6 is currently not (fully) supported. As you have noticed, setting the listen-address to an ipv6 address will fail in the discovery implementation. It is on the TODO list to add also listening and sending on ipv6 (at least in discovery: https://github.com/status-im/nim-eth/issues/243) I'm not sure on the state of ipv6 support in libp2p currently (@dryajov ?)
Now, purely adding a listener on also ipv6, and sending data on ipv6 in case of ipv6 addresses in discovery is not that much work (making the whole configuration around it UX friendly however probably is). But if you truly have only an ipv6 address on your device, it would still give you much trouble as a lot of peers (most) might not be reachable over ipv6 (or at least not have it added in their ENR). You'd still need an ipv4 listener basically.
I don't know the in depth technical details of Dual-Stack Lite, but from what I understand it is ipv4 in ipv6 tunnelling, meaning your device still has ipv4 and ipv6 dual stack, but your CPE has only ipv6 and tunnels any ipv4 traffic through IPv6, which then gets NAT'ed on the service providers network end point(s) (CGN).
This would mean that you can still use ipv4 and should have such address (local however) available to listen on. Is that correct? You will probably not be reachable however as I doubt there is any "static" port forwarding available/done on that level, but I'm not sure about this.
I'm not sure on the state of ipv6 support in libp2p currently (@dryajov ?)
libp2p relies on chronos for low level networking and (I believe) chronos has ipv6 support (@cheatfate?), the other part of this is multiaddress support (libp2p internal address representation), which is there but not very well tested. This certainly hasn't been a priority for us.
This would mean that you can still use ipv4 and should have such address (local however) available to listen on. Is that correct?
correct
You will probably not be reachable however as I doubt there is any "static" port forwarding available/done on that level, but I'm not sure about this.
right, and I haven't found any way to request a port to be forwarded through the providers' NAT.
Describe the bug
when using
--listen-address=<ipv6-address>
node exits with error:Error: unhandled exception: /home/pi/nimbus-eth2/vendor/nim-chronos/chronos/transports/datagram.nim(488, 13) 'remote.family == local.family' [AssertionError]
To Reproduce Steps to reproduce the behavior:
./run-pyrmont-beacon-node.sh --listen-address=x:y:z:a:b:c:d:e
Screenshots If applicable, add screenshots to help explain your problem.
Additional context
node=71*99f03f:unaddressable