Portal Implementers Call #52 - April 21st

Meeting Info

Agenda

  • Team updates

GitHub Issue

This week’s call notes:

1. Team update

  • Update on Trin & Glados by Milos
    • Improved bridge functionality
      • Supported e2hs files for gossiping history
      • Updated all bridges to use census / offer, enabling direct offer instead of gossip logic
    • Added ephemeral header content type definition (not active yet)
    • Ongoing PRs on Deneb proof generation & validation, and Electra consensus types
    • Glados: Implemented protocol version tracking for peers
      • Trin, Fluffy, and Shisui now all officially supports v1
  • Update on Ultralight by ScottyPoi
    • v1 is implemented but not publicly updated yet
    • Continued working with DevOps to revamp boot node setup
    • Awaiting ChainSafe to release an update that includes the bug fix discussed last week
  • Update on Shisui by Qi Zhou
    • Profiling ongoing to resolve performance issues (especially in comparison to Trin)
    • Implemented new RPC endpoints to support missing JSON-RPC APIs
    • Added caching for the highest compatible version to speed up lookups
  • Update on Samba by Meld
    • Focused on integration with Besu
      • Currently managed to run Samba inside Besu locally, but still need further polishing & adjustments
      • Aim to support Samba both within Besu and as a standalone solution
      • Working toward deployment / testing of Samba in Besu across versions to evaluate performance and behavior

2. Discussion: Head-MPT State Network Spec

  • Key problem
    • How to update slices of state for nodes whose section had no updates in a given block
  • Proposed Solution: Introduce block-level MPT diffs as a formalized content type
    • Each block contains a diff from the previous block’s state
    • Allow nodes to update and re-anchor their data to the latest MPT root, even if their slice didn’t change
    • Enable a lightweight initial rollout - nodes can sync & operate without full account state storage initally
  • Sync Mechanism
    • New nodes can sync from the current trie and fast-forward using accumulated diffs
    • Trie diffs will be the main data gossiped on the network
    • While the protocol supports querying individual trie nodes, gossiping individual nodes isn’t the focus
  • Implementation Roadmap for client teams
    • 1st priority: Finalize ephemeral header support in the History Network
    • 2nd priority: Push the State Network as close to the chain head as possible
    • Afterwards: Define block-level diff data type, and implement diff generation & propagation
  • Relevant PR/ issue: https://github.com/ethereum/portal-network-specs/pull/389