Alexander Block
6764dafece
Skip initial masternode list sync if spork 15 is active
2018-09-03 13:31:40 +02:00
Alexander Block
d90b139967
Implement CActiveDeterministicMasternodeManager
2018-09-03 13:31:40 +02:00
UdjinM6
a5e65aa373
Erase mnListCache entry on UndoBlock ( #2254 )
2018-09-03 13:18:20 +03:00
Alexander Block
88e7888de9
Try using cache in GetListForBlock before reading from disk ( #2253 )
...
* Try using cache in GetListForBlock before reading from disk
* Use std::list for vecDiff
2018-09-03 13:17:41 +03:00
UdjinM6
2900760dac
Merge pull request #2251 from codablock/pr_dip4
...
DIP4 implementation
2018-09-03 13:16:52 +03:00
Alexander Block
fced9a4b86
Ban peers that send us MNLISTDIFF messages
...
These are only meant to be sent to SPV clients
2018-09-03 10:46:52 +02:00
Alexander Block
c7f75afdd6
Fix nulldummy tests by creating correct DIP4 coinbase transactions
2018-09-03 10:46:52 +02:00
Alexander Block
d3ac86206c
Implement GETMNLISTDIFF and MNLISTDIFF P2P messages
...
Also add "protx diff" RPC
2018-09-03 10:46:52 +02:00
Alexander Block
bcc0719578
Calculate and enforce DIP4 masternodes merkle root in CbTx
...
Also add "coinbase_payload" field to block templates
2018-09-03 10:46:51 +02:00
Alexander Block
0a086898f5
Implement and enforce CbTx with correct block height and deprecate BIP34
2018-09-03 10:46:40 +02:00
UdjinM6
11df4f24de
Merge pull request #2250 from codablock/pr_dip3_othertxs
...
Implementation of remaining DIP3 special transactions
2018-08-31 18:20:26 +03:00
Alexander Block
58aa813649
Implement "protx revoke" RPC
2018-08-31 17:06:33 +02:00
Alexander Block
9653af2f30
Classes, validation and update logic for CProUpRevTX
2018-08-31 17:06:33 +02:00
Alexander Block
185416b970
Implement "protx update_registrar" RPC
2018-08-31 17:06:24 +02:00
Alexander Block
1c68d11077
Classes, validation and update logic for CProUpRegTX
2018-08-31 17:06:24 +02:00
Alexander Block
32951f795c
Implement "protx update_service" RPC
2018-08-31 17:06:24 +02:00
Alexander Block
8aca3b0404
Also check duplicate addresses for CProUpServTX in CTxMemPool
2018-08-31 17:06:24 +02:00
Alexander Block
923fd67395
Implement CProUpServTx logic in CDeterministicMNManager
2018-08-31 17:06:24 +02:00
Alexander Block
6ec0d7aea5
Classes and basic validation of ProUpServTx
2018-08-31 17:06:24 +02:00
Alexander Block
255403e927
Include proTx data in json formatted transactions
2018-08-31 15:33:09 +02:00
Alexander Block
25545fc1e7
Split keyIDMasternode into keyIDOwner/keyIDOperator/keyIDVoting ( #2248 )
...
* Split keyIDMasternode into keyIDOwner/keyIDOperator/keyIDVoting
keyIDOwner is the key used for things which should stay in control of the
collateral owner, like proposal voting.
keyIDOperator is the key used for operational things, like signing network
messages, signing trigger/watchdog objects and trigger votes.
keyIDVoting is the key used for proposal voting
Legacy masternodes will always have the same key for all 3 to keep
compatibility.
Using different keys is only allowed after spork15 activation.
* Forbid reusing collateral keys for operator/owner keys and vice versa
* Bump SERIALIZATION_VERSION_STRING in CMasternodeMan
2018-08-31 16:31:59 +03:00
Alexander Block
5295c78cca
Fix typo in "penalty" ( #2247 )
2018-08-31 12:33:37 +03:00
UdjinM6
74629e453d
Merge pull request #2246 from codablock/pr_dip3
...
First part of DIP3 implementation
2018-08-30 22:24:01 +03:00
Alexander Block
c566ce75d9
Update copyright in specialtx.h/cpp
2018-08-30 19:47:48 +02:00
Alexander Block
5e3abeca24
Implement "protx list" RPC
2018-08-30 19:47:48 +02:00
Alexander Block
2c172873aa
Don't allow non-ProTx masternode collaterals after DIP3 activation
2018-08-30 19:47:48 +02:00
Alexander Block
5461e92bf4
Add spork to control deterministic MN lists activation
2018-08-30 19:47:48 +02:00
Alexander Block
9e8a867149
Implementation of deterministic MNs list
2018-08-30 19:47:48 +02:00
Alexander Block
76fd308947
Automatically lock ProTx collaterals when TX is added/loaded to wallet
...
Avoid accidential spending of ProTx collaterals.
2018-08-30 19:47:38 +02:00
Alexander Block
cdd723ede6
Conflict handling for ProRegTx in mempool
2018-08-30 19:47:38 +02:00
Alexander Block
c772423468
Implement "protx register" RPC
2018-08-30 19:47:38 +02:00
Alexander Block
958b84ace3
Implementation of ProRegTx with basic validation (no processing)
2018-08-30 19:47:30 +02:00
Alexander Block
c9a72e8880
Introduce CEvoDB for all evo related things, e.g. DIP3
...
Also add transaction handling to ConnectTip and DisconnectTip and a few
other places where blocks are processed.
2018-08-30 19:47:22 +02:00
Alexander Block
4531f6b896
Implement CDBTransaction and CScopedDBTransaction
...
Allows easier commit/rollback handling, especially useful when AcceptBlock
fails and things need to be reverted.
2018-08-29 15:49:31 +02:00
Alexander Block
e002c50b04
Add "immer" functional/immutable containers library ( #2244 )
...
Add "immer" functional/immutable containers library
2018-08-29 16:31:21 +03:00
Alexander Block
e225cebcdb
Use previous block for CheckSpecialTx ( #2243 )
...
We actually can't use the current block as that one might not be fully
processed/built yet.
2018-08-29 16:26:16 +03:00
gladcow
1c25658044
Refactor masternode
and gobject
RPCs to support help command subCommand
syntax ( #2240 )
...
* Support help for masternode rpc call subcommands
* Support help for gobject rpc call subcommands
* squash ifs for conditions to show help
* remove code duplication for masternode list and masternodelist help calls
2018-08-29 14:36:35 +03:00
Alexander Block
799e3c3126
Perform Jenkins builds in /dash-src all the time to fix caching issues ( #2242 )
2018-08-29 13:03:18 +03:00
UdjinM6
40eee1775f
Fix sync in regtest (again) ( #2241 )
...
Should only call SwitchToNextAsset() while being in specific state and not on every tick
2018-08-29 13:02:54 +03:00
UdjinM6
28ba2ad0fb
Merge pull request #2239 from codablock/pr_dip2
...
DIP2 / Special Transactions base implementation
2018-08-29 13:02:09 +03:00
Alexander Block
fb4d301a20
Add extraPayloadSize/extraPayload fields to RPC help
2018-08-29 11:45:53 +02:00
Alexander Block
8af7f62232
Account for extraPayload when calculating fees in FundTransaction
2018-08-29 11:36:14 +02:00
Alexander Block
b606bde9a9
Support version 3 transaction serialization in mininode.py
2018-08-29 11:36:14 +02:00
Alexander Block
61bbe54ab3
Add Get-/SetTxPayload helpers
2018-08-29 11:36:14 +02:00
Alexander Block
cebf71bbc3
Stubs for special TX validation and processing
2018-08-29 11:36:14 +02:00
Alexander Block
d6c5a72e2f
Basic validation of version 3 TXs in CheckTransaction
2018-08-29 11:36:14 +02:00
Alexander Block
a3c4ee3fda
DIP2 changes to CTransaction and CMutableTransaction
2018-08-29 11:36:14 +02:00
Alexander Block
d20100ecd4
DIP0003 deployment
2018-08-29 11:36:14 +02:00
Alexander Block
b6896387ae
Move DIP1 transaction size checks out of ContextualCheckBlock and use ContextualCheckTransaction instead ( #2238 )
...
* Pass consensus params to ContextualCheckTransaction
As we do with ContextualCheckBlock
* Use ContextualCheckTransaction in ContextualCheckBlock instead of duplicating the check
* Fix pindexPrev parameter signature in ContextualCheckTransaction
2018-08-28 14:43:58 +03:00
Alexander Block
e415fd049a
Revert CMasternodePayments::IsTransactionValid to the logic before the recent refactorings ( #2237 )
...
partially reverts #2216
2018-08-27 15:48:45 +03:00