Lighthouse Update #23

Specification v0.11.0

This fortnight we have been focusing on implementing specification v0.11.0. The majority of this work has been around implementing the entirety of the attestation aggregation scheme, specifically the networking components. We've seen great progress in this area, with the majority of the works completed, leading to a shift from development to testing.

Whilst implementing v0.11.0 Michael discovered a bug in validator rewards processing that resulted in validators being short-changed by the protocol! As always, we disclosed the bug and the researchers issued a speedy "THANK YOU" and patch to the specification.

Other notable achievements during the v0.11.0 upgrade include implementing some new search routines for discv5 to assist with network peer discovery, speeding up discv5 queries by adding time-outs and implementing logic in the networking stack to handle any future hard-forks. We've also been remodelling the HTTP API between the beacon node and validator client as we discover more efficient ways to get the job done.

Multi-client testnet

We've had some great input from Afri Schoeden who has started ramping up efforts to facilitate a multi-client Eth2 testnet. Afri generally needs no introduction, but has been working on Ethereum for a long time and was involved in the launch of the successful Goerli testnet. Afri has been working with our developer tooling and in some cases has been the first user beyond the author. Some great bugs have been discovered and very detailed and helpful issues have been raised, thanks Afri.

Optimisations

Since our last update we've achieved another 3x speed improvement in syncing our 4k validator testnet. We're up to 330 blocks/second on a hex-core i7. This is thanks to batching the verification of signatures across all blocks in an epoch and also an optimization to our tree hash caching. These figures include complete verification of each block and all its signatures. Keeping with our security focus, we have not yet included any optimizations that knowingly weaken the security of the underlying protocol.

Public testnet

Our public testnet is still running rock solid. We've never had a loss of finality in its life, nor have we been required to touch any of the core nodes. Most of the nodes have an uptime roughly equivalent to the lifetime of the testnet, over 5 weeks. All self-praise aside, 4k validators is a very easy target so we're not done and dusted quite yet.

COVID-19

In response to COVID-19, all Sigma Prime staff are working remotely and have been given time allowances to help ensure the safety and comfort of themselves and their loved ones. We are thankful that all of our team are healthy and we wish speedy recovery to those who are not. We have not observed a decrease in productivity due to the virus, however we ask you to be understanding if it becomes necessary.

Don't forget to wash your hands!