Child-pays-for-parent mempool #2814

pull petertodd wants to merge 3 commits into bitcoin:master from petertodd:greedy-child-pays-for-parent changing 6 files +566 −69
  1. petertodd commented at 10:29 AM on July 4, 2013: contributor

    Calculates total uncommitted fees and transaction size required to include the transaction in a block for all transactions in the mempool. Cost is O(1) for mempool.accept() and limited to O(n) when a new block changes what transactions are in the mempool, either due to them being mined, conflicts, or reinstated by a re-org.

    I haven't changed the mining code, and don't keep track of sigops yet. This isn't useful without mining code and mempool expiration so it's not ready to be actually pulled yet. (mainly I want to see what the pulltester thinks)

    Note that this is a safe implementation, not a 100% accurate one, for reasons mentioned in CMemPoolTx::calcPrioritySums() In addition the memoized approach can't directly handle the case where a transaction with a lot of outputs is made worthwhile to mine because of multiple children.

  2. Child-pays-for-parent mempool
    Calculates total uncommitted fees and transaction size required to
    include the transaction in a block for all transactions in the mempool.
    Cost is O(1) for mempool.accept() and maximum O(n) when a new block
    changes what transactions are in the mempool, either due to them being
    mined, conflicts, or a re-org.
    
    No changes to CreateNewBlock() yet.
    dac0995713
  3. n 3e1aabd50c
  4. n2 584c596341
  5. BitcoinPullTester commented at 5:40 AM on July 20, 2013: none

    Automatic sanity-testing: FAILED BUILD/TEST, see http://jenkins.bluematt.me/pull-tester/584c5963412effab498fdcb42280fb3265759a00 for binaries and test log.

    This could happen for one of several reasons:

    1. It chanages paths in makefile.linux-mingw or otherwise changes build scripts in a way that made them incompatible with the automated testing scripts (please tweak those patches in contrib/test-scripts)
    2. It adds/modifies tests which test network rules (thanks for doing that), which conflicts with a patch applied at test time
    3. It does not build on either Linux i386 or Win32 (via MinGW cross compile)
    4. The test suite fails on either Linux i386 or Win32
    5. The block test-cases failed (lookup the first bNN identifier which failed in https://github.com/TheBlueMatt/test-scripts/blob/master/FullBlockTestGenerator.java)

    If you believe this to be in error, please ping BlueMatt on freenode or TheBlueMatt here.

    This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.

  6. luke-jr commented at 12:46 AM on August 30, 2013: member

    bitcoin-qt.ljr20130721: src/main.h:1204: double CMemPoolTx::FeesPerKB() const: Assertion `nSumTxSize >= 0' failed.

  7. petertodd commented at 1:06 AM on August 30, 2013: contributor

    @luke-jr FWIW sipa has told me that his headers first patch changes a lot of the code that this mempool patch touches, so I'm going to wait until he's done that before working on this further.

  8. gavinandresen commented at 2:03 AM on October 21, 2013: contributor

    Closing; please open a new pull request after headers-first has been merged. I'm trying to clean up the open pull requests to "things ready for testing and merging right now."

  9. gavinandresen closed this on Oct 21, 2013

  10. Bushstar referenced this in commit bfc288afb4 on Apr 5, 2019
  11. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 12:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me