Purpose of the test is to ensure that #cassie can support at least validator set sizes of 100.
100 validators provides an acceptable level of security, decentralization etc ... more is always better OFC.
As #cassie is the first leaderless multi-decree #BFT it's a critical test! Until now it's simply been theory and a hunch that this would work for over 18 months.
To make things "worse", the test itself is configured to be HORRIFIC, with parameters WAY outside nominal.
Proposal generation is governed by a POW variant.
In this test the difficulty of the POW was reduced dramatically, resulting in each validator creating a proposal every second.
Ideally we want 5-10% of validators producing a proposal every few seconds.
You can see in the above console output that the "Proposal pool" is almost 400 because the POW difficulty is reduced.
That's 400 possible progress options!
Each validator has to evaluate each one, determine where the majority are converging, make its own vote.
Once a proposal in the pool has >2f vote power, it is accepted & committed.
In the test, the proposal pool was averaging a little higher than 400 constantly.
Under nominal conditions, I'd expect the size of the pool to be ~10-15 on average.
Under these extreme conditions, finality suffers as you can see, in the image it's averaging 70 seconds compared to ~7-12s under nominal.
However, considering the abuse each validator is enduring dealing with 400 proposals ever couple of seconds, 70 seconds isn't too bad at all.
I'm also running small amounts of spam, ~10 TPS so as not to trigger any execution or verification shortcuts, which adds ~10% to finality.
Even though this test isn't concerned with throughput at all, I wanted to touch all parts of the protocol, hence the spam.
Just to make things a little harder, I went #fullsend with 128 validators even though I only needed to test to 100 for confidence.
Here's a little snip showing 125/128 have acquired some vote power and thus are voting and authentication load on the system.
Finally I wanted to gauge if my authentication complexity is as low as I think it is.
Under the best conditions proposal voting verification complexity can be almost O(1). Under these conditions I'm expecting somewhere O(log n).
A quick check of CPU use shows each machine using ~50% of CPU. Not bad ... until I tell you each machine is running between 8-32 #cassie instances depending on spec! 😎
The one here is a beefy box so has 32!
All in all, a mind-blowing success!
Leaderless multi-decree BFT is now really REALLY a thing! 😎
Now ... I'm sure some🤡will say this isn't a valid test.
The machines running the #cassie instances are on differing continents, open cross connections with each other, perform all signing/verification & consensus, doing so under some extreme conditions!
So whatever ...
• • •
Missing some Tweet in this thread? You can try to
force a refresh
There's a lot of questions about #cassie, what is the significance, why is it cool, what does it demonstrate, how is it #web3. Even moreso since the #radflix demo dropped & the exposure it got on various socials etc so here is a thread...
Hopefully yall know by now that it is primarily a research network. It started as a collection of radical ideas around #consensus, #sharding, #blockchain and #cassie is the embodiment of those ideas to demonstrate viability. But it has now become so much more...
It is technology that can do things that were said to be impossible. Technology that can do things other L1 tech hasn't even dreamt of trying to do. It is a technology which is being used to show proof of potential on all the *hardest* things first...
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...