Commit Graph

20 Commits

Author SHA1 Message Date
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
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
Alexander Block
9653af2f30 Classes, validation and update logic for CProUpRevTX 2018-08-31 17:06:33 +02:00
Alexander Block
1c68d11077 Classes, validation and update logic for CProUpRegTX 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
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
Alexander Block
c566ce75d9 Update copyright in specialtx.h/cpp 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
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
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
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