# EPF-5 | Week 2 Following from the previous week, these are my major updates for the week 2: * Completed understanding libP2P architecture in detail following the [docs](https://docs.libp2p.io/concepts/introduction/overview/). ![libp2p](https://hackmd.io/_uploads/SJQ_A9BLA.png) * Worked on some dummy projects with Nim lang. To get better hands-on on Nim and understanding the dynamics of libP2P network, implemented a very basic kademlia distributed hash table and peer discovery algorithm followed in libP2P, [Source Code](https://github.com/Richa-iitr/peer-discovery). Will try making it full fledged and maybe with some custom twists and experiments in the upcoming weeks. * Followed Prysm [docs](https://docs.prylabs.network/docs/install/install-with-script) and ran a node, however couldn't get fully synced node due to hardware limitations but got insights of how execution and consensus clients sync. Used Geth as execution client and Prysm as beacon client in an Unix based environment. ![Screenshot from 2024-06-20 15-33-43](https://hackmd.io/_uploads/Syru_rrLC.png) * Also got a little familiar with [Constantine](https://github.com/mratsim/constantine) library: cryptography library providing primitives and proofs for ethereum protocol. Learnt about what [C bindings](https://cryptography.io/en/latest/development/c-bindings/) and FFI(Foreign Function Interface) are and tried out very simple C bindings for Nim based code. Would research more on these in the upcoming weeks since there are not many resources around these so maybe a seek through of the code and comparison with the other libraries like [BLST](https://github.com/supranational/blst/tree/master) might help. ## Finalised Projects Though there are several areas to dig deep into but to limit the area of focus during the course of fellowship, I will be mostly working on the following projects along with attending the ACD calls and office hours to research on other areas. * Custom Golang implementation of LibP2P proposed by Prysm. * Create C bindings for Constantine cryptography particularly C bindings for Constantine's Verkle cryptography support. ## Further roadmap * Prepare project proposal for the projects mentioned above. * Understand Constantine library in depth. * Understand verkle trees, current work on them and the previous cohort's work on them. * Go through the codebase of libP2P. ## 💡 Weekly pill Went through https://ethresear.ch/t/block-building-is-not-just-knapsack/19871.