Development continues at a quick pace. Currently, we are aiming to having a POC ready by the end of the year to host and serve the header chain.
The last pull requests implementing the content transmission logic are being reviewed. This builds on the SSZ partial work from the previous update, allowing us to split up content that exceeds the UDP packet size into multiple packets, and to have each individual packet be "provable". The content is then re-assembled from the merkle proofs to recover the original payload.
The Advertisement model has settled and the system for Advertisement gossip has been better defined. All of the functionality for broadcasting, storing, and managing advertisements is being reviewed and should be merged soon
Headers and Accumulators
A minimal implementation of the Header Accumulator has been written in preparation for hosting the mainnet header chain. Headers are batched into epochs of 2048 headers which are then merklized into a "master" accumulator that houses the hashes for all historical epochs as well as the current in-progress epoch. This is the mechanism through which we enable clients to be able to forget about historical headers while still being able to verify the canonicalness of a header they retrieve on demand. Retrieved headers will include a proof against these accumulators, which allows for clients to only need to hold onto the latest version of the "master" and "epoch" accumulators to be able to verify these proofs.
This is something that will have an EIP written for it, aiming to add this to the core protocol as part of the block header.
Lots of work is also going into the stability and reliability of the base client. This includes better management of sessions, a faster implementation of
recursive_find_nodes, faster bootstrapping, more targeted network explorating for populating the routing table, and lots of error handling for various crashes encountered while interacting with the live network.
Read the previous development update