Commit graph

12873 commits

Author SHA1 Message Date
Gavin Andresen
36cba8f118
Alert if it is very likely we are getting a bad chain
Create a monitoring task that counts how many blocks have been found in the last four hours.

If very few or too many have been found, an alert is triggered.

"Very few" and "too many" are set based on a false positive rate of once every fifty years of constant running with constant hashing power, which works out to getting 5 or fewer or 48 or more blocks in four hours (instead of the average of 24).

Only one alert per day is triggered, so if you get disconnected from the network (or are being Sybil'ed) -alertnotify will be triggered after 3.5 hours but you won't get another -alertnotify for 24 hours.

Tested with a new unit test and by running on the main network with -debug=partitioncheck

Run test/test_bitcoin --log_level=message to see the alert messages:
    WARNING: check your network connection, 3 blocks received in the last 4 hours (24 expected)
    WARNING: abnormally high number of blocks generated, 60 blocks received in the last 4 hours (24 expected)

The -debug=partitioncheck debug.log messages look like:
    ThreadPartitionCheck : Found 22 blocks in the last 4 hours
    ThreadPartitionCheck : likelihood: 0.0777702
2015-05-14 14:58:44 -04:00
Gavin Andresen
b4c219b622
Merge pull request #5964
9a1dcea Use CScheduler for net's DumpAddresses (Gavin Andresen)
ddd0acd Create a scheduler thread for lightweight tasks (Gavin Andresen)
68d370b CScheduler unit test (Gavin Andresen)
cfefe5b scheduler: fix with boost <= 1.50 (Cory Fields)
ca66717 build: make libboost_chrono mandatory (Cory Fields)
928b950 CScheduler class for lightweight task scheduling (Gavin Andresen)
e656560 [Qt] add defaultConfirmTarget constant to sendcoinsdialog (Philip Kaufmann)
2015-05-14 14:27:07 -04:00
Gavin Andresen
9a1dcea2df
Use CScheduler for net's DumpAddresses
Instead of starting Yet Another Thread to dump addresses,
use CScheduler to do it.
2015-05-14 12:50:42 -04:00
Gavin Andresen
ddd0acd3db
Create a scheduler thread for lightweight tasks 2015-05-14 12:50:41 -04:00
Gavin Andresen
68d370bec4
CScheduler unit test 2015-05-14 12:50:41 -04:00
Wladimir J. van der Laan
339321522c
Merge pull request #6136
235b3a7 depends: sanity-check sources and cached builds (Cory Fields)
2015-05-14 17:51:00 +02:00
Cory Fields
cfefe5b88c
scheduler: fix with boost <= 1.50 2015-05-14 10:37:19 -04:00
Cory Fields
ca66717d89
build: make libboost_chrono mandatory
previously it was only used with certain boost versions. Now all versions
require it.
2015-05-14 10:37:19 -04:00
Gavin Andresen
928b950e3b
CScheduler class for lightweight task scheduling
Simple class to manage a task queue that is serviced by one or
more threads.
2015-05-14 10:37:19 -04:00
Philip Kaufmann
e656560edb
[Qt] add defaultConfirmTarget constant to sendcoinsdialog
- replaces some hard-coded values for the default confirmation target
- also simplify code that is using the new constant
2015-05-14 10:37:19 -04:00
Philip Kaufmann
a5baba52c5 minor: remove unneeded bool in CWalletDB::Recover 2015-05-14 15:55:17 +02:00
Wladimir J. van der Laan
a538126a8c
Merge pull request #6110
ca5f688 [QT] don't colorize icons on win and mac (Jonas Schnelli)
7247d10 [QT] use alert icon with tooltip insted of "(out of sync)" text (Jonas Schnelli)
51c7c70 [QT] remove frame to avoid double-frame situation in sendcoinsentry.ui (Jonas Schnelli)
2a6b844 [QT] change transaction amount and height in overview page (Jonas Schnelli)
2015-05-14 13:50:46 +02:00
Cory Fields
235b3a789d depends: sanity-check sources and cached builds
In some cases (Travis), sources and build caches may be moved around in-between
builds, and we can't necessarily trust that everything is still intact.

This introduces pre-build checks that verify against stashed checksums.

Note that this will cause all sources to be re-downloaded, since cached sources
weren't trustworthy before this.
2015-05-14 01:33:07 -04:00
BitcoinPRReadingGroup
f13dac972c Comment edits and cleanup
Original PR here: https://github.com/bitcoin/bitcoin/pull/6044
2015-05-14 01:02:01 -04:00
Jorge Timón
ff734e905f Alphabetic order in makefile 2015-05-14 01:02:01 -04:00
Philip Kaufmann
5207f33f45 fix header include groups 2015-05-14 01:02:01 -04:00
Philip Kaufmann
59b149ff82 remove unneeded incude of wallet/db.h from rpcmining.cpp 2015-05-14 01:02:01 -04:00
Philip Kaufmann
3703385547 remove unused classes from db.h 2015-05-14 01:02:00 -04:00
Philip Kaufmann
0a7bcb7e55 fix IDE/compiler warning "extra ';'" in validationinterface.h 2015-05-14 01:02:00 -04:00
sandakersmann
3b00e7c231 [Trivial] Update COPYING
Corrected header
2015-05-14 01:02:00 -04:00
ayeowch
dd9e688b3b Trivial: Corrected owner of DNS seeder 2015-05-14 01:02:00 -04:00
Philip Kaufmann
a60bfd810f [init] better message when no wallet support is compiled in 2015-05-14 01:02:00 -04:00
sandakersmann
78f44b60d5 Capitalized P2P
Capitalized P2P
2015-05-14 01:02:00 -04:00
sandakersmann
8e9248d96b [Trivial] Cryptocurrency is one word
Cryptocurrency was added to Oxford Dictionaries Online in May 2014.
2015-05-14 01:02:00 -04:00
Chris Arnesen
803f51efe4 Typo in GetRawMemPool RPC method help: "]" --> "}" 2015-05-14 01:02:00 -04:00
Pavel Vasin
605a735425 addrman: update comments
nUnkBias was removed in https://github.com/bitcoin/bitcoin/pull/5941
2015-05-14 01:02:00 -04:00
Pieter Wuille
dce8360e44 Reduce checkpoints' effect on consensus.
Instead of only checking height to decide whether to disable script checks,
actually check whether a block is an ancestor of a checkpoint, up to which
headers have been validated. This means that we don't have to prevent
accepting a side branch anymore - it will be safe, just less fast to
do.

We still need to prevent being fed a multitude of low-difficulty headers
filling up our memory. The mechanism for that is unchanged for now: once
a checkpoint is reached with headers, no headers chain branching off before
that point are allowed anymore.
2015-05-13 12:52:57 -07:00
Gavin Andresen
351f73ecd5
Merge pull request #6125
472b4c5 Clean up parsing of bool command line args (Alex Morcos)
2015-05-13 15:15:33 -04:00
Alex Morcos
8f0947be34 Increase timeouts in pruning.py and modify warning language. 2015-05-13 15:02:36 -04:00
Suhas Daftuar
b89f30775d Fix incorrect variable name in FindFilesToPrune 2015-05-13 14:58:55 -04:00
Jonas Schnelli
ca5f688547 [QT] don't colorize icons on win and mac 2015-05-13 20:27:26 +02:00
Wladimir J. van der Laan
2cc1372190
Merge pull request #5159
b649e03 Create new BlockPolicyEstimator for fee estimates (Alex Morcos)
2015-05-13 17:10:02 +02:00
Alex Morcos
b649e03954 Create new BlockPolicyEstimator for fee estimates
This class groups transactions that have been confirmed in blocks into buckets, based on either their fee or their priority.  Then for each bucket, the class calculates what percentage of the transactions were confirmed within various numbers of blocks.  It does this by keeping an exponentially decaying moving history for each bucket and confirm block count of the percentage of transactions in that bucket that were confirmed within that number of blocks.

-Eliminate txs which didn't have all inputs available at entry from fee/pri calcs

-Add dynamic breakpoints and tracking of confirmation delays in mempool transactions

-Remove old CMinerPolicyEstimator and CBlockAverage code

-New smartfees.py

-Pass a flag to the estimation code, using IsInitialBlockDownload as a proxy for when we are still catching up and we shouldn't be counting how many blocks it takes for transactions to be included.

-Add a policyestimator unit test
2015-05-13 10:36:24 -04:00
Alex Morcos
472b4c5dda Clean up parsing of bool command line args 2015-05-12 16:41:55 -04:00
Alex Morcos
86a5f4b54e Relocate calls to CheckDiskSpace
Make sure we're checking disk space for block index writes and allow for pruning to happen before chainstate writes.
2015-05-12 21:44:56 +02:00
Jonas Schnelli
7247d103ff [QT] use alert icon with tooltip insted of "(out of sync)" text
# Conflicts:
#	src/qt/forms/overviewpage.ui
#	src/qt/overviewpage.cpp
2015-05-12 20:46:12 +02:00
Jonas Schnelli
51c7c7029e [QT] remove frame to avoid double-frame situation in sendcoinsentry.ui 2015-05-12 20:46:10 +02:00
Alex Morcos
14d4eef799 Fix removing of orphan transactions
We don't want to erase orphans that still have missing inputs, they should still be tracked as orphans.  Also, the transaction thats being accepted can't be an orphan otherwise it would have previously been accepted, so doesn't need to be added to the erase queue.
2015-05-12 12:02:38 -04:00
Wladimir J. van der Laan
484821870b
Merge pull request #6123
bba7c24 Avoid crash on start in TestBlockValidity with gen=1. (Gregory Maxwell)
2015-05-12 16:37:19 +02:00
Wladimir J. van der Laan
40de49c358
Merge pull request #5932
107d35b [Qt] add defaultConfirmTarget constant to sendcoinsdialog (Philip Kaufmann)
2015-05-12 14:38:00 +02:00
Gregory Maxwell
bba7c24929 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.
2015-05-12 14:07:43 +02:00
Pieter Wuille
67708acff9 Write block index more frequently than cache flushes 2015-05-11 17:58:14 -07:00
Pieter Wuille
b3ed4236be Cache tweak and logging improvements 2015-05-11 17:58:14 -07:00
Pieter Wuille
fc684ad8af Use accurate memory for flushing decisions 2015-05-11 17:57:27 -07:00
Pieter Wuille
046392dc1d Keep track of memory usage in CCoinsViewCache 2015-05-11 17:56:48 -07:00
Pieter Wuille
540629c6fb Add memusage.h 2015-05-11 17:56:48 -07:00
Tom Harding
5d34e16d3a Add txn_clone.py test
Does what the old txnmall.sh test did.

Creates an equivalent malleated clone and tests that SyncMetaData
syncs the accounting effects from the original transaction to the
confirmed clone.
2015-05-11 17:09:14 -07:00
Wladimir J. van der Laan
7e0e7f823f
Merge pull request #6058
03c5687 appropriate response when trying to get a block in pruned mode (Jonas Schnelli)
1b2e555 add autoprune information to RPC "getblockchaininfo" (Jonas Schnelli)
2015-05-11 16:40:58 +02:00
Jonas Schnelli
03c56872b5 appropriate response when trying to get a block in pruned mode 2015-05-11 16:10:08 +02:00
Wladimir J. van der Laan
c1409d11ad
Merge pull request #6073
a681663 clarify that there are only two nodes (Jameson Lopp)
2015-05-11 13:41:03 +02:00