there's one thing that appears like an issue to me. An that is the importance of the number n of all the nodes, which is a fundamental variable in the calculations done by the algorithm.
Do all nodes need to be online for system to function? Number of current nodes?
Over 2/3 of the nodes need to be online for consensus. If fewer are online, the transactions are still communicated to everyone online very quickly, and everyone will immediately know for certain that those transactions are guaranteed to be part of the immutable ledger. They just won't know the consensus order until more than 2/3 come online.
Especially in a non-permissioned system, the number of nodes will vary considerably over time. How will n be determined in such a system so that it not only allows for communicating existing transactions but also for consensus on new ones?
It's not easy to determine (or even estimate) the number of nodes in a p2p nework that are online at a given time. And even if you could guess that number, what would be the effect of a highly varying n on the hashgraph itself? Or would you first need to reach consensus about the size of the community?
This is what Leemon seems to imply and according to him, this would work out nicely (
https://www.youtube.com/watch?v=NI6sQHfIPbk, starting from 29.15). But isn't that rather circular reasoning? Or maybe you could just include the fact that a node isn't reachable anymore in your gossip. If more than 2/3 of the nodes gossips that node x is down, n would be reduced by 1 by all nodes as per the consensus achieved by them.
Alkan, I had the chance to ask Mance Harmon, Swirlds CEO, your question on the Hashgraph Telegram Group:
https://t.me/joinchat/DpeJM0R1FpqUD5N2YvNcAQThis was his response:
"What's important to remember is that the hashgraph is unlike other gossip protocols. The information that is being gossiped is both transactions (understood by the application running on top of the platform) and information that conveys who has talked to whom and when. So, it's incorrect to say that "It's not easy to determine (or even estimate) the number of nodes in a p2p network that are online at a given time." Actually, it's incredibly easy if you have a hashgraph that represents Gossip About Gossip. It's easy to look in the hashgraph and see the last time a given node gossiped. It's directly observable in the hashgraph. The hashgraph actually gives you a fantastic view of network weather and who is online and when.
In a permissioned system we only let people join if they are going to be active. Because the hashgraph comes to a moment in time where all nodes agree on exactly when a transaction takes effect, they can all agree on when the number n changes because somebody joined or left. So, at every moment every node is in agreement on the value of n.
Today we are describing permissioned systems. We will describe our ideas for public systems in the future."
I hope that helps. If you join the telegram group you can chat direct with some of the lead developers Hashgraph Telegram Group:
https://t.me/joinchat/DpeJM0R1FpqUD5N2YvNcAQ