oasisprotocol / oasis-core

Performant and Confidentiality-Preserving Smart Contracts + Blockchains
https://oasisprotocol.org
Apache License 2.0
338 stars 113 forks source link

Support running consensus layer also on IPv6 #4660

Open valentinbud opened 2 years ago

valentinbud commented 2 years ago
SUMMARY

I would like to be able to configure consensus tendermint to listen on both IPv4 and/or IPv6.

Also to be able to specify both IPv4 and/or IPv6 as consensus external addresses at which the node can be reached.

The configuration flags I'm referring to are

      --consensus.tendermint.core.external_address string                    tendermint address advertised to other nodes
      --consensus.tendermint.core.listen_address string                      tendermint core listen address (default "tcp://0.0.0.0:26656")
ISSUE TYPE
COMPONENT NAME

I believe the component is tendermint though I can't be 100% sure.

ADDITIONAL INFORMATION

IPv4 are depleting and IPv6 is here to solve the issue and also improve Internet traffic.

Some providers are even charging a couple of bucks for an IPv4 address and give you the choice to have only IPv6 on your server.

Sooner rather than later IPv6 will become mainstream and everybody is going to use it.

The worker already has this capability and uses IPv6 if present. See below an excerpt from oasis-node registry node list -v of one consensus-rpc node I run.

  "tls": {
    "pub_key": "jRTuzzh5an8kVouUrJjHj+5NgDyngEwfVIQJXALlN3I=",
    "next_pub_key": "l88tNlZDV5vgB1dT/QUk39766n9o33TWW5udwWuOO6M=",
    "addresses": [
      "jRTuzzh5an8kVouUrJjHj+5NgDyngEwfVIQJXALlN3I=@194.233.73.154:9100",
      "l88tNlZDV5vgB1dT/QUk39766n9o33TWW5udwWuOO6M=@194.233.73.154:9100",
      "jRTuzzh5an8kVouUrJjHj+5NgDyngEwfVIQJXALlN3I=@[2407:3640:2066:7619::1]:9100",
      "l88tNlZDV5vgB1dT/QUk39766n9o33TWW5udwWuOO6M=@[2407:3640:2066:7619::1]:9100"
    ]
  },
valentinbud commented 2 years ago

Seems there's also an issue opened on tendermint about this. Hmm, I guess this won't be possible until tendermint implements it. I'll leave it here as reference https://github.com/tendermint/tendermint/issues/2317