198 lines
8.7 KiB
Markdown
198 lines
8.7 KiB
Markdown
|
# Ethereum 2.0 Implementers Call 18 Notes
|
||
|
|
||
|
### Meeting Date/Time: Thursday 2019/5/23 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/mar-28-2019/2pm)
|
||
|
### Meeting Duration: 1.5 hours
|
||
|
### [GitHub Agenda Page](https://github.com/ethereum/eth2.0-pm/issues/43)
|
||
|
### [Audio/Video of the meeting](https://www.youtube.com/watch?v=dw2GmEuLr5k&)
|
||
|
|
||
|
# 1. [Testing Updates](https://youtu.be/dw2GmEuLr5k?t=417)
|
||
|
* 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
|
||
|
|
||
|
# 2. [Client Updates](https://youtu.be/dw2GmEuLr5k?t=1117)
|
||
|
* 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
|
||
|
|
||
|
# 3. [Research Updates](https://youtu.be/dw2GmEuLr5k?t=2083)
|
||
|
* Vitalik
|
||
|
* [V2 of Phase 2 proposal](https://notes.ethereum.org/w1Pn2iMmSTqCmVUTGV4T5A?viewPhase#)
|
||
|
* 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](https://youtu.be/dw2GmEuLr5k?t=2883)
|
||
|
* 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](https://youtu.be/dw2GmEuLr5k?t=3509)
|
||
|
* 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
|
||
|
|
||
|
# 5. [interop lockin](https://youtu.be/dw2GmEuLr5k?t=3955)
|
||
|
**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](https://github.com/ethresearch/p2p/issues/4) 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 Edginton (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
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|