There are several ways to install ItyFuzz. We recommend using the ityfuzzup script.
ityfuzzup is a script that automatically installs all dependencies and installs ItyFuzz.
curl -L https://ity.fuzz.land/ | bash
ityfuzzup
To update ItyFuzz, run ityfuzzup
again.
You first need to install Rust through https://rustup.rs/
You need to have libssl-dev
(OpenSSL) and libz3-dev
installed on your system. On Linux, you probably also need to install Clang >= 12.0.0 and use it for CC
environment variables.
# Ubuntu:
sudo apt install libssl-dev libz3-dev pkg-config cmake build-essential clang
# macOS:
brew install openssl z3
Then, you can use cargo
to build ItyFuzz. This can take seconds to hours depending on the amount of your CPU cores and memory.
git clone https://github.com/fuzzland/ityfuzz.git && cd ityfuzz
git submodule update --recursive --init
cargo build --release
This would create an executable at target/release/ityfuzz
. This executable only supports offchain fuzzing (i.e., fuzzing without interacting with the blockchain). To build an executable for onchain fuzzing, run:
cargo build --release --features flashloan_v2
If you are developing ItyFuzz, you can create a debug build (much slower than release builds) and add the following useful features, which will enable more logs and assertions:
cargo build --features flashloan_v2,debug,flashloan_debug