Alexander Block
135829dc49
Add SPORK_19_CHAINLOCKS_ENABLED
2019-01-28 12:24:15 +01:00
Alexander Block
29532ba196
Implement and enforce ChainLocks
2019-01-28 12:24:15 +01:00
Alexander Block
2bf6eb1c7c
Track parent->child relations for blocks
...
Allows to cheaply find all possible children of a block.
2019-01-28 12:24:15 +01:00
Alexander Block
04a51c9ef4
Use a block that is 8 blocks in the past for SelectQuorumForSigning
...
Otherwise nodes might already fail to verify sigs when just 1 block away
from the tip.
2019-01-28 12:24:15 +01:00
Alexander Block
cf33efc9e1
Move SelectQuorumForSigning into CSigningManager and make it height based
2019-01-28 12:24:15 +01:00
Alexander Block
4026ea203b
Implement VerifyRecoveredSig to allow verifcation of sigs found in P2P messages
2019-01-28 12:24:15 +01:00
Alexander Block
9f211ef12d
Add listener interface to listen for recovered sigs
2019-01-28 12:24:15 +01:00
Alexander Block
189cee2108
Don't pass poolSize to SelectQuorum and instead use consensus params
2019-01-28 12:24:15 +01:00
Alexander Block
13855674d7
Add missing new-line character in log output
2019-01-28 12:24:15 +01:00
UdjinM6
d31edf66ad
Wait for script checks to finish before messing with txes in Dash-specific way ( #2652 )
...
Benchmark Dash part while at it
2019-01-28 12:23:59 +01:00
Alexander Block
7ee31cbd65
Speed up integration tests with masternodes ( #2642 )
...
* Implement copy_datadir to allow easy copying of state from one node to another
* Instead of starting with a fresh datadir for MNs, reuse a copy of the faucet
* Start masternodes in parallel instead of waiting for the previous to finish
* Allow specifying of window and threshold with -bip9params
* Implement -dip3activationheight for regtests
* Implement fast DIP3 activation in DashTestFramework
* Speed up activation of DIP3 in dip3-deterministicmns.py
* Update qa/rpc-tests/test_framework/test_framework.py
Co-Authored-By: codablock <ablock84@gmail.com>
* Always assign fast_dip3_activation
2019-01-23 19:36:51 +03:00
UdjinM6
fda16f1fea
Fix off-by-1 in phase calculations and the rest of llmq-signing.py issues ( #2641 )
...
* Fix off-by-1 in phase calculations
* Fix wait_for_quorum_phase, should look for check_received_messages
* Fix wait_for_quorum_phase for complain phase
* Bump default timeout in wait_for_quorum_phase/wait_for_quorum_commitment to 15
2019-01-23 17:02:56 +03:00
Alexander Block
b595f9e6a1
Fix LLMQ signing integration tests ( #2640 )
...
* Fix cleanup of old recovered sigs
When iterating the db, we should also include entries that match exactly
the end time.
* Fix key not found error
* Raise AssertionError in case wait_for_quorum_phase/wait_for_quorum_commitment time out
2019-01-23 11:37:02 +03:00
UdjinM6
5977486897
Bring back ResetLocalSessionStatus call ( #2639 )
...
It was dropped accidentally on refactoring.
2019-01-23 11:34:31 +03:00
UdjinM6
d2ddc2a008
A couple of fixes/refactorings for CDKGSessionHandler ( #2637 )
...
* Fix confusion: `quorumHash` is both a class member and an argument of a function
Rename `height` too while at it
* Make sure height and hash we pass to InitNewQuorum are related
* Don't update expectedQuorumHash, make it const
This also streamlines logic a bit
* Compact phase calculation
* Decouple invCs and cs_vPendingMasternodes
Not an issue atm but we'd better avoid any potential interlocking if possible
* wrap `%` in `()`
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
2019-01-22 16:33:42 +03:00
UdjinM6
b2b97f258f
Fix some strings, docs and cmd-line/rpc help messages ( #2632 )
...
* No need to translate "Dash"
* Fix missing dashification
* Update docs
* Fix cmd-line params help
- `bool` should have no `=<smth>`
- non-`bool` should have proper `<smth>`
* Fix `quorum dkgstatus` help
* add llmq/ into files.md
2019-01-22 16:33:20 +03:00
Alexander Block
e7981e468d
Remove fLLMQAllowDummyCommitments from consensus params ( #2636 )
...
This should have been removed together with removal of the dummy DKG
2019-01-22 14:16:30 +03:00
UdjinM6
fdcc765e0a
Merge pull request #2634 from codablock/pr_llmq_signing
...
Implement LLMQ signing requests/sessions
2019-01-22 14:16:01 +03:00
UdjinM6
8cd7287ba6
Fix missing lupdate in depends ( #2633 )
2019-01-22 14:15:26 +03:00
Alexander Block
b0ad1425e2
Review fixes (mostly if/else related but no change in logic)
2019-01-22 05:32:56 +01:00
Alexander Block
c905f1fe10
Initialize g_connman before initializing the LLMQ system
...
Background threads of the LLMQ system use g_connman, so it should be
initialized before.
2019-01-21 15:22:38 +01:00
UdjinM6
b8d069bcdd
fix/cleanup qt rpcnestedtests
2019-01-21 14:42:08 +01:00
Alexander Block
b970c20a96
Avoid using immature coinbase UTXOs for dummy TXins
2019-01-21 14:42:08 +01:00
Alexander Block
4d25148c03
Add llmq-signing.py tests
2019-01-21 14:42:08 +01:00
Alexander Block
d020ffa00d
Add wait_for_sporks_same and mine_quorum to DashTestFramework
2019-01-21 14:42:08 +01:00
Alexander Block
0cc1cf2798
Add receivedFinalCommitment flag to CDKGDebugSessionStatus
2019-01-21 14:42:08 +01:00
Alexander Block
23d7ed80d5
Implement "quorum sign/hasrecsig/isconflicting" RPCs
2019-01-21 14:42:08 +01:00
Alexander Block
316b6bf0de
Faster re-requesting of recovered sigs
...
These are quite important and waiting for 2 minutes when the first peer
did not send it is not acceptable.
2019-01-21 14:42:08 +01:00
Alexander Block
c38f889e77
Implement processing, verifcation and propagation of signature shares
2019-01-21 14:42:08 +01:00
Alexander Block
43fd1b352f
Implement CSigningManager to process and propagage recovered signatures
2019-01-21 14:42:08 +01:00
Alexander Block
56ee83a766
Add ReadDataStream to CDBWrapper to allow manual deserialization
2019-01-18 11:58:58 +01:00
Alexander Block
b6346a2f68
Implement CBLSInsecureBatchVerifier for convenient batch verification
2019-01-18 11:57:40 +01:00
Alexander Block
dd8f245888
Implement IsBanned to allow checking for banned nodes outside of net_processing.cpp
2019-01-17 18:51:48 +01:00
Alexander Block
49de417265
Implement CFixedVarIntsBitSet and CAutoBitSet
2019-01-17 18:51:48 +01:00
Alexander Block
76a58f5a48
Add src/bls/*.h and .cpp to CMakeLists.txt
2019-01-17 18:51:47 +01:00
Alexander Block
5425e2e351
Merge pull request #2631 from codablock/pr_llmq_quorummgr
...
Implement CQuorum and CQuorumManager
2019-01-17 18:48:41 +01:00
Alexander Block
b627528cef
Use void as return type for WriteContributions
2019-01-17 15:25:43 +01:00
Alexander Block
edac100f5c
Fix "quorum" RPCs help and unify logic in the sub-commands RPC entry point
2019-01-16 11:38:44 +01:00
Alexander Block
217f3941d5
Skip starting of cache populator thread in case we don't have a valid vvec
2019-01-16 10:07:47 +01:00
Alexander Block
679a9895b6
Add comments about why it's ok to ignore some failures
2019-01-16 10:07:47 +01:00
Alexander Block
15c34ccbd8
Implement CQuorum and CQuorumManager
2019-01-15 15:47:24 +01:00
UdjinM6
8e4fe3660e
[PrivateSend] Fallback to less participants if possible, fix too long timeouts on server side ( #2616 )
...
* Fallback to less participants on timeouts if possible
* Only bump nTimeLastSuccessfulStep when state is changed
* Consistency: always set state first before relaying smth to clients
2019-01-15 16:05:26 +03:00
UdjinM6
ee808d819a
Add checkbox to show only masternodes the wallet has keys for ( #2627 )
2019-01-15 15:46:02 +03:00
UdjinM6
000fabfcc6
Merge pull request #2630 from UdjinM6/mergemastertodevelop
...
Merge `master` into `develop`
2019-01-15 15:45:33 +03:00
UdjinM6
4671c989d3
Merge pull request #2617 from codablock/pr_llmq_dkg
...
Implement LLMQ DKG
2019-01-15 15:44:34 +03:00
UdjinM6
fff50af3c6
Revert "Set CLIENT_VERSION_IS_RELEASE to true ( #2591 )"
...
This reverts commit b5670c4753
.
2019-01-14 20:36:57 +03:00
UdjinM6
2c88ba78d1
Merge branch 'master' into develop
2019-01-14 20:31:59 +03:00
UdjinM6
942838e937
Merge pull request #2629 from UdjinM6/v0.13.0.x
...
Merge branch 'master' into `v0.13.0.x`
2019-01-14 20:19:44 +03:00
UdjinM6
811b87e83c
Merge branch 'master' into v0.13.0.x
2019-01-14 19:35:18 +03:00
UdjinM6
a68d1e3b82
[0.13.0.x] Add notes about changes in mining ( #2628 )
...
* Add `Mining` section to `Notable changes`, mention P2SH and `script` in `getblocktemplate`
* Also mention `coinbase_payload`
2019-01-14 13:39:00 +03:00