You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a carry over of eosnetworkfoundation/mandel#357 but with the removal of cleos -- as of 4.0 cleos does support IPv6 🎉
It's possible as we start development work on IPv6 support we can split this in to separate issues for net_plugin support, state_history_plugin support, and http_plugin support. But all cases will require understanding how to resolve the configuration challenge first.
(possibly non-exhaustive) tasks that need to be accomplished:
Any configurations that listen on a port (http-server-address, p2p-listen-endpoint, state-history-endpoint, etc) need to be modified to support multiple values.
This modification is at odds with the current behavior where one can set these to the empty string to disable listening. Some solution to the configuration scheme needs to be found to accommodate this case.
For these listen endpoints, they should accept four different kinds of configuration
IPv4 address & port: 10.1.2.3:9876
IPv6 address & port: [2607:f8b0:4004:806::2004]:9876 I'm doubtful explicit scope support is needed?
hostname & port: foo.example.com:9876, in this case I believe the expectation is that the plugin resolves the hostname and listens on all addresses it resolved. A perfect example is localhost:9876 which should listen on both 127.0.0.1:9876 and [::1]:9876
It's also possible that instead of "listens on all addresses it resolved" it should listen only on the first IPv6 & IPv4 address it resolved.
Probably should reflect some on expected behavior here and what other tools do.
wildcard & port (needed? expected?): *:9876 This is a shorthand for not having to specify both 0.0.0.0:9876 and [::]:9876 when wanting to listen from everywhere. Implementation can decide whether this warrants two listening sockets or utilization of IPv4 in IPv6 sockets.
Any defaults of 127.0.0.1:8888 or such need to be changed to localhost:8888 to ensure both IPv4 & IPv6 connections to it are possible.
Outgoing connections from p2p plugin that are via hostnames may consider roundrobining through the resolved addresses. This is to ensure if there is both IPv6 & IPv4 records and IPv6 connectivity is busted that eventually the connection will be tried through IPv4.
http_client_plugin, which expects the entire lookup & HTTP request to complete in a very small amount of time (sub 5ms), probably continues to only try to connect to the first resolved address (whichever it gets: IPv6 or IPv4).
The text was updated successfully, but these errors were encountered:
This is a carry over of eosnetworkfoundation/mandel#357 but with the removal of cleos -- as of 4.0 cleos does support IPv6 🎉
It's possible as we start development work on IPv6 support we can split this in to separate issues for net_plugin support, state_history_plugin support, and http_plugin support. But all cases will require understanding how to resolve the configuration challenge first.
(possibly non-exhaustive) tasks that need to be accomplished:
http-server-address
,p2p-listen-endpoint
,state-history-endpoint
, etc) need to be modified to support multiple values.10.1.2.3:9876
[2607:f8b0:4004:806::2004]:9876
I'm doubtful explicit scope support is needed?foo.example.com:9876
, in this case I believe the expectation is that the plugin resolves the hostname and listens on all addresses it resolved. A perfect example islocalhost:9876
which should listen on both127.0.0.1:9876
and[::1]:9876
It's also possible that instead of "listens on all addresses it resolved" it should listen only on the first IPv6 & IPv4 address it resolved.
Probably should reflect some on expected behavior here and what other tools do.
*:9876
This is a shorthand for not having to specify both0.0.0.0:9876
and[::]:9876
when wanting to listen from everywhere. Implementation can decide whether this warrants two listening sockets or utilization of IPv4 in IPv6 sockets.127.0.0.1:8888
or such need to be changed tolocalhost:8888
to ensure both IPv4 & IPv6 connections to it are possible.The text was updated successfully, but these errors were encountered: