Commit Graph

15952 Commits

Author SHA1 Message Date
Pasta
609114a803 Code review: re-add string cast in mininode.py 2019-03-08 17:05:10 -06:00
pasta
85ffc1d647 drop swap_outputs_in_rawtx and DecimalEncoder in smartfees.py 2019-03-08 14:28:00 -06:00
Alexander Block
bc593c84b7 Revert "Fix use of missing self.log in blockchain.py"
This reverts commit b06a6a2e74.
2019-03-08 14:22:49 -06:00
Alexander Block
0e91ebcf42 Use logging framework in Dash specific tests 2019-03-08 14:22:40 -06:00
Alexander Block
fbcb61475a [0.13.x] Bump version to 0.13.2 and add release notes (#2749)
* Bump version to 0.13.2

* Add release notes for 0.13.2.0

* Update credits

* Add #2750 to changelog

* Update doc/release-notes.md

Co-Authored-By: codablock <ablock84@gmail.com>
2019-03-08 21:21:50 +03:00
PastaPastaPasta
dd1245c2a9 Update dnsseed-policy.md (#2751)
* Remove irrelevant link in dnsseed-policy

* Link to dash-seeder in dnsseed-policy

instead of bitcoin-seeder
2019-03-08 21:21:20 +03:00
Alexander Block
f351145e60 Use GetVoteForId instead of maintaining votes on inputs 2019-03-08 17:58:59 +01:00
Alexander Block
d4cf78fe25 Add HasVotedOnId/GetVoteForId to CSigningManager
These just pass through to CRecoveredSigsDb
2019-03-08 17:57:53 +01:00
Alexander Block
43e1bf674e Add key prefix to "rs_" for CRecoveredSigsDb keys
This avoids future conflicts with other data stored in llmqDb
2019-03-08 17:57:16 +01:00
Alexander Block
61e10f6512 Use llmqDb for CRecoveredSigsDb
Instead of creating its own CDBWrapper internally.
2019-03-08 17:34:09 +01:00
Alexander Block
b2cd1db406 Don't use CEvoDB in CDKGSessionManager and instead use llmqDb
Contributions are not part of on-chain consensus and shouldn't be stored in
CEvoDB.
2019-03-08 17:34:09 +01:00
Alexander Block
e2cad1bd69 Introduce global llmq::llmqDb instance of CDBWrapper
This DB is for LLMQ related data that is not part of on-chain consensus.
This for example included LLMQ secret key shares and recovered signatures.
2019-03-08 17:34:09 +01:00
Alexander Block
acb52f6ec1 Don't pass CEvoDB to CDKGSessionHandler and CDKGSession
Was never used.
2019-03-08 17:34:09 +01:00
Alexander Block
64ae91268a
Merge pull request #2735 from codablock/pr_llmq_instantsend
Implement LLMQ based InstantSend
2019-03-08 11:32:44 +01:00
PastaPastaPasta
9dd16cdbe7 Bump minChainWork and AssumeValid to block #1033120 (#2750) 2019-03-08 10:21:33 +03:00
Alexander Block
4d62f3c70e
Merge pull request #2746 from codablock/pr_v13_backport
[0.13.x] Backport multiple PRs from develop
2019-03-08 06:45:40 +01:00
Alexander Block
06fc655595 Actually remove from finalInstantSendLocks in CInstantSendManager::RemoveFinalISLock 2019-03-07 21:15:09 +01:00
Alexander Block
041a1c26d0 Move safe TX checks into TestForBlock and TestPackageTransactions
Otherwise we'll miss checks for ancestors.
2019-03-07 21:15:09 +01:00
Alexander Block
4d3365ddb2 Completely disable InstantSend while filling mempool in autoix-mempool.py
Otherwise we overload Travis and tests start to randomly fail.
2019-03-07 21:15:09 +01:00
Alexander Block
fae33e03ae Let ProcessPendingReconstructedRecoveredSigs return void instead of bool
Return value is unused and the method actually never returned something.
2019-03-07 21:15:09 +01:00
Alexander Block
f8f867a6bb Sync blocks after generating in mine_quorum() 2019-03-07 21:15:09 +01:00
Alexander Block
3e60d2d2db Adjust LLMQ based InstantSend tests for new spork20 2019-03-07 21:15:09 +01:00
UdjinM6
41a71fe443 update autoix-mempool.py to test both "old" and "new" InstantSend (and fix CheckCanLock to respect mempool limits) 2019-03-07 21:15:09 +01:00
UdjinM6
843b6d7a95 update p2p-autoinstantsend.py to test both "old" and "new" InstantSend 2019-03-07 21:15:09 +01:00
UdjinM6
a8da11ac5d update p2p-instantsend.py to test both "old" and "new" InstantSend 2019-03-07 21:15:09 +01:00
UdjinM6
55152cb313 Move IS block filtering into ConnectBlock 2019-03-07 21:15:09 +01:00
Alexander Block
2299ee2836 Rename IXLOCK to ISLOCK and InstantX to InstantSend 2019-03-07 21:15:09 +01:00
Alexander Block
f5dcb00acf Introduce spork SPORK_20_INSTANTSEND_LLMQ_BASED to switch between new/old system 2019-03-07 21:15:09 +01:00
Alexander Block
280690792a Combine loops in CChainLocksHandler::NewPoWValidBlock 2019-03-07 21:15:09 +01:00
Alexander Block
9e9081110b Add override keywork to CDSNotificationInterface::NotifyChainLock 2019-03-07 21:15:09 +01:00
Alexander Block
e2f99f4ae1 Set llmqForInstantSend for mainnet and testnet 2019-03-07 21:15:09 +01:00
Alexander Block
5b8344e8f8 Use scheduleFromNow instead of schedule+boost::chrono 2019-03-07 21:15:09 +01:00
Alexander Block
f44f09ca04 Fix crash in BlockAssembler::addPackageTxs 2019-03-07 21:15:09 +01:00
Alexander Block
baf8b81c4a Fix no-wallet build 2019-03-07 21:15:09 +01:00
Alexander Block
2a7a5c6338 Only sign ChainLocks when all included TXs are "safe"
Safe means that the TX is either ixlocked or known since at least 10
minutes.

Also change miner code to only include safe TXs in block templates.
2019-03-07 21:15:09 +01:00
Alexander Block
96291e7a0f Cheaper/Faster bailout from TrySignChainTip when already signed before 2019-03-07 21:15:09 +01:00
Alexander Block
0a5e8eb862 Move ChainLock signing into TrySignChainTip and call it periodically
Later commits will introduce checks for "safe TXs" which might abort the
signing on first try, but succeed a few seconds later, so we periodically
retry to sign the tip.
2019-03-07 21:15:09 +01:00
Alexander Block
bd7edc8ae9 Track txids of new blocks and first-seen time of TXs in CChainLocksHandler 2019-03-07 21:15:09 +01:00
Alexander Block
7945192ff6 Enforce IX locks from the new system 2019-03-07 21:15:09 +01:00
Alexander Block
dc97835ec6 Disable explicit lock requests when the new IX system is active 2019-03-07 21:15:09 +01:00
Alexander Block
68cfdc9325 Also call ProcessTx from sendrawtransaction and RelayWalletTransaction 2019-03-07 21:15:09 +01:00
Alexander Block
1d2d370cd0 Whenever we check for locked TXs, also check for the new system having a lock 2019-03-07 21:15:09 +01:00
Alexander Block
3a6cc2cc17 Show "verified via LLMQ based InstantSend" in GUI TX status 2019-03-07 21:14:31 +01:00
Alexander Block
34a8b2997a Disable old IX code when the new system is active 2019-03-07 21:14:31 +01:00
Alexander Block
5ff4db0a05 Downgrade TXLOCKREQUEST to TX when new IX system is active
The new system does not require explicit lock requests, so we downgrade
TXLOCKREQUEST to TX and start propagating it instead of the original.
2019-03-07 21:14:31 +01:00
Alexander Block
1959f3e4a5 Handle incoming TXs by calling CInstantXManager::ProcessTx
This also includes handling of TXs that were previously orphanced
2019-03-07 21:14:31 +01:00
Alexander Block
83dbcc483f Implement CInstantSendManager and related P2P messages 2019-03-07 21:14:31 +01:00
Alexander Block
5bbc122749 Implement PushReconstructedRecoveredSig in CSigningManager
We can reconstruct recovered sigs from other P2P messages to avoid
re-validation of those. We will do this later in InstantSend code.
2019-03-07 21:14:31 +01:00
Alexander Block
2bbac8ff77 Introduce NotifyChainLock signal and invoke it when CLSIGs get processed 2019-03-07 21:14:31 +01:00
Alexander Block
6374dce99e Fix error message for invalid voting addresses (#2747) 2019-03-07 18:49:26 +01:00