On Sun, Apr 9, 2017, at 00:12, Gregory Maxwell wrote: > In Bitcoin Core the software _explicitly_ and intentionally does not > exploit mempool pre-validation because doing that very easily leads to > hard to detect consensus faults and makes all mempool code consensus > critical when it otherwise is not. There have been bugs in the past > which would have split the network if this optimization had been used. > > (in particular, I believe I recall one related to correctly removing > coinbase spends from the mempool during reorganization that made them > immature; and with the optimization and without the CNB post-test > would have resulted in nodes that saw the reorg creating and accepting > an invalid block, while nodes that didn't rejecting it; but because of > prudent design it was largely harmless).
Although I don't quite follow the details (CNB post-test? Connect block I assume?), the risks you are describing seem to be rather specific to Core's implementation. For one, bitcrust does not or use need reorgs at all. Do you argue (or can you further explain) that the idea of splitting script validation (or what you call mempool pre-validation), and order validation is introducing risks inherent to the protocol? Thanks, Tomas _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev