4 ms·
If you can avoid multithreading in the design of your consensus protocol, this also means that your implementation becomes more deterministic. If you can have
by _vvhw 5y ago
If you can avoid multithreading in the design of your consensus protocol, this also means that your implementation becomes more deterministic.
If you can have the design fully deterministic by stubbing out the message passing, storage and time source (by representing time as ticks), then you can do deterministic simulation fuzzing like we do in TigerBeetle, which is a high velocity testing technique for finding/reproducing/fixing interesting (and rare) distributed systems bugs: https://github.com/coilhq/tigerbeetle#simulation-tests https://github.com/coilhq/tigerbeetle#simulation-tests