Skip to content

Latest commit

 

History

History
183 lines (158 loc) · 8.65 KB

call_018.md

File metadata and controls

183 lines (158 loc) · 8.65 KB

Ethereum 2.0 Implementers Call 18 Notes

Meeting Date/Time: Thursday 2019/5/23 at 14:00 GMT

Meeting Duration: 1.5 hours


  • Protolambda

    • Slow week with NY blockchain week, helpful to get together with implementers
    • Epoch transistions, sanity tests, want clients to create test runners and get feedback
    • Tests are currently on separate branch, soon to be released
  • Mikhail

    • keccak256 still used in BLS test vectors
  • Danny - this was likely a mistake,

  • Protolambda

    • Loading configuration files: compile-time vs runtime
  • Mamy

    • Nimbus discussed this at length - for now using compile-time constants, not through YAML
    • Reconsidering in future for users, don't want them have to recompile everytime
  • Paul

    • Our approach has been to make our types generic across different size array lengths, so we're specifying sets of layouts so it's a mix
  • Danny

    • Configurable constants validity condition accompanies this, currently enumerating those in a branch
    • Constants will likely live in a test repo for now
  • Antoine

    • Testing jenkins instance for building docker files for Lighthouse, Prysm, Artemis for nodes on a simulated testnet
    • Working without discovery, just for connection. Next step is peer and sync
    • Format build by Whiteblock - network delays, easy to recreate real world simulations
  • Danny

    • Another initial fuzzing test targeting Go and Py specs, overtime will integrate more clients
  • Parity - Wei Tang
    • Up to date with 0.6 spec
    • Basic validator implementation running - one potential issue with BLS implementation: some rare cases where library is deemed invalid
  • Harmony - Mikahil
    • Finished 0.6 spec, passing all current tests, need to check out issues with BLS
    • Almost finished work on networking stack (wire proctocol, sync online mode, CLI interface for nodes)
    • Nodes falling apart after running several hours - mostly related to consensus
    • Too difficult to store public keys and compress them each time
  • Pegasys - Jonny
    • Lot of planning for interop lockin
    • Implementation of watching validators register; Timing mechanism is now swappable for testing different ones
  • Nimbus - Mamy
    • Slow weeks - several people on holiday
    • Networking, forward and backward sync
    • Still working on libp2p
    • Some confusion between keccak256 and SHA256
    • Shuffling and BLS mainnet tests passing
    • Update on ETH 1: new member working networking and reusable parts for ETH 2.0
    • Documentation generator for repo - should be cross language compatible
    • Also working on multi-threading and debugging Nim library
  • Prysmatic - Terence
    • Finished up to 0.6 spec, working on how to use and optimize in testnet
    • Updating SSZ and trie hashing
    • Investigating BLS alternatives
    • Possible colaboration with Whiteblock for p2p
  • Lodestar - Cayman
    • SSZ and BLS (switched to Milagro) tests passing for 0.6, soon state transtition tests and shuffling
    • Landed first version of gossipsub, reviewed by libp2p team - haven't integrated yet
    • Working on simulations running end to end
    • Collaborating with Yeeth team to convert Lodestar components to WASM
  • Lighthouse - Luke
    • Almost up to date with 0.6
    • Implemented parses of EF tests, added some provisions for future fuzzing - passing majority of tests
    • Progress with Discovery V5, inital implementation with Rust libp2p
    • Refactored database wrapper for optimizing for state storage and will be fuzzing more components
  • Trinity - Hsiao-Wei
    • Working on beach chain validator functionality, adding block sinking process on devp2p
    • Progress on Discovery V5 - implemented encryption-decryption functions from spec
    • Updating deposit contract
  • Vitalik
    • V2 of Phase 2 proposal
    • Instead of maintaining large array of state for every shard, 32 byte hash takes that place
    • Full state can be abstracted across different execution environments
    • Despite more abstraction it's simpler based on how it lets you abstract things - ex: no need for 1 standard rent scheme - allows for alot more experimentation and design flexibility
    • Happens to provide a nice slot for ETH 1.0
    • Knowns and Unknowns:
      • Known - fundamentally possible to fulfill vision - complexity doesn't seem to increase with 2 layers over 1
      • Unknown - efficiency benefits from 1 type of committee over 2 types
      • Unknown - challenges in fragmentation over different environments - harder or easier to upgrade? - Censorship attacks
      • Unknown - 2 layer structure economic design for fee markets
    • Discussion of SSZ partial for light clients
  • Olivier (Pegasys)
    • Finishing Handle paper (scalable BFT network aggregation protocol) - discovered and corrected some attack vectors
    • Working on blog post series on PCP
  • Zak
    • Finished intial test series on gossipsub - will share data and results shortly
    • Started Discovery V5 and writing light client
  • Mike - Libp2p
    • Putting a lot more effort into specs since it's a big barrier for implementers
  • Zak
    • We're going to want a more solidified spec for libp2p for future implementers and we also need numbers for message sizes (avg, max) for adequate pre-production testing

Joseph: Ongoing discussion over interop concerning: Why not libp2p first? Why minimum wire protocol for interop?

Jonny: HackMD document attempting to outline with interop might look like with clients talking to eachother over libp2p. Mostly to simplify things and attempt to establish a baseline for node communication

Adrian: if strip out higher level protcols of libp2p we're mostly working with TCP transport and multistream. Why can't we use basic libp2p with this functionality?

Zak: that should work, we just need everyone to interpret messages the same way for consistent execution.

Mikerah: minimal libp2p implementation doc available for reference

Adrian: libp2p should already be interoperable (Rust, Go, Javascript) off the shelf

Felix: spec for frame format that multistream uses?

Adrian: yes

Felix: is there a way to remove the multistream for testing purposes?

Paul: could they not just bind into the daemon?

Mike: yeah, we built the daemon version of libp2p specifically for languages without libp2p implementation would be able to interop

Zak: do we want to benchmark libp2p against devp2p? Right now we're testing gossipsub, floodsub, and plumbtree across both

Kevin: I don't think the bindings are the most complicated part. The troublesome part is additional features like peers connecting

Zak: another issue people have had is peers added to the routing table without any routeable IP address in libp2p. DiscoveryV5 should account for that

Felix: we should have an evolving spec for the lower protocol and not just point people to libp2p

Mike: we've actually been trying to specify what a libp2p 1.0 looks like implmented so perhaps we can contribute

Attendees

  • Danny Ryan (EF/Research)
  • Adrian Manning (Lighthouse/Sigma Prime)
  • Alex Stokes (Lighthouse/Sigma Prime)
  • Antoine Toulme (ConsenSys)
  • Ben Edgington (PegaSys)
  • Brett Robertson (Cat Herders)
  • Carl Beekhuizen (EF/Research)
  • Cayman
  • Chih-Cheng Liang (EF/Research)
  • Daniel Ellison (ConsenSys)
  • Daniel
  • Felix Lange (fjl) (EF/geth)
  • Greg Markou (ChainSafe)
  • Hsiao-Wei Wang (EF/Research)
  • Kevin Mai-Hsuan (EF/Research)
  • Jacek Sieka (Status/Nimbus)
  • Jannik Luhn (Brainbot/Research)
  • Jonny Rhea (Pegasys)
  • Joseph Delong (PegaSys)
  • Leo (BSC)
  • Luke Anderson (Lighthouse/Sigma Prime)
  • Mamy Ratsimbazafy (Nimbus/Status)
  • Matt Garnett
  • Matthew Slipper (Kyokan)
  • Mike Goelzer (libp2p)
  • Mikerah (ChainSafe)
  • Mikhail Kalinan (Harmony)
  • Nicolas Gailly (PegaSys)
  • Nishant Das (Prysmatic)
  • Olivier Begassat (ConsenSys)
  • Paul Hauner (Lighthouse/Sigma Prime)
  • Preston (Prysmatic)
  • Protolambda (EF)
  • Steven Schroeder (PegaSys)
  • Terence Tsao (Prymatic)
  • Trenton Van Epps (Ethereum Cat Herders)
  • Weather Cam?
  • Wei Tang (Parity)
  • Vitalik Buterin (EF/Research)
  • Zak Cole (Whiteblock)
  • Meeting notes: Michael LaCroix