Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: handling many to many relationship between nodes and addresses #485

Closed
tegefaulkes opened this issue Oct 19, 2022 · 3 comments
Closed
Assignees
Labels
design Requires design enhancement New feature or request epic Big issue with multiple subissues r&d:polykey:core activity 4 End to End Networking behind Consumer NAT Devices

Comments

@tegefaulkes
Copy link
Contributor

Requirements of this design

There is a possible many to many relationship between nodeIds and addresses. We need to add logic to the nodes system to handle theses cases. This issue is an epic to track this body of work.

The main changes boil down to two core parts.

  1. The ability to resolve a hostname to multiple addresses and try each one when connecting to a node. This should allow us to connect to a specific node when using a generic domain name for the address.
  2. The ability to try a set of addresses when searching for one or more nodes out of a set of nodes. This is useful for network entry where we are looking for 3 seed nodes on the testnet.polykey.io domain. Here we have a set of expected and trusted seed nodes but we can end up talking to any of them on that domain.

Additional context

Sub-Issues & Sub-PRs created

  1. feat: storing multiple ip, host and port entries per NodeId #482
  2. feat: generic many to many connection ability for NodeConnectionManager #483
  3. feat: resolve hostname to multiple addresses when connecting to a node #484
@tegefaulkes tegefaulkes added enhancement New feature or request design Requires design epic Big issue with multiple subissues labels Oct 19, 2022
@CMCDragonkai
Copy link
Member

What's the status of this epic @tegefaulkes?

@tegefaulkes
Copy link
Contributor Author

I suppose #482 still needs to be addressed but I don't think it's high priority or even needed right now. We may need to track the last known hostname, public IP and private IP of a node. The private IP would be needed to coordinate connecting to nodes on the same network but that's a feature for later.

If we allow for multiple address records per nodeId then instead of overwriting the same record we end up adding new records. This could lead to this data bloating over time if we don't have a clean up policy.

But like I said, I don't think #482 is needed right now so it can be addressed when we need that functionality.

@CMCDragonkai
Copy link
Member

We can close this for now, and leave #482.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Requires design enhancement New feature or request epic Big issue with multiple subissues r&d:polykey:core activity 4 End to End Networking behind Consumer NAT Devices
Development

No branches or pull requests

2 participants