Skip to content

matter-labs-archive/eip1962_fuzzing

Repository files navigation

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

Recommendations and updates

  • Honggfuzz is recommended for speed
  • Now Honggfuzz saves all results instead of unique ones. Due to differential testing being implemented as "panic on different results" fuzzer considered different reasons as one crash case.
  • run cargo update before running to fetch latest copies from github

Extra

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

About

Fuzzy testing of various EIP1962 implementations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published