With IOTA, every neighbor, either directly or by request, is required to share the transactions it receives with its neighbors in order to ensure that the entire network sees all transactions eventually.
1) Given that every IRI node has 8 neighbours, for a 1000 TPS network transaction rate, what is the actual number of transactions that will need to be transmitted within the network of all nodes (suppose a number of nodes, perhaps anywhere from 1,000 nodes up to 10,000 nodes worldwide)?
2) Given that a transaction is approximately 1.6K bytes, how many bytes will be transmitted by the entire network (usage of worldwide internet quota) for every actual transaction created on the network?
If a network of 4 nodes received one transaction and shared it with each neighbor using a simple 'broadcast to all neighbors' protocol and the origin of the transaction is not broadcast to again from any recipient, the amplification might look like this:
Nodes = [n0,n1,n2,n3] A single transaction is created and sent to node n0. n0 -> sends to n1 and n2 and n3 n1 -> sends to n2 and n3 n2 -> sends to n1 and n3 n3 -> sends to n1 and n2 In this example above: - the network amplification is 9 times - 14.4K bytes of data is shared
With the IRI, nodes share with some neighbors but not all due to the p_propogate variable. They also request missing transactions from the network. They might also send some back to the origin (original sender of received transaction). There is also code in the IRI designed to randomly drop received transactions and/or to randomly thwart the data from being processed. You will need to check the IRI to see what actually happens. So those probabilities wired into the IRI need to be taken into consideration.
With the IRI, the quantity (TPS) and payload (bytes sent/received) amplifications would need to include that of all transactions broadcast (gossiped) AND that of all transactions requested.
I will award a 50 point bounty if you also include the quantity and payload of all the missing data requests being sent.
We are looking to find out the total number of transactions per second that the entire network must handle and also the bytes for all those transactions, given that the sharing is exactly as specified in the current IRI reference software and that network load is 1000 TPS and given that each node has exactly 8 neighbors and that each transaction uses exactly 1.6K bytes of internet bandwidth.