---
# System prepended metadata

title: EPF Dev Update (Week 14)

---

# EPF Dev Update (Week 14)

Hey, there!

This is a summary of my week 12, week 13 and week 14.

## What did you do in the past three weeks?

I have been focused on contributing to the [Elixir Consensus Client](https://github.com/lambdaclass/lambda_ethereum_consensus) by LambdaClass.

I got 4 [pull requests](https://github.com/lambdaclass/lambda_ethereum_consensus/pulls?q=is%3Apr+author%3AGodspower-Eze+is%3Aclosed) merged and more are in the works.

## What is the most fun issue you worked on so far?

It would be the implementation of the [shuffling algorithm](https://github.com/lambdaclass/lambda_ethereum_consensus/issues/242).

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](https://eth2book.info/capella/part2/building_blocks/shuffling/#swap-or-not-specification) shuffle algorithm is used.

## What would I be doing for the next week?

- Continue contributing to the Elixir Consensus Client
- Work on adding test vectors to Pedersen Commitments and IPA in the [constantine](https://github.com/mratsim/constantine/)







