[test] Speed up fuzzing by ~200x when using afl-fuzz
Enable the `afl-clang-fast++` features deferred forkserver (`__AFL_INIT`) and persistent mode (`__AFL_LOOP(1000)`). Before this patch: ``` $ afl-fuzz -i input -o output -m512 -- src/test/test_bitcoin_fuzzy [*] Validating target binary... [!] WARNING: The target binary is pretty slow! See /usr/local/share/doc/afl/perf_tips.txt. [+] Here are some useful stats: Test case count : 1 favored, 0 variable, 1 total Bitmap range : 1072 to 1072 bits (average: 1072.00 bits) Exec timing : 20.4k to 20.4k us (average: 20.4k us) … exec speed : 57.58/sec (slow!) exec speed : 48.35/sec (slow!) exec speed : 53.78/sec (slow!) ``` After this patch: ``` $ afl-fuzz -i input -o output -m512 -- src/test/test_bitcoin_fuzzy [*] Validating target binary... [+] Persistent mode binary detected. [+] Deferred forkserver binary detected. [+] Here are some useful stats: Test case count : 1 favored, 0 variable, 1 total Bitmap range : 24 to 24 bits (average: 24.00 bits) Exec timing : 114 to 114 us (average: 114 us) … exec speed : 15.9k/sec exec speed : 13.1k/sec exec speed : 15.1k/sec ```
|4 years ago|
|gitian-building||4 years ago|
|man||4 years ago|
|release-notes||4 years ago|
|.gitignore||4 years ago|
|Doxyfile.in||4 years ago|
|README.md||4 years ago|
|README_osx.md||4 years ago|
|README_windows.txt||4 years ago|
|REST-interface.md||4 years ago|
|assets-attribution.md||5 years ago|
|benchmarking.md||5 years ago|
|bips.md||4 years ago|
|bitcoin_logo_doxygen.png||7 years ago|
|build-openbsd.md||4 years ago|
|build-osx.md||4 years ago|
|build-unix.md||4 years ago|
|build-windows.md||4 years ago|
|developer-notes.md||4 years ago|
|dnsseed-policy.md||5 years ago|
|files.md||4 years ago|
|fuzzing.md||4 years ago|
|gitian-building.md||4 years ago|
|init.md||5 years ago|
|reduce-traffic.md||4 years ago|
|release-notes.md||4 years ago|
|release-process.md||4 years ago|
|shared-libraries.md||4 years ago|
|tor.md||4 years ago|
|translation_process.md||4 years ago|
|translation_strings_policy.md||5 years ago|
|travis-ci.md||4 years ago|
|zmq.md||4 years ago|
Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Bitcoin transactions (which is currently more than 100 GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
To download Bitcoin Core, visit bitcoincore.org.
The following are some helpful notes on how to run Bitcoin on your native platform.
Unpack the files into a directory and run:
Unpack the files into a directory, and then run bitcoin-qt.exe.
Drag Bitcoin-Core to your applications folder, and then run Bitcoin-Core.
The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
The Bitcoin repo’s root README contains relevant information on the development process and automated testing.
Distributed under the MIT software license. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. This product includes cryptographic software written by Eric Young (email@example.com), and UPnP software written by Thomas Bernard.