Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
zedt3ster committed Oct 27, 2019
1 parent 956d857 commit 32b6db2
Showing 1 changed file with 19 additions and 14 deletions.
33 changes: 19 additions & 14 deletions README.md
Expand Up @@ -14,16 +14,16 @@ This project and its inner workings are subject to change.

## Current Status

Currently fuzzes against Eth2 v0.8.3 python or go executable specs ([pyspec](https://github.com/ethereum/eth2.0-specs/tree/v0.8.3/test_libs/pyspec) or [zrnt](https://github.com/protolambda/zrnt/tree/v0.8.3))
Currently fuzzes against Eth2 `v0.8.3` python or Go executable specs ([pyspec](https://github.com/ethereum/eth2.0-specs/tree/v0.8.3/test_libs/pyspec) or [zrnt](https://github.com/protolambda/zrnt/tree/v0.8.3))


###Implementations
### Implementations

* [Lighthouse](https://github.com/sigp/lighthouse/)/rust
* [pyspec](https://github.com/ethereum/eth2.0-specs/tree/dev/test_libs/pyspec)/python
* [zrnt](https://github.com/protolambda/zrnt/)/go

###Operational Fuzz Targets:
### Operational Fuzz Targets:

(and their relevant spec function)

Expand All @@ -34,34 +34,34 @@ All currently use the "mainnet" config: https://github.com/ethereum/eth2.0-specs
* `attestation` - [`process_attestation`](https://github.com/ethereum/eth2.0-specs/blob/v0.8.3/specs/core/0_beacon-chain.md#attestations)
* `shuffle` - [`compute_shuffled_index`](https://github.com/ethereum/eth2.0-specs/blob/v0.8.3/specs/core/0_beacon-chain.md#compute_shuffled_index)

See [corpora][Corpora] repo for explanation of input structure.
See [corpora](https://github.com/sigp/beacon-fuzz-corpora) repository for explanation of input structure.

### Corpora

See https://github.com/sigp/beacon-fuzz-corpora for examples and explanation of structure.
See [corpora](https://github.com/sigp/beacon-fuzz-corpora) for examples and explanation of structure.


## Usage

Quickstart:

```console
```bash
$ git clone --depth 1 https://github.com/sigp/beacon-fuzz.git
$ git clone --depth 1 https://github.com/sigp/beacon-fuzz-corpora.git
$ cd beacon-fuzz
# ./runfuzzer.sh block_header ../beacon-fuzz-corpora/0-8-3/mainnet/block_header/ ../beacon-fuzz-corpora/0-8-3/mainnet/beaconstate
$ ./runfuzzer.sh block_header ../beacon-fuzz-corpora/0-8-3/mainnet/block_header/ ../beacon-fuzz-corpora/0-8-3/mainnet/beaconstate
```

Interactive usage:

```console
```bash
$ git clone --depth 1 https://github.com/sigp/beacon-fuzz.git
$ cd beacon-fuzz
$ sudo docker build . -t beacon_fuzz
$ sudo docker run -it beacon_fuzz bash
# git clone --depth 1 https://github.com/sigp/beacon-fuzz-corpora.git
# export ETH2_FUZZER_STATE_CORPUS_PATH="/eth2/beacon-fuzz-corpora/0-8-3/mainnet/beaconstate"
# /eth2/fuzzers/attestation/fuzzer /eth2/beacon-fuzz-corpora/0-8-3/mainnet/attestation
$ git clone --depth 1 https://github.com/sigp/beacon-fuzz-corpora.git
$ export ETH2_FUZZER_STATE_CORPUS_PATH="/eth2/beacon-fuzz-corpora/0-8-3/mainnet/beaconstate"
$ /eth2/fuzzers/attestation/fuzzer /eth2/beacon-fuzz-corpora/0-8-3/mainnet/attestation
```

Use `help=1` for more arguments (see also [libfuzzer docs](https://llvm.org/docs/LibFuzzer.html))
Expand All @@ -79,16 +79,21 @@ If build fails, comment the `RUN /eth2/build.sh` in `Dockerfile`, and run it man

### Adding new implementations for a target

TODO
The following implementations will be added to the various fuzzing targets:

* [Nimbus](https://github.com/status-im/nim-beacon-chain)
* [Prysm](https://github.com/prysmaticlabs/prysm)
* [Artemis](https://github.com/PegaSysEng/artemis)
* [Harmony](https://github.com/harmony-dev/beacon-chain-java)
* [Lodestar](https://github.com/ChainSafe/lodestar)

## Roadmap

- Add more implementations
- Add more fuzz targets
- Improved onboarding, ease of adding new targets and implementations
- Improved coverage measurements and visibility

TODO
- Deploy on dedicated production fuzzing infrastructure

## License

Expand Down

0 comments on commit 32b6db2

Please sign in to comment.