Can anyone describe the differences in Tendermint and Hashgraph?
We are looking to use a BFT consensus solution with mongoDb like in BigchainDb but we are wondering the differences with Tendermint and Hashgraph?
thank you
Can anyone describe the differences in Tendermint and Hashgraph?
We are looking to use a BFT consensus solution with mongoDb like in BigchainDb but we are wondering the differences with Tendermint and Hashgraph?
thank you
It is more complex than just MangoDB or not.
Tendermint is BFT in the partially synchronous way, it means that sometimes the network is totally asynchronous, but eventually, we will have a perfect window of synchronism. Tendermint is a Blockchain in a sense that there is blocks where members agree on. There is rounds, validators and votes.
To have a precise idea, here a nice view on how it works : https://tendermint.readthedocs.io/en/master/introduction.html#consensus-overview
Hashgraph is totally different in its structure. If both indeed use the Gossip protocol, there is some big differences : The DAG and virtual voting. By the structure of the hashgraph itself, you can virtual vote without sharing any information with the other peers. Hashgraph do not do any assumption on networking or processing time, it is completely asynchronous BFT. Finally, as with Tendermint, you have proofs on the BFT (Not the case at all with Blockchains !)
Now, what is better ?
Actually, it depends on the implementation, but it appears that hashgraph have some great assets : Performance and above all fairness.
Performance because all the voting is virtual. Again, with Tendermint, all votes have to be sent between all the peers. The number of message is polynomial with the number of peers. Finally, you can not have fairness in a blockchain system, the miner decide in the transaction to put or not in the block and in which order. I am not a specialist of Tendermint but it seems that there is no fairness. Indeed, there is proposer nodes that broadcast the suggested block. Client just connect to the proposer who have the final word.
It depends how this points can be relevant for you. Are you in the asynchronous model ? If not, benchmarks of Tendermint have to be done, may be the convergence is better in partially synchronous models. A lot of questions !
Tendermint is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine, written in any programming language, and securely replicates it on many machines. HashGraph on the other hand is an Asynchronous BFT based consensus algorithm that follows gossip to gossip protocol for achieving consensus among replicated state machines. HashGraph also uses virtual voting to achieve fairness and ordering in transactions.
BigchainDB 2.0 uses MongoDB and Tendermint, not Hashgraph.
Tendermint is based on a BFT consensus protocol from 1988 (with improvements). It has some similarities with PBFT, but isn't the same.
Hashgraph is quite new and works very differently.