On Sat, Apr 8, 2017 at 8:21 PM, Johnson Lau <jl2...@xbt.hk> wrote: > pre-synced means already in mempool and verified? Then it sounds like we just > need some mempool optimisation? The tx order in a block is not important, > unless they are dependent
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). Because signature validation is cached, and takes the majority of the block validation time the speed up from the risky optimization isn't that considerable, and there are other lower hanging fruity with bigger payouts like Pieter's change to the per-txout management model and the new non-atomic flushing logic.... and these things don't make more of the system consensus critical. _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev