lighthouse/testing/state_transition_vectors
Michael Sproul 5e1f8a8480 Update to Rust 1.59 and 2021 edition (#3038)
## Proposed Changes

Lots of lint updates related to `flat_map`, `unwrap_or_else` and string patterns. I did a little more creative refactoring in the op pool, but otherwise followed Clippy's suggestions.

## Additional Info

We need this PR to unblock CI.
2022-02-25 00:10:17 +00:00
..
src Add configurable block replayer (#2863) 2021-12-21 06:30:52 +00:00
.gitignore Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00
Cargo.toml Update to Rust 1.59 and 2021 edition (#3038) 2022-02-25 00:10:17 +00:00
Makefile Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00
README.md Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00

state_transition_vectors

This crate contains test vectors for Lighthouse state transition functions.

This crate serves two purposes:

  • Outputting the test vectors to disk via make.
  • Running the vectors against our code via make test.

Outputting vectors to disk

Whilst we don't actually need to write the vectors to disk to test them, we provide this functionality so we can generate corpra for the fuzzer and also so they can be of use to other clients.

To create the files in ./vectors (directory relative to this crate), run:

make

This will produce a directory structure that looks roughly like this:

vectors
└── exit
    ├── invalid_bad_signature
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_duplicate
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_exit_already_initiated
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_future_exit_epoch
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_not_active_after_exit_epoch
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_not_active_before_activation_epoch
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_too_young_by_a_lot
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_too_young_by_one_epoch
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── invalid_validator_unknown
    │   ├── block.ssz
    │   ├── error.txt
    │   └── pre.ssz
    ├── valid_genesis_epoch
    │   ├── block.ssz
    │   ├── post.ssz
    │   └── pre.ssz
    └── valid_previous_epoch
        ├── block.ssz
        ├── post.ssz
        └── pre.ssz