Meeting Date/Time: Thursday 2019/5/23 at 14:00 GMT
-
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
4. Network
- 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
- 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