description: Notes from the regular Eth2 implementers call
# Eth2 Implementers’ Call #29 - 2019-12-05
[Quick contemporaneous notes by Ben Edgington]
## 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](https://github.com/ethereum/eth2.0-specs/pull/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](https://github.com/ethereum/eth2.0-specs/pull/1495)]
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
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.
Up to spec 0.9.2. Open PR for attestation aggregation. Converting Pylibp2p to Trio library. Bugfixes and prep for public testnet.
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.
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.
Testnet has been running smoothly, except a couple of finality reversions which have now been debugged. [Beacon chain explorer](https://beaconcha.in) 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.
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.
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.
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).
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
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.
Going deep on STARKs. Recent presentation on [polynomial commitment schemes](https://www.youtube.com/watch?v=bz16BURH_u8&feature=youtu.be). 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).
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](https://ethresear.ch/t/remaining-questions-on-state-providers-and-stateless-networks-in-eth2/6585) many questions. Working on simulator.
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](https://github.com/ethereum/eth2.0-pm/issues/108#issuecomment-562103912) 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](https://github.com/protolambda/eth-merkle-trees/blob/master/typing_partials.md). [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.
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
* * *
# Chat highlights
From danny to Everyone: 02:05 PM
From danny to Everyone: 02:21 PM
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
From protolambda . to Everyone: 02:46 PM
^ Data-sharing approach: only store merkle tree modifications, represent as binary tree.