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.
If the basics are not covered, you can put on eng. teams all the 10x engineers you want, and it will still look like as if the team is barely treading water. When the basics are covered, it makes a world of difference.