I coded a tool called malachite-simulator. It is meant as a playground to facilitate experimentation in Rust with new abstractions on top of Malachite. I used the simulator to build two proof of concepts, including a toy integration with reth.
Why does the Tendermint algorithm require the gossip communication property? In its absence, the algorithm may never terminate due to the hidden lock problem.