LearnBitcoin

Bitcoin Dev Archive 2012

Fuzzer?

2 messages, 25 to 26 Jan 2012. Started by Amir Taaki.

Amir Taaki, Gavin Andresen

Permalink Original thread on gnusha.org

Amir Taaki permalink original

Hey,

I heard there is a fuzzer in the works? Where can I find more details of this? I'm going to write one for libbitcoin, but if one already exists then I'd rather build on and use that.

Something simple like: - Set previous block hash, set current target - Start hashing - Connect and send to specified host (i.e localhost)

That way I can force re-organisations and stress the blockchain algorithm. Should be trivial for me to build, but worth asking anyway :)

Thanks

Gavin Andresen in reply to Amir Taaki permalink original

https://github.com/gavinandresen/bitcoin-git/tree/fuzzer

It is a transaction fuzzer; adding block fuzzing is on the TODO.

Basic usage is: 1. Use the send* RPC commands to get one or more transaction IDs 2. Run a script that repeatedly calls relayfuzzed with a nonce/txid ... and see how the connected peer(s) react to all the fuzzy 'inv/tx' protocol messages.

I built it to stress-test BIP 16, there are lots of useful features that could be added. Patches welcome!