Minor release to that handles a few critical bugs found by client implementers along with a handful of minor cleanups, documentation fixes, etc.
Major work (#1320) was done by @protolambda to clean up test generation and organization based on the feedback of client teams. The schema for the tests themselves stays the same, but the test inputs and outputs are segmented into separate files, in a directory per test case with both
.yaml formats available. This enables readable
yaml diffs between
post state yaml, while
ssz is there for fast and easy test loading. Tests are organized in a more hierarchical directory structure starting with
<config name> and with the
config.yaml copied into the test repo. There was a lot addressed in this PR, please see #1320 for detailed explanation.
Another notable fix (#1300) was a bugfix related to BLS domain format. With the freeze, the spec changed domains to be defined as
bytes8 rather than
uint64. Previously this
uint64 had to be changed back into bytes in the BLS libraries, including the one used for the testing infrastructure (
py_ecc). This conversion was still in big-endian, as opposed to the spec'd little-endian behavior.
A full diff can be found in PR #1333
- correctly use
bytes8domain in bls in test generation (#1300)
- fix start shard for compact committees root (#1319)
- properly check attestation bitlist lengths (#1317)
- ignore latest messages in fork choice prior to latest justified (#1306)
- test generation refactor (#1320)
- clarify illegal SSZ types [non-substantive for core specs] (#1283)
- clarify length bit for Bitlist merklization (#1314)
- var mismatch in validator guide,
Phase 1 is in heavy development. The focus has been on cleaning up the shard chain and light client specs to provide a more stable spec for prototyping. Keep an eye on the
dev branch and related issues for phase 1 conversations and PRs.