Commit Graph

1039 Commits

Author SHA1 Message Date
Evan Duffield
eaf7b940a6 Complete rewrite of consensus code for mn/budget payments
- Added FindProposal and FindFinalBudget to budgeting class
- Added 2 new sporks for Proposals and Budget payment enforcement. This is outside of the decentralized code so we can turn it off if there's a problem.
- Detect budget blocks and pay correct amounts in super blocks
2015-05-30 10:27:51 -07: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
d470eddc01 fixed hashing issues with mnw messages 2015-05-27 15:07:53 -07:00
Evan Duffield
fe55b12a1f added improvements for finding next masternode to get paid 2015-05-27 12:47:01 -07:00
Evan Duffield
41eb74dc82 Stable budget implementation
- All budgeting code seems to be rather stable now. Serialization/caching is working rather well.
- Fixed some ambiguous variable names within the budgeting system that were causing the file caching to not work all of the time
2015-05-27 09:28:55 -07:00
Evan Duffield
efe377fa69 tie budget system to masternode payment system 2015-05-26 07:56:51 -07:00
UdjinM6
5cb819c3f8 Merge pull request #332 from UdjinM6/v0.12.0.x_fix_mnpayment_bugs
V0.12.0.x fix 2 masternode payments bugs
2015-05-17 17:26:12 +03:00
UdjinM6
397654ef76 fix masternode payments bugs 2015-05-16 05:53:53 +03:00
UdjinM6
e50d9bbc5d Merge branch '0.10' into v0.12.0.x_merge_btc010 2015-05-16 00:05:57 +03:00
Evan Duffield
40149c4e41 Budgeting Software / Reference Node Removal
- Added commands for using budgets "mnbudget" and "mnfinalbudget"
- Supports 100% decentralized budget control and view-only site with json meta data object
2015-05-14 18:01:15 -07:00
Evan Duffield
c6233880c3 draft 2015-05-04 03:05:08 -07:00
Evan Duffield
160eec6e30 merged 2015-05-04 02:36:23 -07:00
evan82
11f83f3141 Merge pull request #322 from UdjinM6/v0.12.0.x_fix_kgw
V0.12.0.x Fix KGW (handle negative uint256 properly)
2015-05-02 19:43:16 -07:00
UdjinM6
905b28f813 Do not calculate MN payments during initial download 2015-05-02 19:55:31 +03:00
UdjinM6
efca207c13 Fix KGW (handle negative uint256 properly) 2015-05-01 20:17:14 +03: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
Suhas Daftuar
bac6fca3c9
Set nSequenceId when a block is fully linked
Also adds a test to CheckBlockIndex

Conflicts:
	src/main.cpp

Rebased-From: c1ecee8f72
Github-Pull: #6010
2015-04-20 13:48:52 +02:00
Evan Duffield
7d33b6d8b3 Masternode Last Paid Times
-Update nLastPaid when blocks come in
2015-04-16 14:08:58 -07:00
Evan Duffield
d25cf1af22 Split masternode and payments code 2015-04-16 13:26:18 -07:00
mrbandrews
57d1f46952
Fix CheckBlockIndex for reindex.
Some tests in CheckBlockIndex require chainActive.Tip(), but when reindexing, chainActive has not been set on the first call to CheckBlockIndex.

reindex.py starts a node, mines 3 blocks, stops, and reindexes with CheckBlockIndex enabled.

Rebased-From: 0421c18f3a
Github-Pull: #6012
2015-04-16 10:34:30 +02:00
UdjinM6
865b63e52d Merge branch '0.10' into merge_btc010
Conflicts:
	doc/release-notes.md
	doc/release-process.md
2015-04-08 06:15:17 +03:00
UdjinM6
8bd7e1d181 relax restrictions on AcceptableInputs 2015-04-05 22:37:15 +03:00
UdjinM6
64eebc3316 0.12 dirty merge'n'fix (bitcoin 0.10) 2015-04-04 19:24:37 +03:00
Pieter Wuille
a1f425b48b Add a consistency check for the block chain data structures
This adds a -checkblockindex (defaulting to true for regtest), which occasionally
does a full consistency check for mapBlockIndex, setBlockIndexCandidates, chainActive, and
mapBlocksUnlinked.
2015-03-27 17:24:07 -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
Alex Morcos
1d2cdd2ef9
Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates
Rebased-From: cd3d67cf3b
Github-Pull: #5890
2015-03-24 14:51:36 +01:00
UdjinM6
e3d333f8b2 converted from "fix possible block db breakage during re-index" bb6acff079 2015-03-21 20:27:13 -07:00
Evan Duffield
76aaea1ae8 Translation updates
Darkcoins -> Dash
dashcurrency.com -> dashpay.io
Updated seeds
2015-03-20 07:45:30 -07:00
Evan Duffield
5cb26c5928 Changed darkcoin references to dash
- Changed out logos (just a placeholder)
- DRK -> DASH
- ./darkcoin -> ./dash
2015-03-19 12:03:14 -07:00
Evan Duffield
35bb210c6b Dash rebranding 2015-03-17 16:06:58 -07:00
Pieter Wuille
ca301bf98c
Reduce fingerprinting through timestamps in 'addr' messages.
Suggested by Jonas Nick.

Rebased-From: 9c2737901b
Github-Pull: #5860
2015-03-17 16:39:10 +01:00
Evan Duffield
819724ad1d merged proof-of-service 2015-03-16 09:40:39 -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
UdjinM6
53c3a5e24c Cleanup few debug msgs, reduce log spam / few readability fixes 2015-03-13 18:53:12 +03:00
Alex Morcos
c91c660e49
fix InvalidateBlock to repopulate setBlockIndexCandidates
Rebased-From: a9af415887
Github-Pull: #5879
2015-03-12 17:51:00 +01:00
Cory Fields
002c8a2411
fix possible block db breakage during re-index
When re-indexing, there are a few cases where garbage data may be skipped in
the block files. In these cases, the indices are correctly written to the index
db, however the pointer to the next position for writing in the current block
file is calculated by adding the sizes of the valid blocks found.

As a result, when the re-index is finished, the index db is correct for all
existing blocks, but the next block will be written to an incorrect offset,
likely overwriting existing blocks.

Rather than using the sum of all valid blocks to determine the next write
position, use the end of the last block written to the file. Don't assume that
the current block is the last one in the file, since they may be read
out-of-order.

Rebased-From: bb6acff079
Github-Pull: #5864
2015-03-11 08:34:43 +01:00
Ivan Pustogarov
200f29363b
Ignore getaddr messages on Outbound connections.
The only time when a client sends a "getaddr" message is when he
esatblishes an Outbound connection (see ProcessMessage() in
src/main.cpp).  Another bitcoin client is expected to receive a
"getaddr" message only on Inbound connection. Ignoring "gettaddr"
requests on Outbound connections can resolve potential privacy issues
(and as was said such request normally do not happen anyway).

Rebased-From: dca799e1db
Github-Pull: #5442
2015-03-09 12:25:20 +01:00
Mike Kinney
7ed8073010 v0.11.2.x remove unused variables 2015-03-06 06:13:58 -08:00
Evan Duffield
a6b58ab1e8 Merged masternode blinding 2015-03-04 08:58:36 -07:00
Pieter Wuille
aeb9279228
Better fingerprinting protection for non-main-chain getdatas.
With headers-first we can compare against the best header timestamp, rather
than using checkpoints which require code updates to maintain.

Rebased-From: 85da07a5a0
Github-Pull: #5820
2015-02-26 17:14:14 +01:00
UdjinM6
1ded1b9ec2 Few fixes for processing extra messages:
- call ProcessMessageMasternodePayments on ProcessBlock (lost after moving mnodeman functionality)
- do not process extra functionality messages (DS, IX, spork) on initial download / reindex
2015-02-26 17:40:43 +03:00
UdjinM6
0d51e1c90d better naming/readability (Find) 2015-02-25 14:54:03 +03:00
Gregory Maxwell
23126a0a09 Sanitize command strings before logging them.
Normally bitcoin core does not display any network originated strings without
 sanitizing or hex encoding.  This wasn't done for strcommand in many places.

This could be used to play havoc with a terminal displaying the logs,
 especially with printtoconsole in use.

Thanks to Evil-Knievel for reporting this issue.

Conflicts:
	src/main.cpp
2015-02-24 08:40:07 +01:00
UdjinM6
dd1c1b7d1c CMasternodeMan - masternode manager class - part3 - connect ProcessMessage from mnodeman(rpc still broken) 2015-02-23 23:12:33 +03:00
UdjinM6
adddff85a2 CMasternodeMan - masternode manager class - part1(broken) 2015-02-23 23:01:21 +03:00
vertoe
fb6a288fbc merge downstream 0.11.1 2015-02-14 08:50:55 +01:00
vertoe
692b2e05f7 merge upstream 0.9 2015-02-14 08:48:10 +01:00
Evan Duffield
bdbdbf993f fixed log message 2015-02-13 12:53:45 -07:00
Evan Duffield
70c4e0bdee remove safemode checks for masternode payments & IX block enforce 2015-02-13 12:22:58 -07:00
Gregory Maxwell
6b4163b972 Sanitize command strings before logging them.
Normally bitcoin core does not display any network originated strings without
 sanitizing or hex encoding.  This wasn't done for strcommand in many places.

This could be used to play havoc with a terminal displaying the logs,
 especially with printtoconsole in use.

Thanks to Evil-Knievel for reporting this issue.

Conflicts:
	src/main.cpp
	src/net.cpp
	src/rpcserver.cpp

Rebased-From: 28d4cff0ed
Github-Pull: #5770
2015-02-13 13:32:39 +01:00