How exactly do I know that the algorithm is correct? (Proof, of course, but how?)
How do I know that my implementation is correct? (Unit test, of course, but how? How do I simulate/test asynchronous systems with failing communication? How do I catch all possible edge cases?)
Is there an comparative overview of consensus algorithms detailing pros and cons? (A few days ago there was a post about Paxos/Raft having abmysal worst-case performance.)