## EPF5 Dev Updates - Week 3
[◀️ *previous update*](https://hackmd.io/@hangleang/epf5-week2)
### Goals For This Week
- [x] Get myself familiar with `Grandine` repo (e.g. project structure, process flow, etc)
- [ ] Seek support from mentors, and start working on project proposal
- [x] Continue working on making branch electra of Grandine compatible with `v1.5.0-alpha3` specs
### Dive Deeper (Reading)
- Reading Vitalik's article on [sharding](https://vitalik.eth.limo/general/2021/04/07/sharding.html), [DAS](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) details explanation
### Calls & Office Hours
- Join [PeerDAS #2](https://github.com/ethereum/pm/issues/1070) breakout room call, there are discussions around the specs of defining max blobs limit, whether to [specify `max_blobs_per_block` with each payload](https://github.com/ethereum/consensus-specs/pull/3800) or [add `base_fee_per_blob_gas` in `BeaconState`](https://github.com/ethereum/consensus-specs/pull/3813).
So basically, the first one is calculating the blob gas in the EL, and the second one is calculating it in the CL.
- Another discussion is around clarification on [peer sampling methods](https://github.com/ethereum/consensus-specs/pull/3782), and core devs has decided to merge the PR since there is no objections.
- [devnet-1](https://peerdas-devnet-1.ethpandaops.io/) *(which seperately from `electra-devnet`)* has been launched after the call, with 3 CL clients *(Lighthouse, Prysm, and Teku)*, will include other clients as well once ready.
- Join [Office Hours #3](https://github.com/eth-protocol-fellows/cohort-five/issues/96) with 2 guests, they are both fellowship alumni in EPF4, they're currently working with Nimbus client team.
In the session, they were sharing their journey and experience, how they tranform themselves from a person that don't know anything about cryptography to the one that build a crypto library from scratch. very inspiring stories, and especially motivating people who're participating permissionlessly, like me.
### Practices
- Continue patching up on `electra` implementation in Grandine, was able to complete all of Electra EIPs mentioned in the `alpha3` specs, except some parts below that seems to be complicated *(avoid of making changes)*
- modified [process_attestation](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#modified-process_attestation) specs with existing [implementation](https://github.com/grandinetech/grandine/blob/electra/transition_functions/src/electra/block_processing.rs#L477-L507), seems to be completely difference. Since it's involved with Rayon, parallel data processing technique, and I'm not yet capable of handling this technique
- modified [process_deposit](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#deposits) specs against existing [implementaion](https://github.com/grandinetech/grandine/blob/electra/transition_functions/src/electra/block_processing.rs#L509-L521) with the reusable function [`apply_deposits`](https://github.com/grandinetech/grandine/blob/electra/transition_functions/src/electra/block_processing.rs#L767) in `block_processing.rs`
- Debugging issues relating `BlobSidecar` and found out which it caused by the `Blob` type itself, when deserializing from bytes array to the `ContiguousVector`, that customize on a type from generic-array lib. *(attached a screenshot from my debugging)*

- From suggestion's Saulius, we can bypass this by providing `--release` flag on `cargo test` command. (e.g. `cargo test -p types --lib --release`), but we still need to find a way to fix the issue
### Outside Activities
In Cambodia this weekend, we have an annual 2 days developer conference and tech expo, called [`CODE-C`](https://www.idri.edu.kh/events/code-c-2024/). This year we have 6 different program tracks, cover many trending technologies including **Web3/Blockchain**. We honor to have representative of **Devcon** team, he flew from Thailand to join and support us during the event. We also delight to have organizer of **Pagoda** gathering in Changmai, where we gather together among Asian Web3/Ethereum ecosystem builders, thinkers and leaders, came to share their opinions on how we as an network that interoperable and support each others node within the network. We are on the right path on activating our Web3/Blockchain communities and ecosystem in Cambodia.

### Plan For Next Week
- Start working on project proposal **(prioritized)**
- In-deep focus on debugging/patching up on the branch `electra`
- Catch up on recent specs updated in PeerDAS, and any related EIPs
### Conclusion
In this week, I spent most of my time on getting myself familiar with Grandine code base, update PR with remaining specs in `v1.5.0-alpha3` electra, and also debugging some issues after making those changes. On the other side, I joined a few calls, one is the PeerDAS breakout room, and another is office hours. I learned a lot and got inspired by both fellowship alumni during office hours.
Due to the issues above, I didn’t have time to start working on project proposal yet, which will prioritize for next week.
Thanks to Saulius for helping, and supporting, point me to the right direction.
---
[▶️ *next update*](https://hackmd.io/@hangleang/epf5-week4)