12

Since transactions are propagated in the network using full nodes—can it be said that the number of full nodes influences the maximum Tangle scalability? To paraphrase, even if transaction validation is done in parallel each time a transaction is incoming, can the nodes get overburdened and cause network congestion, if there are not enough full nodes?

To expand:

  1. this answer states that a full node does have to process every transaction eventually
  2. this answer states that spamming can harm the network if the workload is unevenly balanced (many nodes are dormant and the used ones are being spammed)
  3. this question, at this moment lacking an answer, is suggesting that the entire network can be attacked by attacking a single full node since all valid transactions will be relayed to the network eventually.

This leads me to conclude that the maximum tps is determined by the maximum processing power of a full node in the Tangle. Am I oversimplifying this?

  • I asked similar questions here iota.stackexchange.com/questions/1049/…. As far as I understand - yes, like in many other cryptocurrencies capacity of the network is limited by capacity of one node. Swam nodes will help to solve this problem, but they don't exist yet as far as I know. BTW, they won't cause network congestion, the slow nodes will just fall behind. – alexpods Jan 17 '18 at 0:10
  • To be precise, if many entities use a specific node and don't spread the workload among others available, that node becomes congested meaning all transactions passing trough will be lagging. Regarding your question, I find it excellent and am interested in an answer. Do you have any references for swarm nodes? – user3223162 Jan 17 '18 at 9:58
  • Furthermore, another similar question: iota.stackexchange.com/questions/516/… – user3223162 Jan 17 '18 at 10:03
  • And another, seems like they are all confirming our premise: iota.stackexchange.com/questions/537/… – user3223162 Jan 17 '18 at 10:05
  • This question confirming that every full node receives every transaction eventually even if they do work in parallel: iota.stackexchange.com/questions/497/… – user3223162 Jan 17 '18 at 10:12
3
+50

You are asking two questions that are somewhat contradictory:

  1. "[...] can the nodes get overburdened and cause network congestion, if there are not enough full nodes?"

  2. "[...] that the maximum tps is determined by the maximum processing power of a full node in the Tangle. Am I oversimplifying this?"

The first asks if more full nodes increase scalability, the second suggests that it doesn't help but that scalability is limited by the strength of the average full node.

In the current state of the network (and in the foreseeable future) it is true that adding more full nodes does not make the network more scalable. Every transaction has to be processed -- and this means not only recorded but validated by checking it's complete ancestry -- not only by each full node but most importantly by the coordinator (a single node as far as I know). See also this question. Adding a new node means that more work is done redundantly but it doesn't reduce load on the other nodes at all.

You could argue that full nodes around the coordinator can shield it from malicious spam by filtering out (not relaying) obviously contradictory transactions*. However, in order to do this, they will have to do more work than the coordinator (they will have to know and verify all transactions as well in order to assess whether an incoming tx is valid) and become new bottlenecks themselves.

* The notion that "edge nodes" can protect inner nodes is brought forward by the developers and IOTA proponents from time to time. Here is an example of a purported such statement by CfB: https://www.tangleblog.com/2017/06/15/the-tangle-is-safe-a-commentary/ (read from "To do a sudden 34% attack")

  • Thank you for your response detailed response. Could you expand on how this is to be fixed? Also, any kind of reference is appreciated. – user3223162 Jan 22 '18 at 12:47
  • Regarding the fix, I would ask the IOTA developers. Personally, I don't believe it will be fixed any time soon because I have not seen any solid technical proposals how to fix it and contrary to the commonly held belief of the IOTA community this is not a problem that is trivial to solve. I don't know any more references than those in @GJEEE's answer and as you can see they are as vague as they can be. – lex82 Jan 22 '18 at 15:20
  • Yes, the references are vague and I'm not having luck contacting any of the developers. Your answer is comprehensive however could you provide references to the provided statements about the full nodes? I will pursue the sharding issue in another question. – user3223162 Jan 24 '18 at 8:00
  • I added two references. – lex82 Jan 24 '18 at 11:34
  • I was hoping for more official sources but since there obviously are none I guess this will have to suffice. Thanks for the response. – user3223162 Jan 25 '18 at 15:17
5

I guess you are right for the current state of mainnet.

However concepts like sharding, swarmnodes, horizontal scaling and hardware support in the form of JINN (and/or Q?????) will eventually lead to hopefully a highly scalable solution. All these features together will enable some form of collective intelligence where full-nodes are cooperating (without needing to know everything themselves).

A bit vague but these are just my thoughts.

References:

Swarmnodes/sharding: From IOTA's roadmap

Another approach planned to enable the IOTA client running in these very resource restrained environments is to shard the core logic and database amongst different devices that then collectively run it. Similarly to swarm intelligence, this enables a cluster of devices to efficiently make transactions without being a full node, but having reduced trust requirements from SPV and light clients.

JINN: From an old webpage from Jinn Labs (founded by CfB and David)

How powerful will a Jinn processor be?

Jinn should not be compared to processors that you buy for your computer today. Those are based on vertical scaling, meaning that the processors get more and more powerful. Jinn on the other hand utilizes horizontal scaling. I.E the increase in computational power comes from a network of Jinns (distributed computing).

But how powerful will one singular Jinn processor be?

This is unknown and also not important. Only performance/electricity or performance/density matters.

How is Jinn's horizontal scaling different from what is already being employed to mitigate the exhaustion of Moore's Law (I.E. just adding more processors) ?

Answer: Architecture is being developed in such a manner that it avoids limits set by Amdahl's law (http://en.wikipedia.org/wiki/Amdahl's_law). Architecture of x86-64 can't afford this due to marketing issues.

Q: Nothing formal is known about Q. The following article speculates about what Q might be. For sure it will be a game-changer.

“Q” brings distributed computing to the IOTA protocol with JINN processors (or emulators). It scales horizontally, benefiting from the global computational power of all other JINN devices (or emulators).

  • I appreciate the answer however I would like to get some references regarding my statements. Can you reference sharding, swarmnodes, horizontal scaling and Q? – user3223162 Jan 22 '18 at 6:49
  • @user3223162 I added some references, Hopefully they will help you to explore further. – GJEEE Jan 22 '18 at 13:20

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.