Try   HackMD

After the kickoff call, I am in the process of identifying a project to work on. Considering my interest in both the Execution Layer (EL) and Consensus Layer (CL), I have started exploring Prysm and will subsequently move on to Geth.

In my opinion, the best way to learn anything is by going through official documentation. During my exploration of Prysm, I came across a valuable resource called "Golang resources" within the Developer wiki, which led me to discover "Ethereum Development with Go." Here are the key takeaways from my study:

  1. Introduction to go-ethereum packages:

    • Learned about the usage of different go-ethereum packages, such as abigen and solc for smart contract creation/deployment, ethclient for obtaining account nonce, block hash, specific block, and transactions within a block, and utilizing whisper for setting up messaging and consuming messages through go channels.
  2. Understanding the structure of goethereumbook.org:

    • Recognized the importance of having basic knowledge of the Go programming language to fully comprehend the content of goethereumbook.org.
    • Imagined go-ethereum as a comprehensive package consisting of various smaller packages, including ethclient, common, crypto, and more.

By following this learning path and gaining familiarity with these essential components, I aim to enhance my skills and contribute effectively to the project.

Bazel

  • Bazel is a powerful build system utilized in the development of Prysm, a monorepository for Ethereum Execution Layer (EL) and Consensus Layer (CL) components.
  • Prysm's monorepo structure consolidates multiple projects and components, making dependency management a challenging task.
  • Bazel plays a crucial role in Prysm by streamlining the process of handling dependencies within the monorepo.
  • With Bazel, all Prysm packages can be efficiently built and managed, ensuring smooth dependency resolution and maintenance.
  • By integrating Bazel into Prysm, the development workflow is simplified, and the project's maintainability and scalability are enhanced.
  • Bazel's capabilities enable Prysm to effectively handle the complexities of managing interdependencies between various components, libraries, and modules.
  • Bazel's robust features empower Prysm to manage building and testing processes consistently and reliably.
  • The utilization of Bazel within Prysm ensures a well-structured development environment, facilitating seamless collaboration and accelerating progress in the Ethereum Execution Layer and Consensus Layer.
  • Overall, Bazel serves as a crucial build system for Prysm, enabling efficient dependency management and contributing to the success of the Ethereum Execution Layer and Consensus Layer components.

Exploring Beacon Node APIs for Prysm: A Journey of Curiosity and Learning

  • I have a keen interest in exploring the Beacon Node APIs for Prysm and have decided to pursue it as a project in the current cohort.
  • I have delved into the Prysm documentation.
  • The topics covered so far include the Developer Wiki and Developer Concepts.
  • Within the Developer Wiki, I have explored contributing to Prysm's codebase and Golang principles and resources.
  • In the Developer Concepts section, I have learned about various crucial aspects like initial synchronization, network design, extending APIs, architecture overview, and more.
  • I have emphasized that Prysm's comprehensive documentation provides a solid foundation for understanding and contributing to the client codebase.
  • I have identified Extending APIs, Architecture overview, and Beacon node as critical areas to focus on for the successful completion of the project, which involves auditing the Beacon Node APIs for Prysm client implementation.