Monthly Contribution - November 2024

Monthly Contribution - November 2024
Photo by charlesdeluvio / Unsplash
💡
Opened 4 PRs, and merged 3 PRs to Reth.
Opened and merged 1 PR at Lighthouse.
Opened 1 issue on alloy.
Opened 2 PRs and 1 issue, and merged 1 PR to Prysm.

Reth

In my opinion, Reth is one of the best open-source projects in Ethereum. Paradigm understands the value of open-source(See talk by Georgios. I was really impressed in Bangkok). Maintainers have spent a lot of time and effort to manage all the issues. Shout out to @mattsse, @emhane, and all other maintainers.

They raise and classfy all the issues, and for me these were great opportunities to 1) onboarding Reth and 2) enhancing my Rust 🦀 skills.

#1

Add `queued_outgoing_messages` panel for grafana by syjn99 · Pull Request #12306 · paradigmxyz/reth
This PR Addresses #12254. Added queued_outgoing_messages per second next to Incoming Gossip and Requests panel. The expression looks like: "rate(reth_network_queued_outgoing_messages{instance=…
  • My first contribution to Reth!
  • Added a panel that tracks buffered outgoing messages in mempool, for Reth Grafana dashboard.
  • Since all public testnets take a lot of time and resource to be synced, I used an ephemery testnet(ephemery.dev).

#2

chore: add pretty printing for pruned segment info by syjn99 · Pull Request #12710 · paradigmxyz/reth
Address #12502
  • Used derive_more::Display to print a struct prettier.
  • It was my first time to use derive_more and I liked the way to declare the formatter easily. I don't need to impl std::fmt::Display!

#3

chore: make CanonicalInMemoryState generic over sealed header and block by syjn99 · Pull Request #12835 · paradigmxyz/reth
Closes #12816
  • Made a struct to be generic.
  • Learned to use adapter type, special thanks to @emhane for reviewing my code!

#4

Add support for engine_executeStatelessPayloadVX Engine RPCs · Issue #12766 · paradigmxyz/reth
Describe the feature engine_executeStatelessPayloadV1,engine_executeStatelessPayloadV2,engine_executeStatelessPayloadV3,engine_executeStatelessPayloadV4, engine RPC methods are already implemented…
  • As go-ethereum supports engine_executeStatelessPayloadVx API, there is a feature request for Reth also.
  • I am not familiar with the topic "Stateless", but it would be a great change to learn the basic concept of stateless things.
  • I traced the history for this API:
    • @karalabe(shout to his effort on go-ethereum so far!) first proposed a RFC. It's called Execution Layer cross-validation.
    • It's a much simpler implementation than Verkle roadmap, and he argued this could be a great middle point to the stateless roadmap.
    • @karalabe implemented the spec for his proposal: #30069.
    • There is a debug API(debug_executionWitness) implemented in Reth: #9249 . So I planned to leverage it.
    • As it could be a huge work, @mattsse suggests me to define traits for those APIs first.
feat(rpc): define traits for stateless APIs by syjn99 · Pull Request #13016 · paradigmxyz/reth
Part of #12766.
  • This is my draft PR, and realized that there needs a new struct for these APIs in alloy. So I raised an issue:
[Feature] Add wrapper structs for stateless APIs · Issue #1707 · alloy-rs/alloy
Component rpc Describe the feature you would like I’m implementing engine_executeStatelessPayloadVX APIs(Issue#12766, PR#13016), found that rpc-types-engine should support some wrapper structs for…

Lighthouse

#1

Add CLI flag for HTTP API token path (VC) by syjn99 · Pull Request #6577 · sigp/lighthouse
Issue Addressed #6563 Proposed Changes Added http-token-path flag for users who want to set the token path explicity. Added documentation for CLI reference, etc. Additional Info Throw error when…
  • This is my first contribution to Lighthouse! I really loved what @dapplion talks at this Devcon: See this video.
  • What I have to do is introducing new flag for validator client. http-token-path will provide a actual path that holds a token for communicating via HTTP.
  • The work is done, but it was planned to be included in version 6.1.0.

Prysm

#1

Cleaning up p2p address util functions · Issue #14606 · prysmaticlabs/prysm
💎 Issue Background I was looking to work for #14166, and found there are several functions for converting different formats of p2p addresses(enode, ENR, multiaddr). For example, PeersFromStringAddr…
  • Opened an issue about refactoring p2p address util functions. (Nov. 2nd)
  • Also assigned to #14166 which will increase UX for node operators.
Add peer format on flags & Refactor parsing address by syjn99 · Pull Request #14615 · prysmaticlabs/prysm
What type of PR is this? Feature & Refactor What does this PR do? Why is it needed? CLI users will be aware of which type for p2p addresses, especially for --peer and --bootstrap-node flags. T…
  • On Nov. 5th, I committed a work that addresses both issues.
  • There are some unnecessary redundancy to parse raw address strings. I added ParseGenericAddrs function and applied to other files.
  • Not yet merged, seems they are refactoring on p2p package. Those are related:
Diverse log improvements, comment additions and small refactors. by nalepae · Pull Request #14658 · prysmaticlabs/prysm
What type of PR is this? Other What does this PR do? Why is it needed? This PR pulls into develop a lot of non functional changes, unrelated to peerDAS, but currently in the peerDAS branch. Other n…
Improve connection/disconnection logging. by nalepae · Pull Request #14665 · prysmaticlabs/prysm
What type of PR is this? Other What does this PR do? Why is it needed? This PR improves logging about peer connection/disconnection. New DEBUG logs are introduced: 1. When we initiate a new peer co…

#2

Use `GetBlockAttestationV2` at handler by syjn99 · Pull Request #14624 · prysmaticlabs/prysm
What type of PR is this? Bug fix What does this PR do? Why is it needed? I'm not sure for the exact context, but GetBlockAttestationsV2 was well implemented in #14478 but never used in the actu…
  • This PR added a new endpoint(/eth/v2/beacon/blocks/{block_id}/attestations), but this actually doesn't applied to API handler actually.
  • V2 API uses new Attestation struct for the response: EIP-7549 is included in the next upgrade(Electra), and this EIP suggests to move committe index out of Attestation.
  • Opened and merged at November 7th.