Try   HackMD

Eth2 Implementers’ Call #29 - 2019-12-05

[Quick contemporaneous notes by Ben Edgington]

Agenda: https://github.com/ethereum/eth2.0-pm/issues/108
Livestream: https://www.youtube.com/watch?v=MxeEWmEdb5E

Testing and Release updates

Removal of signing root: feedback so far is overwhelmingly positive. Need a decision on this call. No objections, so plan to merge it today unless any objections noted on PR 1491.

Fixes to fork-choice: plan to merge soon, but looking for better ways to test and specify fork-choice behaviour. [Discussion of test formats ensues. Mamy makes some proposals. References "Strength reduction" paper. Will add notes to the PR]

Integration of modified BLS spec. There are a couple of PRs on this which are a priority. Expect a release right after New Year. Testnets in the New Year will be expected to have the new signature spec. Scope is mainly new Hash to Curve. Carl is separating BLS from Eth2 specs to help teams using 3rd-party libraries. Updating test vectors.

Fuzzing (BeaconFuzz) is making progress.

Client updates

Nimbus
Last SSZ bugs squashed. Optimisations: removed last quadratic behaviours. Final bottlenecks are SHA256 and BLS, but not blocking.

Debugging syncing on testnet, and updated instructions for joining.

Setting up Jenkins to test on Android and ARM. No more git-LFS

Networking: ready to integrate libp2p and remove daemon. Next is discv5.

Trinity
Up to spec 0.9.2. Open PR for attestation aggregation. Converting Pylibp2p to Trio library. Bugfixes and prep for public testnet.

Lodestar
Swapped out BLS implementation for a WASM build of Herumi => 40x speedup! Implemented BLS EIPs 2333-2335 for future use. Still updating to 0.9.x. discv5 in progress.

Artemis
Up to date with 0.9.2 including naive aggregation. Req/Resp is done and being tested against Prysm and Lighthouse. Focus remains on getting ready to join public testnets: syncing and importing deposit receipts. Completing discv5 integration.

Prysm
Testnet has been running smoothly, except a couple of finality reversions which have now been debugged. Beacon chain explorer has necessitated some work on RPC endpoint. Primary focus is 0.9.2 testnet relaunch. Optimising SSZ with a functional cache => 50x speedup in syncing.

Lighthouse
Public testnet target release this week. Database optimisations. New schema makes the DB very small. Speedups in SSZ decoding - remove BLS checking when reading state from the DB => big performance gain (x1000). Rebuilding syncing algorithms. Tidied up logging. Validator onboarding docs written. Metrics and monitoring all up.

Harmony
At 0.9.2, excluding aggregation. Working on integration tests for the fork choice. Almost ready to push fork choice tests to community test suite. discv5 done and looking at simulations. Also done gossipsub simulations.

Shasper/Parity
Some updates to Substrate. Still on 0.9.0; trying to join Prysm testnet, but there is an issue in BLS verification (all the spec tests pass, but real sigs fail which is weird).

Nethermind
New on the block!

Has started implementing 0.9.2, expect to have 0.9.2 done in about a month. Passing BLS, SSZ, container tests. Working on networking, remainder of spec implementation.

Research Updates

Vitalik
Working with Justin on increasing the efficiency of STARK proving. Working on more application level things this week - blog post coming. Discussing how Phase 2 cross-shard Txs will work: to be enshrined in protocol, or done with receipts in the application layer? Is Eth2 a fat protocol or just a data-availability and computation layer?

[DR] On Phase 1, will be discussing today next steps for this. Likely around New Year for stable version.

Justin
Going deep on STARKs. Recent presentation on polynomial commitment schemes. Some new ideas have come out of this, maybe a significant breakthrough. Write-up soon.

There's also a breakthrough in RSA MPC. Has now been tested with 10,000 participants (orders of magnitude improvement, Ligero team).

Protolambda
Working on cross-shard Txs. Discussion of tradeoffs on the Phase2 call this week.

Musab (Runtime Verification)
Abstractions of the beacon chain model. Started this week trying to prove safety and liveness.

Daejun is writing up the formal analysis of the deposit contract, expected this month.

Matt Garnett (Quilt)
Phase 2 call happened. WV has summarised many questions. Working on simulator.

Networking

Call yesterday. Good survey of current activity. Need to identify which areas are under-resourced. Plan a follow-up in 2 weeks.

Discussion of persisted state size reduction

Agenda item from Mikhail.

Lighthouse is working on this. [AM] [Description of Lighthouse scheme - around 43 minutes point in the video]. Huge data savings.

[MK] Thinking about incremental storage, just the diffs between states. [Proto] Lighthouse's approach seems ideal. Has worked on tree-state. [JS] This may have an impact on state-syncing between nodes. We may wish to agree on which states are available to be synced (e.g. one every few weeks within the weak subjectivity period). [MK] Anton is planning to look into state sync design.

Spec discussion

Vitalik: [discussion of release of Ph1 spec. Recap of info above.] We need a team looking at Eth1 <-> Eth2 bridge.

Testnets

We are still in the optimising/hardening stage. Single-client testnets are good for now - would like to see them scaled to very large validator numbers.

Open discussion

None


Chat highlights

From danny to Everyone: 02:05 PM
https://github.com/ethereum/eth2.0-pm/issues/108
https://github.com/ethereum/eth2.0-specs/pull/1491
https://github.com/ethereum/eth2.0-specs/pull/1495

From danny to Everyone: 02:21 PM
https://github.com/ethereum/EIPs/pull/2333
https://github.com/ethereum/EIPs/pull/2334
https://github.com/ethereum/EIPs/pull/2335
beaconcha.in

From Mikhail Kalinin to Everyone: 02:31 PM
Forgot to say, during the previous call I mentioned a write up about slashing condition detection that I was going to publish. Here it is: https://hackmd.io/@sYlY_LZpQIGgFmhdv6vV-A/By897a5sH

From Justin Drake to Everyone: 02:33 PM
Polynomial commitment schemes https://www.youtube.com/watch?v=bz16BURH_u8&feature=youtu.be

From matt garnett to Everyone: 02:38 PM
https://ethresear.ch/t/remaining-questions-on-state-providers-and-stateless-networks-in-eth2/6585

From protolambda . to Everyone: 02:46 PM
https://github.com/protolambda/eth-merkle-trees/blob/master/typing_partials.md
^ Data-sharing approach: only store merkle tree modifications, represent as binary tree.