Shortly before the Holiday break in December, we successfully spun up a test network of 20 nodes, hosting the first 1 million block headers.  T

TLDR: The network behaved as intended, with nodes creating and spreading advertisements via the gossip mechanism, mirroring content to fill their storage capacity and serving the content to other nodes.

Here are the details

  • The advertisement system is the current bottleneck.  We need to look into how necessary it is, and whether the trade-offs it introduces are worth the cost.
  • The use of SSZ hash_tree_roots for content creates overhead for content that fits into a single packet.  Adjusting the spec so that this can be omitted for block headers should be explored.
  • Navigation of the network accounts for a significant portion of "work" done by the client.  A cached global view of the network may be necessary.  We need to investigate how feasible this is at larger network sizes.

My main takeaway is that this approach is promising and deserves further attention.  Alexandria falls under a broader effort to create the networks necessary for a new breed of light client.  Having loosely validated this approach to making the chain history available, we will now be switching to focus on solving the state availability problem.