aboutsummaryrefslogtreecommitdiff
path: root/doc/fuzzing.md
diff options
context:
space:
mode:
authorAlex Groce <agroce@gmail.com>2021-11-10 11:10:04 -0700
committerGitHub <noreply@github.com>2021-11-10 11:10:04 -0700
commit6cac99ac0713b41df45dd5a0c4283d5ad25d2917 (patch)
treebd3c77dd274b5b3cf75614546c4caa61600132cb /doc/fuzzing.md
parente7feb73f07179653c0a768ce5d96abe983441936 (diff)
downloadbitcoin-6cac99ac0713b41df45dd5a0c4283d5ad25d2917.tar.xz
Add a brief overview of fuzzing/Bitcoin Core fuzzing
- Google's repo - Our report - John's advice on fuzz-friendly development
Diffstat (limited to 'doc/fuzzing.md')
-rw-r--r--doc/fuzzing.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/doc/fuzzing.md b/doc/fuzzing.md
index 0880f9f581..73d04837f1 100644
--- a/doc/fuzzing.md
+++ b/doc/fuzzing.md
@@ -19,6 +19,10 @@ $ FUZZ=process_message src/test/fuzz/fuzz
There is also a runner script to execute all fuzz targets. Refer to
`./test/fuzz/test_runner.py --help` for more details.
+## Overview of Bitcoin Core fuzzing
+
+[Google](https://github.com/google/fuzzing/) has a good overview of fuzzing in general, with contributions from key architects of some of the most-used fuzzers. [This paper](https://agroce.github.io/bitcoin_report.pdf) includes an external overview of the status of Bitcoin Core fuzzing, as of summer 2021. [John Regehr](https://blog.regehr.org/archives/1687) provides good advice on writing code that assists fuzzers in finding bugs, which is useful for developers to keep in mind.
+
## Fuzzing harnesses and output
[`process_message`](https://github.com/bitcoin/bitcoin/blob/master/src/test/fuzz/process_message.cpp) is a fuzzing harness for the [`ProcessMessage(...)` function (`net_processing`)](https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp). The available fuzzing harnesses are found in [`src/test/fuzz/`](https://github.com/bitcoin/bitcoin/tree/master/src/test/fuzz).