Verification of the Free World Bit and Country code in Neighborhood.
We need to create verification process of Exit nodes geo location, to prevent Nodes from lying in several scopes
-
Every time that we spot the change of
Country codeof Exit Node in recieved gossip and there is discrapance in previous state and current state, we need to react by checking the IP of Exit Node if it matches with our DB record and if not, there need to be process to verify the real state of localization particular IP -
there needs to be put in place the defence mechanism, something like "Malefactor ban", to provide opportunity to ban the Exit Node, which is lying about his
Country codeorFree World Bit. - Can distant members validate?
- Validation thru the requested web content - send some restricted content, delivered from exit node, to the network and ask to validate its content
-
Put list of countries (countries.rs) to DB and load it on startup of the Node to the
pub static ref COUNTRIES: Vec<Country> -
CLI interface to turn
truetofalseon Free World Bit
Scheme of Node jump into full neighborship with exit node, to verify its Free World Bit and Country Code
Scheme before move:
Scheme after move:
Scheme of the new design of "I am alive" Gossip, where Node with Malefactor Ban of broadcasted Node "I am alive" gossip is not passing this gossip to its primary Neighbors, so these neighbors are stuffing up some malefactor threshold in theirs NodeRecordMetadata for particular Node.
Here is the commit with the malefactor changes which is putting the fn ban_malefactor() to particular places where we are now logging the malefactor to the Log. This function is empty and waiting for implementation in the Epic of Malefactor ban:
1501cec0cb541fd0fb613af31135493fba1fcc3d
If you do a git fetch to pull this commit down, you can probably cherry-pick it into your branch
This card will likely be modified to validate immediate neighbor country code only
Potentially, it will be a periodic check of the country-code