Functional goals:
- Given a list of IP addresses, maintain communicative cluster capable of sending and receiving messages between members
- Maximize ability to maintain cluster with various commonplace network
conditions:
- dynamic IP address
- periodic temporary connection loss
- long term connection loss
- hardware failure
- Ensure attack surface is minimized to third parties
- nodes must allow connection from the internet due to changing IP addresses
- randomly calculated rendezvous windows