description: Notes from the regular Eth2 implementers call
# Eth2 Implementers’ Call #32 - 2020-01-23
[Quick contemporaneous notes by Ben Edgington]
## Testing and Release updates
Some issues with the v0.10.0 test generators. There is a PR to fix. The BLS tests are being stripped back to just the essentials. There will be a release to v0.10.1 with a couple of minor bug fixes and updated tests. Release by end of tomorrow.
Proto working on getting repo upto Pythin 3.8. Working on remerkleable to be able to do funky things with the spec. Getting Ph1 spec prepared, ready to merge into dev branch.
Beacon fuzz update [Mehdi]. Published a blog post. Confirmed a bug in Nimbus. Found an issue in Trinity as well. Improving client on-boarding. Working to onboard Artemis/Harmony in the next days to onboard. New blog post coming in the next week or so. [Danny] Need to update pyspec tests to cover these failures.
Q: [Jacek] How do we approach states that do not result from normal operations? General recommendation is to allow clent to recover gracefully - but how to achieve this? Sometimes possible; sometimes not. Preference is *not* to crash but to flag the situation. This is a kind of discussion.
Forkchoice spec test? There are now two independent formats for this (Paul's and Harmony's). Neither is integrated into pyspec yet, but can be used to begin work on fork choice testing. Danny to pick this up.
Proto: binary tree backed SSZ library (remerkleable) for parts of the state is very effective. Particularly memoisation.
## Client updates
- We merged 0.9.4 into master earlier this week.
- And the beacon chain spec v0.10.0 changes are done, including the BLS, but we'll delay merging until joint testnets. If the reference tests were correct, we'd pass them.
- We're continuing to implement the Eth1 data changes in 0.10.0, and debugging and improving discovery and sync.
- And we're also putting some serious effort into optimisation, which is something we've largely put off before now.
- Finally, we are officially changing the name. In future Artemis will be known as Teku. We'll get round to renaming the repo and the rest at some point, but it's not top priority just now.
v0.9.2 merged. Working on 0.9.3. Integrating new SSZ library - this has a lot of gains, 1000x faster for some operations, immutable merkle trees as SSZ objects. Working on swapping out beacon state object for a merkle tree backed object, which is much faster. This is TypeScript, now WASM.
simpleserialize.com site has not yet been updated. Expect it in 1+ weeks.
New team member, Frankie, being onboarded.
Working on peer-to-peer comms, using the Rust library. dotNet example is working on osX.
Updating to v0.9.3. Moving on to v0.10.0. Moving networking to a new library for stability. Discv5 - experimenting with connecting to Lighthouse.
Mainnet testnet running for 2 weeks. 29k active validators, 32k total. Working with users on UX, resolving memory consumption issues, and other performance inssues. Improvements to forkchoice have given good speedup. Added slashing protection to the client. Already have a network-level slashing detector.
How many nodes on the network? Average node has 80-100 peers. eth2stats.io - Prysm is running only 7 themselves.
Adapting proto-array forkchoice for Eth2. Seeing some good improvement and believe this is a good approach.
v0.10.0 done, target next week for testnet release.
Dealing with locks during heavy API load during syncing. Found a fork choice bug in the testnet, and patching other bugs. Syncing progress. Handling of adversarial peers.
Seeing a lot more community engagement. Including validator UI RFP (deadline is next week).
Progress with hiring 1-2 more rust devs and devops.
Biggest testnet challenge: dealing with fork choice. About 16k validators, 20 peers per node. [Danny] Interested in seeing testnets with more nodes - 1k-10k would be about right.
v0.10.0 implemented except for BLS. Should be done by Monday. Looking at how to reuse Eth1 Nimbus code for Eth2 Ph2.
Team attending FOSDEM in Brussels, and the following week. Will hold a kind of interop event with Prysm and Lighthouse. Feb 1-7.
A community member built Nimbus on Android and ran it on a phone. Jacek has made binding for Rust to Nim.
On testnet: balance implementing new features vs stability. Discv5 is merged; experimenting with connecting to Lighthouse. Issues arise in longer-running testnets - when nodes are restarted, some datastructures are not reinitialised correctly. 20 nodes in the network.
## Research Updates
Looking for something relatively stable for Ph1 specs in next couple of weeks.
RV verification of deposit contract bytecode has been published. Links below, **please review**.
Looking at changing proof of custody to 256 bit blocks for performance. Is it doable in the MPC (multiparty compute). Binary FFT implemented to test data availability proofs.
- Mikhail working on Eth1<->Eth2 bridge.
- Alex looking at decentralised time sync.
- Joseph, cross-shard transactions.
- Anton & Dmitriy: discv5 testing
- Jonny, EE tooling with Quilt team. Truffle-like.
Phase 2 call discussed transition to Ph2 planning. Push and pull models of state provision. Simulator for different state provider models. Cross-shard scenarios for Eth and balances.
[Call](https://github.com/ethereum/eth2.0-pm/issues/124) in ~6 days.
Danny interested seeing some load testing, especially wrt to number of nodes.
The Noise protocol is now in the libp2p spec repo.
Proto: the naive attestation aggregation technique is being improved. Believes we can make incremental improvements. Working with Protocol Labs to make this possible.
## Spec discussion
[Proposal](https://github.com/ethereum/eth2.0-specs/issues/1578) for dual-key voluntary exits. Use case would allow clients of custodial staking services (who do not have the signing key) to exit unilaterally, without being held hostage. Could be implemented via a pre-signed voluntary exit message, but this becomes invalid after forks.
Spec is not very intuitive. Ben is putting together an annotated spec as a side project. [Phase0 for humans](https://notes.ethereum.org/@djrtwo/Bkn3zpwxB?type=view) is also available.
## Open discussion
Add Discord channels to coordinate the following:
- Lots of people will be at EthDenver
- [Ph2 workshop](https://www.eventbrite.com/e/eth-222-tickets-90667602239) after SBC
- EthCC in Paris
There are rumours of an Eth2 client summit around EDCON in Vienna.
* * *
# Chat highlights
From danny to Everyone: 02:03 PM
From Mamy to Everyone: 02:07 PM
: can you link to the blog post
From Terence to Everyone: 02:16 PM
: I believe this is the latest: https://blog.sigmaprime.io/beacon-fuzz-01.html
From Mehdi | Sigma Prime to Everyone: 02:17 PM
: That’s the one! Thanks Terence 😊
From danny to Everyone: 02:28 PM
From Tomasz Stanczak to Everyone: 02:36 PM
: when will you be in Brussels? this week?
From Mamy to Everyone: 02:47 PM
: Feb 1st to Feb 7
FOSSDEM + the week after
From danny to Everyone:
: Networking call: https://github.com/ethereum/eth2.0-pm/issues/124
From Svante Jørgensen to Everyone: 02:49 PM
: Deposit contract audit: https://runtimeverification.com/blog/end-to-end-formal-verification-of-ethereum-2-0-deposit-smart-contract/
And full formal report here: https://github.com/runtimeverification/verified-smart-contracts/blob/master/deposit/deposit-formal-verification.pdf
From Herman Junge to Everyone: 02:51 PM
^^^ Supoort the use of a cold key for voluntaryExit =)
From Joseph Delong to Everyone: 02:51 PM
Eth2 workshop day after Stanford Blockchain Conference
From Jonny Rhea to Everyone: 02:54 PM
: Roadmap for EE Tooling work (needs to be updated, but general idea is there)
From danny to Everyone: 02:56 PM
From Jonny Rhea to Everyone: 02:56 PM
: Cargo plugin to generate EE template (WIP) :
From Mehdi | Sigma Prime to Everyone: 03:01 PM