description: Notes from the regular Eth2 implementers call
# Eth2 Implementers’ Call #28 - 2019-11-21
[Quick contemporaneous notes by Ben Edgington]
## Testing and Release updates
Testing: generally stable.
There is a pending a spec release on GitHub with minor clarifications. To be done asap. Might change one test vector, but that's all.
Mehdi [SigmaPrime]: Have a grant from the EF to do differential fuzzing. Will ramp this up from next week. Cleaned up fuzzing targets. Added some more block state transition functions (now complete), and two epoch state transition functions. Fully supports PySpec, zrnt, and Lighthouse. Prysm is in progress, but some issues with namespace clashes with zrnt. Trinity underway, Nimbus next.
There is a need for fork choice tests. Danny to progress this over next week.
## Client updates
Relaunched testnet with v0.9. Now at 55 peers, only 10 are Prysmatic's [one is mine :smiley:]. Lots of support questions and feedback! Doing bugfixes on RPC back-end.
Working on aggregation logic in 0.9 spec. SSZ performance optimisations. Eth1 data ingestion logic. End-to-end tests.
V0.9.1 merged. Working on hot/cold DB. Implemented validator on-boarding workflow using MetaMask. Testnet running in the cloud. Finishing docs before making it public. Refactor of validator client: async ops and slashing protection. Doing aggregation in validator client to allow for large-scale deployments. Working with Herumi on fast BLS, but will still maintain own implementation for diversity/safety. Networking: Noise handshake, sybil resistance in DHT, testing.
Q: How was sybil resistance added?
A: Limit IP addresses in /24 subnets. In entire DHT limit the number of IPs on a /24 subnet.
Weekly (public) testnet setup in place. Reboot every Tues morning. Merge dev branch every Monday. Now compatible with 0.9.1 - will be deployed next Tues. Aggregation strategy is not implemented.
Debugging complex sync issue. Working on better logs.
Benchmarks of Herumi on Raspberry Pi: 21ms for pairing.
Next, work with SigmaPrime to provide interface for fuzzing.
Networking: native discv5 remains in progress.
Some SSZ issues being investigated (although it passes all tests...)
Optimisation for beacon state transition. Plan to revive the Substrate runtime that was previously removed.
Spec updates and performance. Updates to Pylibp2p stability. Performance of PySSZ. Aggregation.
0.9.0 finished. Finalising aggregation implementation. Req/Resp essentially done. Interop testing with other clients. Docker images from others are helpful! Looking at block sync approaches, and continuing work on discv5.
Q. Weak subjectivity period, how long? Be conservative! Danny will make some notes.
Gossipsub simulator: now can run 100,000 nodes. Adding mesh topology and metrics.
Client: partial update of spec to 0.9 for work on fork choice tests. Could use it to generate common test vectors. Discv5 progress.
Mikhail has made a writeup about slashing condition detection - to be published tomorrow.
## Research Updates
Some edits to Ph1 spec. Fairly small tweaks. Spec being plugged into the test generation machinery. Fraud proofs part pending review of Ph1 design by more people. Blocks containing multiple chunks vs. having multiple blocks per slot - there may be an opportunity for simplification here.
Data availability proofs seem to be becoming more important to people, rather than an optional add on. Ph1 has been designed with Ph2 data availability proofs in mind. Question remains what scheme to use: fraud-proof based or STARK based (need STARK-friendly hash function: binary field-based, or prime-field based?). Might prototype STARK-based approach to assess feasibility.
Hash-to-curve was presented at IETF meeting yesterday (see chat below for links). Looks good; no issues raised. Sage PoC master implementation that generates test vectors will be run for v5 and all ref implementations updated. Will happen in next 2 weeks or so. Moving to "Last call" status in IETF in order to become a proper standard (~6 months), but we needn't wait for that before proceeding. Carl is "reasonably happy" to declare this as the standard for blockchain work - will confirm after internal meeting.
Phase 0: the EF is looking for someone to manage the validators holding the EF's Ether (DevOps, security, etc.). Multi-client, multi-cloud, open source infrastructure.
Mainly working on zero knowledge proofs. Dan Boneh has come up with a secret leader election approach. Paper to be published soon. Very simple circuit that could be used either as ZKP or fraud proof.
STARK-friendly hash functions. One hash function in the competition has been broken. Two remain, but the cryptographers think it will take *years* to be sure they are secure. The Pederson hash, though, may be a reasonable fallback candidate. [Vitalik] Multihashing may be an approach to working around this.
Starting a Ph2 community call. Also released a status update this week.
Implementation of a runtime API for calling new Wasm runtimes and run them in a sandbox. Prototyping a smart contract execution environment. Expanding Scout to test across multiple shards. Continuing to optimise token EEs. Working on making accumulator implementations more performant.
Q. What smart contract language are you using?
A. AssemblyScript or Rust compiled to WASM
Note: Status has a Nim -> Wasm compiler for smart contracts that Mamy would like to try.
New domain specific calls (initially monthly):
- Eth1.x research call, see ethresear.ch. Includes prepping for transition to Eth2.
- Phase2 call announced by Will, above.
- Starting a Networking call (at least monthly). Danny to lead initially, but looking for long-term owner. See eth2-pm repo in due course.
- [Light-client task force](https://github.com/ChainSafe/lodestar/issues/555) call Dec 4
Just converted Geth codebase to use Go-modules. Discv5 module will be available in Geth master soon, and can be just imported by Go clients.
Istanbul hardfork on Eth1 is promoting node upgrades, making ENR much more widely available, useful for testing.
Q. Discv5: PoW or other DoS-resistance?
A. No updates to this yet. Call for comments from all!
Simulation results could be published next week.
## Spec discussion
[Issue](https://github.com/ethereum/eth2.0-specs/issues/1487): discussion of pain points in disparity between signing-root and hash-tree-root. Seeking feedback on proposal to remove signing roots, and provide instead signed block container. Aim to decide on the next call.
[Raul] Also note that the "signing-root" name is confusing.
[Mamy] Would be better for testing not to have dummy signatures.
Main work for most clients is moving towards joint testnets, but no substantive updates this week.
## Open discussion
Q. Weak subjectivity period?
A. [Vitalik] has an [ethresear.ch post](https://ethresear.ch/t/weak-subjectivity-under-the-exit-queue-model/5187) on estimating this. Roughly, the time it takes for 1/3 validators to exit. Maximal withdrawal period is 8 months. Need to check chain at least every 8/3 months to confirm that you are on the right chain.
* * *
# Chat highlights
From danny to Everyone: 02:02 PM
From Carl to Everyone: 02:37 PM
From danny to Everyone: 02:46 PM
From Cayman to Everyone: 02:51 PM
From danny to Everyone: 02:58 PM
From danny to Everyone: 03:08 PM