I’ve asked this question over at StackExchange but I think this forum is the better place for a discussion. fjiter stated:
A single IOTA node can already handle around 1000 transactions per second, this is quite a bit but
probably not enough in the future. Once this becomes an issue sharding can be a solution. This
means that only a part of the tangle is handled by cluster of nodes that for example only handle
transactions starting with the letter ‘A’; Another cluster will be responsible for transactions starting
with the letter ‘B’, etc. I think the IOTA team still has some time to solve this issue completely
before it becomes an issue.
extended by aboose:
To add, sharding will not be based on arbitrary labels, but on economic activity. Tangles will
naturally form subclusters
I’m thankful for these explanations, but I can’t be satisfied. IOTA allegedly is a scaling DLT solution, so please show me exactly how you get beyond these ~1000/tx/s! Let’s focus on these natural subclusters:
Some simplifying assumptions:
- a single full node can handle no more than 1000 tx/s
- let there be two economic centers in the tangle, producing 900 tx/s each
- tip selection keeps within economic centers except ~1 tx/s that links two random tips from the two subclusters. Let’s call these “linking tx”
- as suggested in the above quote, iri nodes will chose to focus on either of the two subclusters as they can’t keep track of both at the same time (because 1800tx > 1000tx)
My question now is the following:
Given nodeA serving subcluster1 and nodeB serving subcluster2, how can nodeA validate a linking tx if it only knows one of the previous two tx linked?
let’s say txL links the subclusters by referencing tx1 from subcluster1 and tx2 from subcluster2
nodeA has never seen tx2, so it can’t accept txL
- nodeA asks nodeB to supply tx2 together with a proof that tx2 is legit. But how would nodeB prove this?