In peer-to-peer networks like IOTA, a node’s neighbors are its only source of information. Any peering mechanism must therefore focus on connecting to a healthy number of honest neighbors, i.e. nodes not trying to harm the network.
We introduce an autopeering mechanism in which every node has its own criteria for selecting potential neighbors. An attacker cannot influence a node’s decisions in the peer selection process, and therefore a node’s particular “view” of the network is both local and unpredictable. This serves to protect against outside attacks (such as eclipse attacks) and makes it practically impossible for attackers to target certain nodes in the peering process, while ensuring nodes always have at least a certain amount of honest neighbors.
In addition, the autopeering mechanism will try to create a small-world network, in which nodes can be reached from every other node through a small number of intermediate steps. This property further speeds up the time to reach consensus.
If you would like to know more about the inner workings of the autopeering module, you can read our blogposts Autopeering Part 1 and Part 2 as well as have a look at the source code of both our Simulator and the GoShimmer prototype.