Try   HackMD

A Fork in the Road

There have been two projects that I've been focused on for the past 5 months: python-light-client and Model-Danksharding. Both projects have, and continue to, serve as fantastic opportunities to gain a much deeper understanding of Ethereum.

Details for projects are inside of their respective readme files

Python Light Client:
I first began this journey with the protocol through the desire to build a light client, derived from learning about trustless bridges. The original goal was to create an MVP light client which tracks the current head of the Beacon chain: the updated goal is to do this via the Portal Network instead of through Lodestar's LES.
After a few months of hacking, I came across two frustrating cryptography bugs:

  1. py_ecc (v2.0.0) wasn't able to run bls.FastAggVerify() on correct inputs. Upgrading to py_ecc (v6.0.0) solved the original bls bug.
  2. I was passing the sync committee signature into bls.FastAggVerify() as an SSZ encoded byte array instead of passing the signature in as bytes.

These bugs, although seemingly simple, took me a month to figure out.
I was too afraid of asking questions to others in the space. A simple, "Hey, do these inputs work on this function?" would have saved a ton of time and effort.

I got burnt out, and in order to keep learning, began building out another project: Model-Danksharding


Model Danksharding:
This project was originally an erasure code implementation based off of Vitalik's old article (see the project's readme file for link), which more recently has turned into modeling the architecture, functionality and logic behind Danksharding.

The idea is to create blobs that can be encoded and commited for data availability and model the distribution, attestation, and consensus about the blob's availability.

There are a lot of things still up in the air about danksharding, specifically regarding peer to peer networking. Recreating this entire process is a huge learning opportunity. And simulating possible trajectories may help provide clarity to possible paths forward.

Next Steps

I've come to a crossroads where I have to decide in the coming week(ish) as to which project to devote my time to, within the scope of the fellowship. I'll be weighing out each option over the course of the week and asking for feedback from a couple of GOAT developers.

Within the next few days, I'll probably post some notes on pros and cons of continuing each project and aggregating feedback from mentors within the cohort's repository.

Post Script

Building these projects out serve as a way to understand the Ethereum protocol at a much deeper level. Hopefully I can leave behind a trail of breadcrumbs that help others along the way.

The dream is to ultimately become an Ethereum Core Developer and help build the future of this beautiful mechanism that fundamentally changes the way humanity cooperates.

I've said it before, but I'll say it again:

I'm so excited to learn and grow amongst some of the brightest minds of our time.
Being a part of this fellowship is a dream come true (: