Nimbus
Core:
- Testnet1 -based on libp2p-daemon, launched this morning, need to adapt the script to start it with a single command (libp2p-daemon not build)
- Working toward 0.8
- lots of small changes integrated
- SSZ primary focus
- aligning our state transition function with specs
- significant perf improvement,
cumulated 20x-30x speedup on our state_transition only bench.
Bottlenecks:
- process_crosslinks, get_crosslink_deltas (10x-15x) status-im/nimbus-eth2#314
- get_crosslink_committee (2x) via caching status-im/nimbus-eth2#316
Metrics:
- Metrics API for Nimbus published https://github.com/status-im/nim-metrics
eWASM:
- Very competitive smart contract size when compiling Nim to eWASM https://github.com/status-im/nimplay
Eth1:
- Resolved "bad peer" connection issue to Parity and Geth
Testing
Overflow bug found by Prismatic
Protolambda: Now can expand test suite since freeze Justin: Fuzzing framework started on executable py-specs and go-specs Next target, probably lighthouse
- Inputs:
- randomized state done by libfuzzer https://llvm.org/docs/LibFuzzer.html
- blocks
Client updates
Nimbus
Artemis (Johny)
- Network load analysis
Trinity (HWW)
- 0.8
- state transition in progress
- interop requirement fixes libp2p insecure connection: libp2p/specs#186
Yeeth (Dean)
- Collab with Artemis
- Started again to sync with 0.8
Harmony (Mikhail)
- sync to 0.8
- missing SSZ
- started on slot clock system
- research on network aggregation strategies
- want to avoid additional overlays like Handle
- libp2p for JVM and multistream
Lighthouse (Adrian)
- sync to 0.8
- need optimization of tree_hash caching
- HTTP API
- SSZ partial by Matt from Consensys
- Disc v5 and small testnets
- Formalizing minimal libp2p-based proto
- ethereum/consensus-specs#1281
- update RPC
Prismatic (Raul)
- 0.8 passing all tests
- found coverage lacking in SSZ encoding of longer datatypes
Chainsafe (Greg)
- Improving dev tooling
- Refactoring for modularity
- SSZ working in a branch
- Website
- https://simpleserialize.com
- bls website
- Assembly script
- code-golfing eWASM contract in AssemblyScript
Parity (Wei Tang)
- WIP 0.8
- issue with SSZ, substantial changes
- lots of new types which require configurable primitives need to change to compile-time structs
Research updates
-- Vitalik - Phase 1:
- Proof of custody
- Will probably need to include in phase 0, root of persist_committees to allow efficient light clients
- Research on packing vs fixed position of crosslink data structure
-- Justin:
-- Will Villanueva:
Matt continuing work on SSZ-partial Prototype phase 1 impl, colab with eWASM --> have a phase 1-2 testnet / exec environment
Research work on State schemes by Vitalik
- https://ethresear.ch/t/layer-2-state-schemes/5691
- https://ethresear.ch/t/trustless-two-way-bridges-with-side-chains-by-halting/5728
-- (?)
Network updates
-- libp2p (Mike Goelzer)
Grants:
- Harmony: minimum JVM libp2p on Monday
- JS libp2p: ChainSafe Are there concerns on JS libp2p that we should be addressing? Note that it has been in prod for IPFS for a couple of years => JS libp2p was part of IPFS and extracted out from it
Community Relations WIP:
- What is Protocol Lab
- Relation with libp2p
- target next call (2 weeks from now)
Insecure Transport specced out:
- libp2p/specs#186
- go-libp2p will be adjusted today or tomorrow
Dean: State of libp2p spec?
- technical writer reviewing and opening PR
- not finished yet
- https://github.com/libp2p/specs
Important update, unifying spec:
Can use the insecure transport for testing while secure transports are still WIP
Technical writer bandwidth issue --> looking for second hire
Danny: please check libp2p standardization PR:
Whiteblock:
- workshop for handle exchange with Artemis, Prysm and (?)
- several updates
Episub state -> adapted to few producers and multiple consumers
General spec discussions
SSZ:
- scheme types that moved types from spec to application type system and bytes manipulation to type system.
- Protolambda: for spec discussion: ssz offsets have this edge case where empty fixed-size containers result in errors. Empty containers are not really seen, but empty vectors may be a thing when disabling a feature by setting a length to 0. What do implementations like best: make 0-length fixed-size elements illegal? Or make lists of these illegal? (or maybe force them to be limit 0) - ethereum/consensus-specs#1283
- Preston: ethereum/consensus-specs#1266