3

In a true mesh network, devices connect directly, dynamically and non-hierarchically.

Each node allows for every node to participate and self-configure.

However, the IOTA network consists of nodes that are both open and closed to peering and also may restrict that peering according to manual tethering between individuals.

Since node relationships are not openly available (APIs are open or closed) and peering may be open/restricted, is IOTA better described as a conventional star/tree local/wan network?

See: Wikipedia: Mesh networking

1. The IOTA IRI node software does not have any functionality out-of-the-box that enables it to be added to the network.

Neither the default configuration connects to peers other than those manually specified (none provided by default). Nor does it allow incoming connections (by default) other than those manually specified.

The result of this is that the peers that are likely to added manually are not very diverse and not very many. Peer discovery and self-organizing behaviour is entirely missing by default and there is no software coded that actually performs automatic peering on full-nodes.

2. In a true mesh network, peers can self-organize. In IOTA, peers are manually 'mutually tethered'.

It is not possible for the network to self-organize like a true mesh network because peers can not necessarily obtain 'getNodeInfo' and/or other essential peering access via 'addNeighbors' and 'removeNeighbors' etc.

For example, if I add someone's node as my neighbor, unless it is a special node, the neighbor is not configured to automatically send me peers and enable me to add those peers as well.

Even if a peer is manually added and the other node's owner reciprocates to add me back, there is no further peer sharing or discovery in the software to ensure that peers are shared throughout the network.

In fact, the api '--remote' is restricted by default and peering is entirely dependent on the configuration file. The exception to this is 2nd layer services, such as Bolero or Nelson, that run on the same machine and can configure the peer by escaping the api restrictions.

3. Peering is entirely manual (as in a star-hub) and/or done by 2nd layer solutions (such as Bolero, Nelson, etc.) that run on the same machine as the node and automatically perform manual tethering.

Full nodes are configured to reject any requests from neighbors that weren't mutually tethered with them. That is a notable departure from other mesh networks and from notable p2p networks.

footnote: this question is without prejudice to mesh networks or star/tree networks. I am not supposing that one is better than the other.

  • It's likely to be a mesh network as opposed to a star or a tree network, as defined here: en.wikipedia.org/wiki/Network_topology. An example of such a global mesh network where peers have to be manually configured is the network formed by BGP routers; i.e. the core of the Internet. Whether it's a "true" mesh or not in some arbitrary sense is a "is it atrue Scotsman" discussion and besides the point. – kfx Feb 24 '18 at 21:51
  • Also, the Wikipedia article you reference talks about specific kind of mesh networks: LAN mesh. IOTA does not aim to be a LAN technology, so it's definitely not a mesh network of this kind. I believe there's a confusion of terms. – kfx Feb 24 '18 at 22:08
  • All these points equally apply to inter-autonomous system BGP routing. Yet clearly no-one would call the Internet "a star or a tree network". quora.com/Which-topology-is-used-in-the-internet – kfx Feb 24 '18 at 22:36
3
  • There is no hierarchy in the IOTA network. i.e. there is no authority relationship between nodes (except for the coo in this early stage).

  • Dynamic connections between nodes means that connections between nodes may change over time without disturbing the network. It can be done in the IOTA network (either manually by editing a configuration file, either automatically with Nelson).

  • Pairing restrictions is just practical solution to the fact that a server with reasonable computing power and bandwidth can't handle a huge amount of neighbors (any mesh-network have the same limitation).

  • Unavailable APIs is irrelevant regarding network topology (API restrictions are just in place to prevent attacks)

Regarding all this points, we can say that IOTA network is more a mesh network than a tree (or star) network.


Just a few more precisions after your comments :

Unavailable APIs is not irrelevant because it limits the ability of a node to self manage its relationships to the network. If a node closes itself to being peered, or only allows certain peering behaviors, then that takes away from dynamic connections between nodes.

IMO, "Dynamic connections" don't means that you must be able to establish a peer to peer connection with any node at any time. It means that connections between nodes may be evolve over time and that won't hurt the network significantly.

Also, you say there is no hierarchy in the IOTA network. However, there are only a few public nodes listed and many overlay services, such as Bolero, use a strict set of nodes for bootstrapping. That implies that there is a hierarchy.

Important word in your comment is "bootstraping". Indeed, there is kind of central server to support bootstraping process (when you use an automatic peer discovery infrastructure like Nelson). But this is just for automatic bootstrapping, those servers aren't required to run the network. BTW, Bitcoin also use similar technique to bootstrap a node (i.e. there is a list of IP hardcoded in bitcoin-core client: those hardcoded servers plays the same role has Nelson/Bolero).

there are only a few public nodes listed

Yes, but I don't think it have an important impact on the nature (mesh vs tree vs star) of the network. Today, those non-public nodes are probably connected to less light-nodes than the public ones. But, IMO with mass-adoption (or adoption by big device manufacturers), it will be the opposite in future (i.e. non-public nodes will be connected to far more light-nodes than public ones).

full nodes are configured to reject any requests from neighbors that weren't mutually tethered with them. That is a notable departure from other mesh networks - such as Bitcoin or Bittorrent, etc

[I'm not an expert in Bitorrent/Bitcoin protocol] AFAIK, any node (in any mesh network) always have the ability to reject a connection from another node. In Iota, the default is to only accept known neighbors while in other mesh networks the default can be to accept connections from unknown peers. Again, I don't think that this difference in the implementation impact the nature of the network.

It is clear that peer switching in IOTA isn't as smooth as it is in a Bitorrent/Bitcoin networks, but this fact don't transform the mesh network in a star/tree network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy