Page MenuHomePhabricator

Make sure we do not drop transactions during reorg when the don't come in topological order.
ClosedPublic

Authored by deadalnix on Aug 23 2018, 23:17.

Details

Summary

AcceptToMemoryPool expecttransaction to be passed in one by one in topological order. As a result, many transaction gets rejected because input are not available.

The obvious long term solution is to refactor memory pool acceptance, but in the meantime, we can ensure topological order when we reinsert transactions in the mempool after reorgs.

Test Plan
make check
./test/functional/test_runner.py --extended

Diff Detail

Repository
rABC Bitcoin ABC
Branch
reorgkeeptxn
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 3109
Build 4305: Bitcoin ABC Buildbot (legacy)
Build 4304: arc lint + arc unit

Event Timeline

deadalnix changed the visibility from "Public (No Login Required)" to "Restricted Project (Project)".Aug 23 2018, 23:17
jasonbcox added a subscriber: jasonbcox.

Please fix the typos before landing

src/txmempool.cpp
1289 ↗(On Diff #4623)

If -> In
ordering -> order

1290 ↗(On Diff #4623)

paretn -> parent

1296 ↗(On Diff #4623)

nothign -> nothing

This revision is now accepted and ready to land.Aug 23 2018, 23:33
deadalnix changed the visibility from "Restricted Project (Project)" to "Public (No Login Required)".Aug 23 2018, 23:38
This revision was automatically updated to reflect the committed changes.