# Week 6 ## Recap This week I began diving in to my proposed project, a Besu Portal Client. I completed my project proposal document and finalized my roadmap. With the finalized roadmap I then looked into how I was going to design the project. I focused on how I was going to layout the project and ways in which I could create a easy to read design. I looked at a few different Portal Clients as well as EL clients to get an idea of how everything is typically layed out. I also looked into the use of different storage solutions for the second portion of my project which might help design the client to better suit a given solution from the start. The one that I found most interesting was the use of RocksDB as its use seems to be quite popular throughout various clients. I decided to look into how Besu uses RocksDB and began learning about their implementation of the storage software. I also continued to learn about the Java library to see if there was anything useful that I might want to incorporate into the Portal Client. Additionally I learned about the use of Java with different development paradigms. ## Learning Pretty much all of my learning this week came from reading through either specific implementations of a given codebase or just learning about the overall design of various clients. I also read a bit of Java library documentation and a few articles to learn about client design. ### Concepts #### Besu Codebase I mainly looked into the design of RocksDB when learning the codebase this week. I tried learning about it's implementation from other clients as well. I looked into why Besu has chosen to use it as a storage solution and the features that it offers. I plan to continue to learn about RocksDB and ensure that it is the best solution for designing a portal client. ##### Resources 1. https://github.com/hyperledger/besu 2. https://github.com/facebook/rocksdb/tree/main/java/src/main/java/org/rocksdb #### Java Development This week in addition to looking at just learning the various library functions I also looked into different forms of Java projec design. Looking at the Besu codebase was a fairly useful resource to see how a client is layed out in Java. Looking at Teku was also a good example of client design. ##### Resources 1. https://docs.oracle.com/en/java/javase/22/docs/api/index.html ## Tasks This week I began creating an outline of how I want to layout the Portal Client and writing out a plan of how I am going to implement certain specifications such as Discovery V5 Protocol and uTP. I also finalized my project proposal submission and am in the process of getting some last minute feedback before I submit it. ## Week 7 Plan My plan for this coming week is to fully jump in to the development of the Besu Portal Client. I believe I will continue to learn the Besu codebase when I come across any challenges that require similar implementation. I plan to set up a barebones application to be able to build my project on top of. I will also be continuing to learn about the use of RocksDB and how to actually implement it. Outside of that I will also potentially begin implementing Discovery V5 if I am able to finalize my layout.