Fuzzing on macOS

Beacon Fuzzer guide for macOS users.

General

Fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program.

Requirements

Configure Docker file sharing settings

Make sure that the paths /Users , /Volumes , /private , /tmp have been entered.

Fuzzing

Step 0.

Open up a Terminal and test if docker is up and running docker -v

Step 1. Clone the repository git clone https://github.com/sigp/beacon-fuzz

Step 2.

Change your directory cd beacon-fuzz/eth2fuzz

Step 3.

Build all Ethereum 2.0 client docker containers make fuzz-all This process can take up to one hour.

Once the building process is done, the Fuzzer will start by fuzzing the Lighthouse client and fuzz the next client after one hour. The total process takes 5hours.

Fuzzing Lighthouse

Report & find bugs

Step 0.

Open Finder and head over to its Preferences Change the search settings to Search the Current Folder

Step 1.

If the fuzzer finds a bug it creates a crash file in the workspace folder ~/beacon-fuzz/eth2fuzz/workspace

Step 2.

Search the workspace folder for files called "crash-...", which is the bug file and compress it to a zip.file An example: crash-efc8b3f0753ddd9df52b066d2f4549d548a21a58

Post the zip file on the beacon-fuzz github repository.