README.md (1800B)
1 # iuna Fuzz Targets 2 3 These targets exercise external input boundaries and persistence decoders. 4 5 Install the release-pinned cargo-fuzz version once. Building the helper may use a newer stable 6 toolchain without changing Iuna's Rust 1.88 build contract: 7 8 ```sh 9 cargo +1.98.1 install cargo-fuzz --version 0.13.2 --locked 10 ``` 11 12 Run a target: 13 14 ```sh 15 cargo fuzz run p2p_envelope 16 cargo fuzz run compact_snapshot 17 cargo fuzz run domain_json 18 cargo fuzz run stratum_request 19 cargo fuzz run wallet_config 20 cargo fuzz run vdf_proof 21 cargo fuzz run transaction_v2 22 ``` 23 24 cargo fuzz requires a nightly Rust toolchain and adds sanitizer and coverage instrumentation. 25 For a bounded run, use for example: 26 27 ```sh 28 cargo +nightly fuzz run transaction_v2 -- -max_total_time=300 29 ``` 30 31 The release gate also applies a 10-second per-input timeout so hangs are retained 32 as actionable fuzzing failures alongside crashes. 33 34 Short, uninstrumented crash smoke run without installing cargo-fuzz: 35 36 ```sh 37 cargo run --manifest-path fuzz/Cargo.toml --bin p2p_envelope -- -runs=1 fuzz/corpus/p2p_envelope 38 cargo run --manifest-path fuzz/Cargo.toml --bin compact_snapshot -- -runs=1 fuzz/corpus/compact_snapshot 39 cargo run --manifest-path fuzz/Cargo.toml --bin domain_json -- -runs=1 fuzz/corpus/domain_json 40 cargo run --manifest-path fuzz/Cargo.toml --bin stratum_request -- -runs=1 fuzz/corpus/stratum_request 41 cargo run --manifest-path fuzz/Cargo.toml --bin wallet_config -- -runs=1 fuzz/corpus/wallet_config 42 cargo run --manifest-path fuzz/Cargo.toml --bin vdf_proof -- -runs=1 fuzz/corpus/vdf_proof 43 cargo run --manifest-path fuzz/Cargo.toml --bin transaction_v2 -- -runs=1 fuzz/corpus/transaction_v2 44 ``` 45 46 Targets intentionally accept malformed input. A parse error is fine; panics, 47 crashes, excessive allocation, or timeouts are failures.