Presentation by @protolambda
Taipei meetup 29 Apr. '19
(2019 only)
Consensus state-machine, executable spec
@protolambda (EF Research)
Networking and libp2p
Kevin (Trinity)
Valid block identity in Ethereum 1.0:
Example:
The academically verbose (but beautiful) way:
What characterizes the current Eth 2 spec wording:
run build_spec.py:
core/0_beacon-chain.md
eth2spec/phase0/spec.py
make -B pyspec
What you can do with:
Clients can check if they match the spec, literally.
v0.6.0 introduces new tests:
minimal "ZehRehNehTy"
a.k.a. Serenity
Some history:
Conceptually complete, but lots of lurking bugs...
Keep it up to date with
Make sure *all* the generated tests are correct
Extreme example:
Cross-reference, find bugs!
Pyspec
ZRNT
- Coverage; find bugs + test better
- Benchmark: go-spec is fast, no set operations, minimal memory allocations
- Fast enough for fuzzing
- counterpart for differential fuzzing
- more testing
- more test-generation
- compare against clients / ZRNT
Phase 2, to be integrated
@protolambda