# Development Update 1 (2021-07-16) This is my first development (dev) update for the CDAP. It's a bit delayed, so it will contain a few weeks worth of work. ## Goal The initial goal was to aggregate, consume, and make sense of as much information as possible. After a period of intense research, the goal was to identify potential projects where I could be most effective given my skillset and the stage of development for the various projects. ## Progress The research process covered the following areas: * Technical Ethereum fundamentals * EVM * Structure of Ethereum data * Eth1x * State expiry * Verkle trees * Adress space extension * Portal network * Eth2 * Proof of stake * The merge * The beacon chain * Sharding * Stateless Ethereum * Witnesses The initial research period was critical to understanding the landscape of Ethereum development and identifying potential projects. With this research, I produced the following written artifacts that attempt to consolidate the literature on state expiry and the portal network: * [State expiry](https://github.com/ethereum-cdap/cohort-zero/blob/main/notes/jacob/state-expiry.md) * [Portal network](https://github.com/ethereum-cdap/cohort-zero/blob/main/notes/jacob/portal-network.md) These documents should not be considered done. My plan is to revisit these documents as those efforts evolve. Given my skillset and where certain items are in their development stages, I intend to put my focus into the development of the chain history network within the realm of the portal network. Some other members of the CDAP share similar interests, so we established a communication channel to coordinate our efforts. The group decided to develop the chain history network for the Trin Portal Network client in parallel with the existing work being done there to develop the state network. After some discussion with Piper, we will be focusing on the following tasks: * Establish a branch of the existing [Trin repository](https://github.com/carver/trin) to serve as the master branch for our chain history network development. * Draft a specification for the chain history network. * Gain familiarity with the existing Trin codebase. * Begin development on the primitives required for the chain history network. For myself, I have begun the following items: * Establish some project tracking via a Trello board. * Once we have an official GitHub branch, I think we will opt to move this tracking to GitHub to keep everything in one location for better visibility. * Work with Jason (`carver`) to establish a branch for the group's development efforts. * Begin work on the [chain history specification](https://hackmd.io/@rGyFfB9KSzmVchM5WxNqIQ/rkC4W7JRO). Additionally, I will be working with the group to create and assign tasks so that we can move forward with development. My understanding is that everyone is relatively new to Rust, so I expect development to be slow for the next couple of weeks. It would probably be best to try to reach consensus on development practices in the meantime so that once everyone is up to speed, we can reach high velocity. ## References Research references: * Core Ethereum * Essentially all the [CDAP stage zero](https://github.com/ethereum-cdap/cohort-zero/blob/main/stage-0-getting-started.md) references * Various wikis from the [Ethereum wiki](https://eth.wiki) * [Core Paper](https://corepaper.org/ethereum/) * State expiry * https://ethresear.ch/t/alternative-bounded-state-friendly-address-scheme/8602 * https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739 * https://notes.ethereum.org/@vbuterin/verkle_and_state_expiry_proposal * https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/state_size_management * https://ethresear.ch/t/an-updated-roadmap-for-stateless-ethereum/9046 * Statelessness * https://github.com/ethereum/stateless-ethereum-specs * https://ethresear.ch/t/the-data-availability-problem-under-stateless-ethereum/6973 * https://notes.ethereum.org/mSOAdx_XT02MEqrt0f2CPA#A-Stateless-clients-will-be-of-limited-use * https://ethresear.ch/t/the-stateless-client-concept/172 * https://dankradfeist.de/ethereum/2021/02/14/why-stateless.html * https://hackmd.io/yqfI6OPlRZizv9yPaD-8IQ?view#Motivation * https://blog.ethereum.org/2019/12/30/eth1x-files-state-of-stateless-ethereum/ * Portal network * https://www.ethportal.net * https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/ * https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients-part-2/ * https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients-part-3/ * https://eprint.iacr.org/2019/226.pdf * https://ethresear.ch/t/scalable-transaction-gossip/8660 * https://ethresear.ch/t/scalable-gossip-for-state-network/8958 * Accumulators * https://ethresear.ch/t/double-batched-merkle-log-accumulator/571 * https://ethresear.ch/t/batching-and-cyclic-partitioning-of-logs/536 * https://ethresear.ch/t/history-state-and-asynchronous-accumulators-in-the-stateless-model/287/2 * https://eprint.iacr.org/2015/718.pdf * https://notes.ethereum.org/KaMqlqxiQLCWyDoXCUCC4Q