I might try building this sometime soon. I think it may also serve an educational purpose when trying to understand the whole network's behaviour.

What level of accuracy are we looking for though? Obviously we need to fully emulate the steps of the network protocol, and we need to be able to specify time taken for transmission/processing for each node. Do we care about the actual contents of the messages (to be able to simulate double spend attempts, invalid transactions and blocks, SPV node communication), and their validation (actual signatures and proof of work)?

I imagine the latter is pretty useless, beyond specifying that the signature/proof of work is valid/invalid.

If we could build up a set of experiments we'd like to run on it, it would help clarify what's needed.

Off the top of my head:

- Peter Todd's miner strategy of sending blocks to only 51% of the hashpower.
- Various network split conditions, and how aware of the split nodes would be (and the effect of client variability).
- Testing the feasability of network race double spends, or Finney attacks.
- Various network partition scenarios.
- Tricking SPV nodes.

On Nov 6, 2013 6:37 AM, "Jeff Garzik" <jgarzik@bitpay.com> wrote:

I will contribute 1 BTC to this bounty, under same terms and expiration.


------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development