You know you're into far flung edge cases when the #cassandra tests look as follows: $exrd
1. Spin up 32 validator network 2. Spam at 50 tps 3. At block head 20 shut down 28 validators 4. Continue operating 4 remaining until liveness issue @ head ~65
5. Remaining validators should make probabilistic progress. 6. Bring 28 validators back online @ head ~90 6. Returning validators will disrupt network topology 7. Returned validators sync to current head 8. Liveness should immediately return @ head ~100
Real nasty!
Meh
Step 8 should say Deterministic safety & liveness should immediately return @ head ~100
We have probabilistic liveness / safety between steps 3 - 8
• • •
Missing some Tweet in this thread? You can try to
force a refresh
As far as I understand, these solutions are essentially two separate consensus mechanisms.
Probabilistic to perform state transitions, with deterministic to finalise the best version of the former.
It works & does the job required, so why is #cassandra different?
....
Think of a hybrid car. There is a petrol engine & electric motor working together to move the car.
They are 2 separate systems & are open loop, one way. The engine if needed can generate electricity for the motor, but the motor doesn't produce anything useful for the engine...