

First of all, we hope you and your loved ones are keeping safe in these surreal times.
In the hope of giving you a brief respite from all the madness, here’s our March update.
The big change here has been the merging of the BLS changes, which means we’re now fully compatible with Spec version v0.10.1. 🎉
We’re working on being compatible with the newly released v0.11.0 – Lan party.
In the words of Danny Ryan: this release represents a post-audit Phase 0 spec, ready for long-standing multi-client testnets.
As it stands, we’re almost ready (networking is missing, but consensus is done).
We’ve built a JSON-RPC service that can be used by Beacon explorers to connect to Nimbus. We’ll be using it to create an interface to help us monitor the health of a node.
We continue making progress with interoperability. We can now interop with go-ethereum discv5 and, as of this week, Lighthouse testnet bootnodes.
Full interop with another client is our main goal at this stage.
Following some informal discussions at ETHCC, the preliminary target for a full interop between all clients seems to be July.
One of the main blockers to full interop for us right now is auditing. This can be broken down into the following steps:
To get things moving on this front, we’re preparing a request for proposal.
We’re currently considering various approaches to how the audit should be performed and what the best approach should be.
Nim Libp2p continues to stabilise.
One of our March targets was completely dropping the go-daemon, which means stabilising libp2p. As of yesterday this has now been achieved :)
For those of you who are unfamiliar, the two main benefits of dropping the go-daemon are:
To prepare for our beta release, we’ve also been working hard on the documentation and a new set of tutorials – an important step towards fulfilling the grant milestones we set out together with Protocol Labs and the Ethereum Foundation towards the end of last year.
We’ve added finalisation tests in CI.
This means that every time we make a commit or PR, a local testnet with four nodes is automatically run. This checks that we haven’t broken anything with respect to finalisation.
Since most of our errors manifest themselves as finalisation errors, this has already saved us a lot of time!
We fixed a silly but nevertheless important bug concerning message buffering.
As a result Nim is now able to process validators and signatures 5x faster.
The downside is that we now produce 5x more logs (400mb hour instead of 80mb / hour). This isn’t great for testnet stability, so we’re now working on getting this back down to a reasonable figure.
We’re now able to use EVMone – the fastest ethereum VM implementation – in Nimbus (for the execution layer in Eth1).
Importantly, we’ll be able to re-use this for phase 2 of Eth2.
'Til next time 💛