Commit Graph

110 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
UdjinM6
e50d9bbc5d Merge branch '0.10' into v0.12.0.x_merge_btc010 2015-05-16 00:05:57 +03:00
Gregory Maxwell
da656068ec
Avoid crash on start in TestBlockValidity with gen=1.
When the internal miner is enabled at the start of a new node, there
 is an near instant assert in TestBlockValidity because its attempting
 to mine a block before the top checkpoint.

Also avoids a data race around vNodes.

Github-Pull: #6123
Rebased-From: bba7c24929
2015-05-12 16:38:04 +02: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
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
UdjinM6
4a325e7ebe fix CreateNewBlock 2015-04-05 01:56:29 +03:00
UdjinM6
64eebc3316 0.12 dirty merge'n'fix (bitcoin 0.10) 2015-04-04 19:24:37 +03: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
UdjinM6
adddff85a2 CMasternodeMan - masternode manager class - part1(broken) 2015-02-23 23:01:21 +03:00
Evan Duffield
1e8b4cdbf0 check for null reference 2015-02-05 09:01:14 -07:00
vertoe
389ff61339 merge downstream 0.11 2015-01-15 12:42:28 +01:00
vertoe
b8e53a337c merge devel-0.9 2015-01-15 12:40:25 +01:00
vertoe
e6ce27defd Update copyright year 2015 2015-01-15 11:31:35 +01:00
Evan Duffield
cd5c755428 Coinbase Maturity / cleanup 2015-01-13 10:58:24 -07:00
Evan Duffield
4ab6c5d6da Fixed masternode payments issue 2015-01-12 12:05:20 -07:00
Evan Duffield
76ab102ff7 Various fixes for 11.0.5
-Darksend balance shows sendable amount now.
-Fixed "darksend is disabled" inaccurate message
-Fixed crashing on -reindex and -gen
2015-01-12 10:04:28 -07:00
Evan Duffield
826b18c41f Regtest+Darksend / Dsee update / vecMasternodes
- Made masternodes/darksend compatible with regression testing mode (a local-only blockchain that doesn't require mining). Developers can now test multiple rounds in a few minutes without waiting on mining (much faster).
- Added dsee security verification to v11
- darkSendMasternodes -> vecMasternodes (must clearer)
2014-12-30 19:54:00 -07:00
Francis Reynders
55cae78c3b Improve support for start-many:
- refactored CActiveMasternode
- added masternodeconfig to handle remote masternode configuration
- read masternodeconfig upon init
- new masternode rpc commands: stop-many, start-alias, stop-alias, list-conf
- added notCapableReason field for better handling not capable issues
2014-12-14 06:06:39 +01:00
vertoe
6e208f6625 Merge strings. 2014-12-12 13:00:21 +01:00
vertoe
adbd2274e0 Update strings. 2014-12-12 12:44:25 +01:00
donSchoe
c2cf2fb44c Align with branch v0.11.0.x of darkcoin/darkcoin. 2014-12-11 22:46:43 +01:00
Evan Duffield
2a33377fc8 Merged: Typo in log output (crowning) 2014-12-11 08:58:38 -07:00
Evan Duffield
78c5ca53f6 Merged in Darksend/InstantX/Masternodes
This doesn't include any of the changes in the darkcoin/v0.10.18.x branch. Those will be brought over into this commit history.
2014-12-11 08:10:35 -07:00
vertoe
8003eb484e Fix internal wallet miner. 2014-12-06 22:56:38 +01:00
Luke Dashjr
d227011184 MOVEONLY: core/ -> primitives/ 2014-12-03 10:52:58 +00:00
vertoe
e992aee09d Update subsidity function. 2014-12-02 09:16:52 +01:00
Wladimir J. van der Laan
f24bcce2ac
Merge pull request #1816
b867e40 CreateNewBlock: Stick height in coinbase so we pass template sanity check (Luke Dashjr)
60755db submitblock: Check for duplicate submissions explicitly (Luke Dashjr)
bc6cb41 QA RPC tests: Add tests block block proposals (Luke Dashjr)
9765a50 Implement BIP 23 Block Proposal (Luke Dashjr)
3dcbb9b Abstract DecodeHexBlk and BIP22ValidationResult functions out of submitblock (Luke Dashjr)
132ea9b miner_tests: Disable checkpoints so they don't fail the subsidy-change test (Luke Dashjr)
df08a62 TestBlockValidity function for CBlock proposals (used by CreateNewBlock) (Luke Dashjr)
4ea1be7 CreateNewBlock and miner_tests: Also check generated template is valid by CheckBlockHeader, ContextualCheckBlockHeader, CheckBlock, and ContextualCheckBlock (Luke Dashjr)
a48f2d6 Abstract context-dependent block checking from acceptance (Luke Dashjr)
2014-11-24 14:43:10 +01:00
Wladimir J. van der Laan
f2ada138c2
Merge pull request #5170
092b58d CBlockIndex::GetBlockWork() + GetProofIncrement(nBits) -> GetBlockProof(CBlockIndex) (jtimon)
22c4272 MOVEONLY: Move void UpdateTime() from pow.o to miner.o (plus fix include main.h -> chain.h) (jtimon)
2014-11-21 14:33:22 +01:00
Luke Dashjr
b867e409e5 CreateNewBlock: Stick height in coinbase so we pass template sanity check 2014-11-20 15:32:49 +00:00
Luke Dashjr
df08a626e0 TestBlockValidity function for CBlock proposals (used by CreateNewBlock) 2014-11-18 19:20:10 +00:00
Luke Dashjr
4ea1be7fb8 CreateNewBlock and miner_tests: Also check generated template is valid by CheckBlockHeader, ContextualCheckBlockHeader, CheckBlock, and ContextualCheckBlock 2014-11-18 19:20:10 +00:00
Wladimir J. van der Laan
84d26d3a36
Merge pull request #5106
1bea2bb Rename ProcessBlock to ProcessNewBlock to indicate change of behaviour, and document it (Luke Dashjr)
d29a291 Rename RPC_TRANSACTION_* errors to RPC_VERIFY_* and use RPC_VERIFY_ERROR for submitblock (Luke Dashjr)
f877aaa Bugfix: submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock, now that it no longer does the full block validity check (Luke Dashjr)
24e8896 Add CValidationInterface::BlockChecked notification (Luke Dashjr)
2014-11-03 12:22:45 +01:00
jtimon
22c4272bf4 MOVEONLY: Move void UpdateTime() from pow.o to miner.o (plus fix include main.h -> chain.h) 2014-10-29 21:00:05 +01:00
Luke Dashjr
1bea2bbddc Rename ProcessBlock to ProcessNewBlock to indicate change of behaviour, and document it 2014-10-28 08:15:14 +00:00
jtimon
99f41b9cf7 MOVEONLY: core.o -> core/block.o 2014-10-27 13:54:37 +01:00
jtimon
4a3587d8db MOVEONLY: Separate CTransaction and dependencies from core 2014-10-27 13:54:37 +01:00
jtimon
eda3733091 MOVEONLY: Move CFeeRate and Amount constants to amount.o 2014-10-27 13:54:37 +01:00
Wladimir J. van der Laan
25cc1cf8dc
Merge pull request #4981
85c579e script: add a slew of includes all around and drop includes from script.h (Cory Fields)
db8eb54 script: move ToString and ValueString out of the header (Cory Fields)
e9ca428 script: add ToByteVector() for converting anything with begin/end (Cory Fields)
066e2a1 script: move CScriptID to standard.h and add a ctor for creating them from CScripts (Cory Fields)
2014-10-22 12:16:50 +02:00
randy-waterhouse
a3c26c2e85 Fixes for missing boost tuple.hpp header include. 2014-10-21 17:33:06 +13:00
Cory Fields
e9ca4280f3 script: add ToByteVector() for converting anything with begin/end
This should move to a util header once their dependencies are cleaned up.
2014-10-17 13:44:14 -04:00
Gavin Andresen
3222802ea1
Merge pull request #5059
dbca89b Trigger -alertnotify if network is upgrading without you (Gavin Andresen)
e01a793 Refactor -alertnotify code (Gavin Andresen)

Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
2014-10-09 10:39:29 -04:00
Gavin Andresen
dbca89b74b
Trigger -alertnotify if network is upgrading without you
This adds a -regetest-only undocumented (for regression testing only)
command-line option -blockversion=N to set block.nVersion.

Adds to the "has the rest of the network upgraded to a
block.nVersion we don't understand" code so it calls
-alertnotify when 51 of the last 100 blocks are up-version.
But it only alerts once, not with every subsequent new, upversion
block.

And adds a forknotify.py regression test to make sure it works.

Tested using forknotify.py:

Before adding CAlert::Notify, get:
Assertion failed: -alertnotify did not warn of up-version blocks

Before adding code to only alert once:
Assertion failed: -alertnotify excessive warning of up-version blocks

After final code in this pull:
Tests successful
2014-10-09 10:28:27 -04:00
Pieter Wuille
d4a42334d4
Merge pull request #4834
7c70438 Get rid of the dummy CCoinsViewCache constructor arg (Pieter Wuille)
ed27e53 Add coins_tests with a large randomized CCoinViewCache test. (Pieter Wuille)
058b08c Do not keep fully spent but unwritten CCoins entries cached. (Pieter Wuille)
c9d1a81 Get rid of CCoinsView's SetCoins and SetBestBlock. (Pieter Wuille)
f28aec0 Use ModifyCoins instead of mutable GetCoins. (Pieter Wuille)
2014-10-08 14:58:16 -07:00
Pieter Wuille
e790c370b5 Replace SCRIPT_VERIFY_NOCACHE by flag directly to checker 2014-10-02 20:26:58 +02:00
Mark Friedenbach
a372168e77 Use a typedef for monetary values 2014-09-26 15:42:04 -07:00
Pieter Wuille
7c70438dc6 Get rid of the dummy CCoinsViewCache constructor arg 2014-09-24 03:19:04 +02:00
Pieter Wuille
629d75faac Combine CCoinsViewCache's HaveCoins and const GetCoins into AccessCoins.
The efficient version of CCoinsViewCache::GetCoins only works for known-to-exist
cache entries, requiring a separate HaveCoins call beforehand. This is
inefficient as both perform a hashtable lookup.

Replace the non-mutable GetCoins with AccessCoins, which returns a potentially-NULL
pointer. This also decreases the overloading of GetCoins.

Also replace some copying (inefficient) GetCoins calls with equivalent AccessCoins,
decreasing the copying.
2014-09-03 14:24:52 +02:00
Pieter Wuille
d1062e32fa
Merge pull request #4377
654871d replace ComputeMinWork with CheckMinWork (jtimon)
b343c1a Move CBlockIndex::GetBlockWork() to pow::GetProofIncrement(nBits) (jtimon)
c2c02f3 Move UpdateTime to pow (jtimon)
2014-08-27 22:39:28 +02:00