MASQ-Project / MASQ-Node-issues

This repo contains the issues that are used for planning MASQ Node product work. It has no code in it, only GitHub issue tickets
https://masq.ai/
31 stars 12 forks source link

GH-499: Automap IP-change handling #531

Open dnwiebe opened 2 years ago

dnwiebe commented 2 years ago

Use the results of GH-527 and GH-528 (and maybe GH-530 as well) to drive IP change handling into Automap. Replace the code that exists: it doesn't work.

Modify ActorSystemFactory::start_automap so that it gives Automap a change handler that sends NewPublicIp messages to the designated recipients, rather than logging an error and crashing.

Kaurihero: Are these cards included/linked as well?

529 #129 #532

dnwiebe commented 2 years ago

Pieces:

  1. Make Automap listen to the router in a polite fashion that allows other processes to listen to it as well (using enhanced UDP multicast)
  2. Modify Debut Gossip handling so that a debuting Node with the same public key as an existing Node is not automatically rejected, but is checked out and possibly accepted as a new IP address for the existing Node. If the Node has an on-probation flag set, and is accepted back with a different IP address, clear the on-probation flag. (This may require additional infrastructure in the multinode-testing environment.)
  3. Enhance NewPublicIp handling so that it operates correctly.
dnwiebe commented 1 year ago

Things to test:

  1. IP change: Set up a Node with a local browser communicating with a server through a network (min-hops = 1 is fine, neighborhood-mode = zero-hop is not). Make sure it has Automap enabled (don't specify --ip), and make a PCP or PMP router available to it. Once you have two-way communication in progress, change the public IP address of the router and ensure that the two-way communication continues with the new IP address.
  2. Socket sharing: Find another program that also listens for and handles public IP address changes. Set up a PCP or PMP router and start that program running. Once it's running, start up the Node as well and make sure it comes up and runs okay. Change the router's public IP address and make sure both programs react properly. Take both programs down and bring them up in the other order: Node first, other program second. Make sure both programs come up okay. Change the IP address and make sure both programs react properly.
  3. Now that I think of it, step 2 includes step 1; therefore, forget about step 1 and just do step 2.
kauri-hero commented 6 months ago

has been unit tested - but needs real world QA testing.

This is the current remaining step to progress the card