dash/qa/rpc-tests/test_framework
Alexander Block 66a2cdeafc Properly handle conflicts between ChainLocks and InstantSend (#2904)
* Move code to write archived ISLOCKs into its own method

We'll need this from another method as well later.

* Return ISLOCK instead of conflicting txid in GetConflictingTx/GetConflictingLock

* Implement GetInstantSendLocksByParent and RemoveChainedInstantSendLocks

These allow to easily delete multiple chains (actually trees) of ISLOCKs
in one go.

* Implement RemoveConflictedTx and call it from RemoveMempoolConflictsForLock

Also add "retryChildren" parameter to RemoveNonLockedTx so that we can
skip retrying of non-locked children TXs.

* Properly handle/remove conflicted TXs (between mempool and new blocks)

* Track non-locked TXs by inputs

* Implement and call ResolveBlockConflicts

* Also call ResolveBlockConflicts from ConnectBlock

But only when a block is known to have a conflict and at the same time is
ChainLocked, which causes the ISLOCK to be pruned.

* Split out RemoveChainLockConflictingLock from ResolveBlockConflicts

* Implement "quorum getrecsig" RPC

* Include decoded TX data in result of create_raw_tx

* Implement support for CLSIG in mininode.py

* Fix condition for update of nonLockedTxs.pindexMined

* Only add entries to nonLockedTxsByInputs when AddNonLockedTx is called for the first time

* Implement support for ISLOCK in mininode.py

* Implement tests for ChainLock vs InstantSend lock conflict resolution

* Handle review comment

Bail out (continue) early
2019-05-07 15:14:33 +03:00
..
__init__.py [QA] restructure rpc tests directory 2015-05-18 15:25:45 +02:00
authproxy.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
bignum.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
blockstore.py Merge #9768: [qa] Add logging to test_framework.py 2019-02-26 15:54:32 -06:00
blocktools.py Use version 2 CCbTx in create_coinbase to fix test failures 2019-04-04 12:27:35 +02:00
comptool.py code review and reset file perms 2019-03-03 20:50:39 -06:00
coverage.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
key.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
mininode.py Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
netutil.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
script.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
siphash.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
socks5.py Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
test_framework.py Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
util.py Implement isolate_node/reconnect_isolated_node in tests (#2901) 2019-05-06 17:58:38 +03:00