Hey, there!
This is a summary of my week 12, week 13 and week 14.
I have been focused on contributing to the Elixir Consensus Client by LambdaClass.
I got 4 pull requests merged and more are in the works.
It would be the implementation of the shuffling algorithm.
Shuffling is a fundamental part of the Consensus Client.
To better understand why shuffling is important you have to first understand why and how Committees are used.
Committees are a subset of the full set of active validators that are used to distribute the overall workload.
There are two types of Committees. Beacon Committees manage attestations for the consensus protocol while Sync Committees are used by lightclients. Shuffling is used in both but we will focus on Beacon Committies for now.
There are 64 Beacon Committees at every slot (12 secs) and a validator can only be part of one of these.
Beacon committee membership is random and ephemeral. And, this is where shuffling comes in.
Shuffling is a secure way of assigning validators to committees. Ensuring the correctness of the committee membership being random.
The swap or not shuffle algorithm is used.