/eip1962_fuzzing

Fuzzy testing of various EIP1962 implementations

Primary LanguageRust

Fuzzers for EIP1962

This repo contains preset scripts for fuzzing of Rust implementation, fuzzing gas estimator (those are not too interesting), and differential testing between C++ implementation and Rust implementation. All scripts are Rust files, so C++ is wrapper into the thin layer.

Implementations

Libfuzzer

Requires:

  • C++17 compiler
  • Nightly Rust
  • Install using manual

Usage:

  • cd fuzz
  • bash run_fuzz_compare.sh

Honggfuzz

Requires:

  • C++17 compiler
  • Stable Rust
  • Install using manual

Usage:

  • cd honggfuzz
  • bash run_honggfuzz_compare.sh

Tuning

  • Change number of threads for fuzzers in scripts
  • Download initial corpus from here and follow the instructions of either here or here

Extra

Folder cross-tester contains few examples how to specify inputs from fuzzer reports debug and compare implementations.