Currently nodes work fine with IPv6: I successfully created a local network using docker containers using IPv6 addresses (connected to a docker bridged IPv6 network).
A limitation is that a client cannot connect to this network (I get: sn_cli error: [Error] AuthdError - [Error] ClientError - Network bootstrap failed
). I guess this is a small bug that can be easily corrected because a node can connect to it and both client and node use qp2p services.
The real problem is that a IPv4 node cannot connect to it because each node has only one IP address and so cannot listen to both IPv4 and IPv6. This means that a safe network is either entirely IPv4 or entirely IPv6.
If we ever dream of a network having billions of nodes we need IPv6 but on the other hand removing support for IPv4 might alienate a lot of people.
To have both we need to have a second IP address. This is what is added by this PR, but it defines one local address and one external address instead of 2 external addresses. So, I am afraid it won’t allow mixed nodes managing both IPv4 and IPv6 over the Internet.
I would like my fears proved wrong. Otherwise priorities should be reevaluated because adding support for IPv6 is much more important than allowing several nodes behind the same IPv4 address (and I remember that a long time ago Maidsafe was even trying to prevent this).