Blockchain Protocol Engineer (Full Time) (September'21 - Present)
Polygon Labs provides a suite of scaling solutions for and on top of Ethereum. I work in the protocol / client team of the PoS (Proof of Stake) chain which is the most widely used and adopted scaling solution on top of Ethereum. I primarily deal with our client implementations, namely bor, heimdall and erigon. Bor is the primary and official client of PoS chain and is a fork of go-ethereum (geth). Heimdall is a tendermint based instant-finality chain which runs parallelly with bor. Erigon is the secondary client (and is also an Ethereum client natively) which also supports PoS networks. Below are some of the projects, I’ve worked on.
- Snapshot Synchronisation: When a new node joins the network, it goes through a sophisticated mechanism called Synchronisation which allows the node to download all the historical data of blockchain and then progress further. As Ethereum (and hence Polygon PoS) stores the data in form of Merkle Patricia Trie, the whole state needs to be downloaded in background along with blocks. As the state keeps changing and due to the fast (2s) block time of PoS chain, the sync download never was able to catch up with the tip of the chain. I did very detailed analysis understanding the whole mechanism and different parameters which can be tweaked for our chain. Ultimately, with a few configuration changes, I was able to successfully sync the whole mainnet data from scratch using ‘snap’ sync.
- In house cli: As bor needs a cli to interact with the node, it was using the code forked from geth which was a bit complicated to modify whenever required. We built an in-house cli to serve the same purpose which is quite modular and has good abstractions over different blockchain modules.
- Fast Finality: In blockchains, ‘finality’ is a term used to define the state of the chain which can no longer be modified or tampered with (with economic gains). Polygon PoS used to have probabilistic finality and hence users and dapps have to wait for long amount of time until they’re assured that ‘reorgs’ (chain reversions) won’t happen post this point. As we have a checkpointing mechanism in heimdall, which sends checkpoints frequently to Ethereum (for processing exits from PoS to Ethereum), we designed a whitelisting system in bor which relies on those checkpoints to give deterministic finality. Moreover, we extended checkpoints to smaller checkpoints known as milestones (which are not submitted to Ethereum), and reduced the deterministic finality time to 1-2 mins.
- Erigon: It’s the secondary client which supports PoS chains. When the support for erigon was initially added, I implemented the RPC methods specific to Polygon chains in the RPC daemon of erigon. Moreover, I am leading the roadmap of using Erigon as a miner / validator node for Polygon as it stores the data much more efficiently and hence could give better throughput. I conducted various experiments and tests to solve bugs and improve the performance of the overall mining process (The base code was already present, but erigon isn’t used as validator for ethereum networks).
- Networking and P2P: Currently, I am leading the networking and p2p epic for observability and stability of the overall network.
Ethereum Protocol Fellow (Jul'23 - Present) (Part time)
- Working on the enshrined (in-protocol) proposer builder separation (ePBS) in the Ethereum Protocol Fellowship Cohort 4.
- Mentored by Researchers and Developers from Ethereum Foundation and Prysm Labs (Building Ethereum Consensus client)
- ePBS is a very big research area and involves multiple ways to do it each with it’s pros and cons. Studied the existing research articles and participated in the discussions for the implementation. ePBS will also include forward inclusion list design for censorship resistance.
- Here’s my work in pull request for inclusion list related changes in geth.
Guest Lecturer (Jan’23 - May’23) (Part time)
- Invited by Prof. Sanjay Chaudhary for teaching ‘CSE 542: Introduction to Blockchain Technologies’
- Took the following lectures for explaining theoretical concepts of blockchain and Ethereum specifically.
- Introduction to Blockchain, overview of core fundamental building blocks e.g. p2p network, block building, mining, consensus, etc.
- In depth discussion about Ethereum concepts: Accounts and Smart contracts in Ethereum, Wallet and keys, Storage patters used in Ethereum, Merkle Patricia Trie and optimisations used, components of an Ethereum clients, etc.
- EVM and it’s internal working
- Consensus Protocols: Discussion about various consensus solutions like proof of work and proof of stake. Discussed about BFT consensus and it’s flavours, Casper finality gadget (used in Ethereum), and concepts like finality, security, reorgs and liveness in blockchains.
- Scaling solutions: Discussed about different scaling solutions like side chains, L2s (Optimistic and ZK rollups), Data availability problem and solutions, etc.
- Generic discussion about future roadmap of Ethereum and other projects, scope of building new things, etc.
- It was a really fun and enriching experience teaching this course at my Alma Mater.
Software Engineer Intern (June'21 - August'21)
- Huddle01 is a decentralized video conferencing solution.
- Worked on implementation of LastN (A relevance based selective video forwarding algorithm) for server level optimisation for forwarding video streams to peers based on their activity.
- Contributed in development of internal api's and web based SDK (in JS) using AWS suite.
Ethereum India Fellow (Jan'21 - Apr'21)
- Selected for track 2 of Ethereum India Fellowship
- Worked on Drent: A C2C decentralized renting marketplace with almost no platform fees. It aims at solving the problem of optimal resource utilisation by providing a platform to rent and borrow things in a flexible manner.
- It is an autonomous platform with a dispute resolving mechanism based on crowd-sourced votes and a reputation mechanism.
Full Stack Software Developer (Dec'20 - Present)
- Quicko is a tax planning and filing platform.
- Contributed to building APIs, Clients, and workflows for Sandbox, a full-stack tax compliance API platform for FinTechs, E-Commerce, HRMS & more.
Junior Python Developer (May'20 - Aug'20)
- Part of the operations team, building efficient chatbot flows by integrating API's for different banking and financial firms.
- Deployed chat bots for different medium such as web, whatsapp, google home and alexa.