Commit Graph

95 Commits

Author SHA1 Message Date
UdjinM6
26fed43603 Major masternode broadcast/ping changes (incompatible with prev version, proto bump required):
- Do not rely on local lastTimeSeen and requested fRequested anymore. Use last know (signed) ping instead and base all logic on that. Should reduce mn list difference between
 nodes.
- Rework CActiveMasternode accordingly along with states, errorMessages, rpc etc.
- Clean some related code, move parts from public to private
- drop c_str in LogPrintf that were related to this functionality (todo: drop it for LogPrintf everywhere else)
2015-07-14 08:50:30 +03:00
UdjinM6
9cfdaffee5 introduce RelayInv 2015-07-08 04:31:10 +03:00
UdjinM6
189e48328d fix 2 crashes 2015-07-03 01:56:43 +03:00
Evan Duffield
f1b868f098 Removed PoSe due to consensus issues
- With nodes coming and going on the network, the network could come to different opinions about who should get paid next in line due to some nodes being flagged as failing a PoSe check. This will have to be fixed by introducing a blockchain based PoSe system, but that's out of the scope of this release. To fix the issues in the interrim, I'm removing PoSe checks for the time being.
2015-06-23 16:44:31 -07:00
Evan Duffield
3c01ffa444 fixed errors from merge 2015-06-23 10:59:14 -07:00
Evan Duffield
43e6976695 merged 2015-06-23 10:53:12 -07:00
Evan Duffield
c72355335c Coinbase Payee Cache Implementation
- Masternode nLastPaid is removed and a new caching system that keeps the last 30 days of coinbase payees replaces it
- To deal with some significant attack vectors, the masternode donation feature was removed. The donation feature was added to support developement anyway, so this will be replaced by the budgeting code.
-  This code should allow the network to come to consensus about who should be paid pretty effectively
2015-06-23 10:48:03 -07:00
UdjinM6
a6a04cb5c1 refactor: dsee -> mnb 2015-06-23 18:40:08 +03:00
Evan Duffield
947b79c8c5 Changed masternode broadcast/pinging logic
- Fixed a bug causing the broadcasts to be ignored in some situations
- Added some logic to rebroadcast new masternodes, so the rest of the network finds out about unknown nodes quickly
- should help masternode payments to work properly
2015-06-20 12:56:56 -07:00
UdjinM6
1e393d5b70 fix mnping 2015-06-18 21:41:01 +03:00
UdjinM6
91c7f66562 remove nLastPaid from CMasternodeBroadcast 2015-06-18 00:18:24 +03:00
UdjinM6
795ee119ec SecondsSincePayment (fix buffer overflow / change logic / move impl to cpp) 2015-06-17 23:03:09 +03:00
UdjinM6
19d9a65f8a add recent (tip - 12) block hash to mnping 2015-06-09 14:37:36 +03:00
Evan Duffield
bd4a7f2fad Masternode payment consensus via quorums
- Payees are chosen by their last payment, if no payment it's based on their hash
- Fixed a few issues with counting quorum votes
2015-05-28 10:45:31 -07:00
Evan Duffield
969826c249 Reference Node / Stubbed Out Budget System
- Removed of reference node and replaced with decentralized quorums that pick the masternodes who get paid each block.
- Made a budgeting system, where masternodes can vote on individual budgets and the data is stored perminently on each clients computer
2015-04-30 07:55:37 -07:00
Evan Duffield
1e69e57662 Masternode Overhaul
- Added new CMasterBroadcast/CmasternodePing objects, with all of the code required to check each new message. SHould be much easier to tell what's going on now.
2015-04-17 23:44:49 -07:00
Evan Duffield
d25cf1af22 Split masternode and payments code 2015-04-16 13:26:18 -07:00
Evan Duffield
88f6a598b9 Updated Reference-Node Implementation
- Added nLastPaid to masternode information for persistant storage of the masternode payment cycle
- Masternodes get flagged as just paid when they enter the masternode list and must wait a full cycle to be paid again
- Masternode RPC commands now show short vin string instead of ip address
2015-04-16 07:08:06 -07:00
UdjinM6
62bbc1176e fix merge 2015-04-10 20:08:01 +03:00
UdjinM6
3cfd9538d5 Merge branch 'master' into merge_btc010 2015-04-10 19:32:57 +03:00
Evan Duffield
91a669e231 Ref-node : Always fill vecLastPayments
- In some rare cases the vecLastPayments would get truncated and would start paying people it paid recently again. This stops that from happening.
2015-04-09 10:06:48 -07:00
UdjinM6
41f592aec7 Explicitly convert mutable txes to immutable before calling AcceptableInputs 2015-04-07 05:59:56 +03:00
UdjinM6
dd39898a6b Merge branch 'master' into HEAD
Resolved conflicts:
	configure.ac
	src/clientversion.h
	src/qt/locale/dash_bg.ts
	src/qt/locale/dash_cmn.ts
	src/qt/locale/dash_de.ts
	src/qt/locale/dash_es.ts
	src/qt/locale/dash_fi.ts
	src/qt/locale/dash_pt.ts
	src/qt/locale/dash_ru.ts
	src/qt/locale/dash_sv.ts
	src/qt/locale/dash_vi.ts
	src/qt/res/icons/toolbar.png
	src/qt/res/icons/toolbar_testnet.png
2015-04-04 19:45:02 +03:00
UdjinM6
64eebc3316 0.12 dirty merge'n'fix (bitcoin 0.10) 2015-04-04 19:24:37 +03:00
Evan Duffield
fea26cfb89 updated minimum for reference node 2015-03-30 12:33:42 -07:00
Evan Duffield
b89fd2e149 compiling warnings / fixed block comparison 2015-03-26 14:11:05 -07:00
Evan Duffield
a34ca7a88c Reference node fixes / debugging
- Only allow payments to be created once per blockHeight
2015-03-26 13:46:19 -07:00
Evan Duffield
6c9cc68449 version 12 2015-03-26 07:29:56 -07:00
UdjinM6
5c1621447d make sure nScanningErrorCount and nLastScanningErrorBlockHeight handled correctly 2015-03-24 04:52:27 +03:00
UdjinM6
2a7c348b16 explicitly grab each piece of data from memory for hashing in CMasternode::CalculateScore 2015-03-23 20:28:36 +03:00
Evan Duffield
4592b5090d fixed masternode donation miscalculations 2015-03-23 07:13:20 -07:00
Evan Duffield
9bafb70a2f changed some locks 2015-03-21 20:27:13 -07:00
Evan Duffield
c5da226a09 changed some locks 2015-03-21 20:10:34 -07:00
Evan Duffield
649937dc4f masternode voting improvements 2015-03-20 20:34:36 -07:00
Evan Duffield
412a6838c7 added masternode voting system for dash initiates 2015-03-20 11:24:11 -07:00
Evan Duffield
dce8718d6b Merge branch 'v11.2-dash' into v0.11.2.x 2015-03-20 07:49:36 -07:00
Evan Duffield
3fff810292 fixed masternode payments FindOldestNotInVec 2015-03-19 08:04:14 -07:00
Evan Duffield
8f39610ee4 Merge branch 'v0.11.2.x' of https://github.com/darkcoinproject/darkcoin into v11.2-dash 2015-03-18 12:50:02 -07:00
Evan Duffield
a1ac7ca8d3 Fixed blinding submission process 2015-03-18 09:47:01 -07:00
Evan Duffield
d83646f5b9 Fixed blinding submission process 2015-03-18 09:41:30 -07:00
Evan Duffield
35bb210c6b Dash rebranding 2015-03-17 16:06:58 -07:00
UdjinM6
0655c17175 bring mn inputage/sigtime checks back (+regtest support) 2015-03-17 04:10:19 +03:00
Evan Duffield
1f47914316 fixed bugs / removed spam 2015-03-16 15:25:15 -07:00
UdjinM6
567fe419d9 fix pubkey/donation conditions 2015-03-17 00:11:15 +03:00
Evan Duffield
c65adeb7d1 Fixed mnw message issue 2015-03-16 13:57:07 -07:00
Evan Duffield
8cd7f8e980 Add structure for donating a percentage of ones earnings to another party via the protocol 2015-03-16 12:01:11 -07:00
Evan Duffield
e5267319ef Complete implementation of Proof-of-Service
- Ensures ports remain open and client are responsive to IX requests.
- Completely 100% decentralized. This farms out the work of checking the masternode network to the masternode network. 1% of the network is determistically selected to check another 1% of the network each block. It takes six separate checks to deactivate a node, thus making it tamper proof.
- Nodes are kept in the masternode list if they fail enough PoSe checks to deactivate. They will continue to be checked until the operator fixes them. However they will not be paid while they're failing checks.
2015-03-16 09:32:18 -07:00
Evan Duffield
c169e49fce Added input/output/sig trickle
- Send a few inputs/output each cycle
- Mix other users inputs/outputs into relay each cycle
- Send signatures as a tickle, also mixed with other users signatures
- Fixed a bug with validating the final transaction
2015-03-07 07:50:14 -07:00
Mike Kinney
c8fe5a9cf7 V0.11.2.x update comments 2015-03-05 00:11:56 -08:00
UdjinM6
b2017ebefa find oldest legit masternode to pay / naming "now" -> "sigTime" 2015-03-01 18:45:27 +03:00