---
# System prepended metadata

title: CDAP Development Update 3

---

# CDAP Development Update 3

This is my third development update for the [Ethereum Core Developer Apprenticeship](https://github.com/ethereum-cdap/cohort-one). Future updates will follow every two weeks.

Over the past two weeks I've been working on [LEO](https://github.com/valist-io/leo), a libp2p portal network client. My goal was to get state data from an Ethereum node into the portal network.

My first approach was to read directly from go-ethereum's leveldb, and provide historical state to the network. The [Ethereum IPLD codec](https://ipld.io/specs/codecs/dag-eth/) cleanly maps the state nodes to IPLD blocks.

Early into it, I discovered that it is not possible to open a leveldb from multiple processes, and decided to change directions. I created a go-ethereum [fork](https://github.com/valist-io/go-ethereum/tree/portal/portal) that adds new state to the network in real-time.

I synced my forked node to the Rinkeby network, but I wasn't able to retrieve any of the new state. I was stuck on this for a few days until I found this [blog post](https://blog.ethereum.org/2021/03/03/geth-v1-10-0/) detailing updates to geth.

The geth 1.10 update disables preimage collection by default to save on storage. Since the preimages are needed to build the state diff, they can be enabled with the `--cache.preimages` flag and the node has to be resynced.

In the midst of solving the preimage problem, I took a step back, and decided to try the state sync over RPC. With the following geth RPC methods I was able to get the first LEO bridge running successfully.

- `eth_subscribeNewHead` returns new head events from the blockchain
- `debug_getModifiedAccounts` returns a list of accounts that were modified in a block
- `eth_getProof` returns a proof for a single account

## What's next?

My plan for the next two weeks is to start work on a header gossip network implementation. This will allow clients to be notified of new block headers as they are added to the network.

Once the header gossip network is complete there are only a few things left to take care of before the LEO test network is ready to launch.