MASQ-Project / Node

MASQ combines the benefits of VPN and Tor technology to create a superior next-generation privacy software, where users are rewarded for supporting an uncensored global web. Users gain privacy and anonymity online, while helping promote Internet Freedom.
https://masqbrowser.com
Other
173 stars 28 forks source link

Startup DNS Check: Gossip Free World #401

Open clandest opened 4 years ago

clandest commented 4 years ago

Add the Free World bit to the NeighborhoodConfiguration and modify the Gossip protocol to disseminate it.

czarte commented 4 months ago

We probably want to combine more strategies, where we want to proceed with the distribution of the Country code and Free World Bit in our network.

  1. Node it self will find his public IP in our binary DB of country codes and Gossip this information into his Neighborhood.
  2. All Nodes in Full Neighborship will run the Country by IP localization process for each of his direct Neighborhood member in order to validate his information delivered in Debut or Standard Gossip.
  3. Every member of the Patch can ask Exit Node to transfer temporarily into its full Neighborship and validate his Country Code and Free World Bit as described in #789

In all these cases we need to modify the gossip to contain this information.

On the startup of the Node, the NodeConfiguratorStandard will obtain the public IP of the machine, run the get_node_location() fn, and construct his NodeRecord with Country Code and Free World Bit. This information should be included in the NodeRecordInner_0v1 in Debut Gossip.

In Standard Gossip we share our state of view of the observed Patch of Network from our Node. In NodeRecordMetadata we store our view of the Nodes location, if we have the IP of the current node in our DB, we always run the get_node_location() on its IP and results We store in NodoRecordMetadata, to be able to see if there is a difference between that what Node is telling about itself and what we know about him.