neobytes/src/llmq
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
..
quorums_blockprocessor.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_blockprocessor.h Harden DIP3 activation (#2881) 2019-04-25 18:39:04 +03:00
quorums_chainlocks.cpp Bail out in few more places when blockchain is not synced yet (#2888) 2019-04-30 15:55:11 +03:00
quorums_chainlocks.h A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_commitment.cpp Deserialize CFinalCommitmentTxPayload instead of CFinalCommitment in TxToJSON (#2510) 2018-11-29 21:51:04 +03:00
quorums_commitment.h Deserialize CFinalCommitmentTxPayload instead of CFinalCommitment in TxToJSON (#2510) 2018-11-29 21:51:04 +03:00
quorums_debug.cpp Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
quorums_debug.h Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
quorums_dkgsession.cpp Split "llmq" debug category into "llmq", "llmq-dkg" and "llmq-sigs" (#2799) 2019-03-25 05:48:18 +01:00
quorums_dkgsession.h Stop tracking interested/participating nodes and send/announce to MNAUTH peers (#2798) 2019-03-22 17:21:34 +03:00
quorums_dkgsessionhandler.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_dkgsessionhandler.h A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_dkgsessionmgr.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_dkgsessionmgr.h A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_init.cpp Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
quorums_init.h A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_instantsend.cpp Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
quorums_instantsend.h Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
quorums_signing_shares.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
quorums_signing_shares.h Use lazy BLS signatures more often and don't always verify self-recovered sigs (#2860) 2019-04-11 23:11:39 +03:00
quorums_signing.cpp Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
quorums_signing.h Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
quorums_utils.cpp Do not maintain CService in masternodeQuorumNodes 2019-04-09 12:32:52 +02:00
quorums_utils.h Do not maintain CService in masternodeQuorumNodes 2019-04-09 12:32:52 +02:00
quorums.cpp Bail out in few more places when blockchain is not synced yet (#2888) 2019-04-30 15:55:11 +03:00
quorums.h A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00