Skip to content

Prototypical Testing

Compare
Choose a tag to compare
@djrtwo djrtwo released this 04 Aug 18:58
· 6673 commits to master since this release
3e45bf4

Release

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 .ssz and .yaml formats available. This enables readable yaml diffs between pre and 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.

Changelog

A full diff can be found in PR #1333

Bugs

  • correctly use bytes8 domain 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)

Non-substantive

  • 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, MAX_INDICES_PER_ATTESTATION -> MAX_VALIDATORS_PER_COMMITTEE (#1308)

Phase 1

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.