Commit Graph
245 Commits
Author SHA1 Message Date
Luke Dashjr 8045273a01 Merge branch '0.5.x' into 0.6.0.x 2012-11-14 21:25:35 +00:00
Luke Dashjr d9b50a8cfd Merge branch '0.4.x' into 0.5.x
Conflicts:
	src/bitcoinrpc.cpp
2012-11-14 21:25:29 +00:00
Gregory MaxwellandLuke Dashjr 2d2e5bdcf4 Fixes a race condition in CreateNewBlock.
CreateNewBlock was reading pindexBest at the start before taking the lock
so it was possible to have the the block content not match the prevheader.

(Partial of faff50d129)
2012-11-12 22:44:29 +00:00
Luke Dashjr e7770992ab Merge branch '0.5.x' into 0.6.0.x 2012-09-17 02:07:03 +00:00
Luke Dashjr 3a9899f6a8 Merge branch '0.4.x' into 0.5.x 2012-09-17 02:06:27 +00:00
Gregory MaxwellandLuke Dashjr a53b07313f Apply BIP30 checks to all blocks except the two historic violations.
Matt pointed out some time ago that there existed a minor DOS
attack where a node in its initial block download could be wedged
by an overwrite attack in a fork created between checkpoints before
a time where BIP30 was enforced. Now that the BIP30 timestamp
is irreversibly past the check can be more aggressive and apply to
all blocks except the two historic violations.
2012-09-17 02:03:44 +00:00
Luke Dashjr f08ad34e0c Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	bitcoin-qt.pro
	doc/README
	doc/README_windows.txt
	share/setup.nsi
	src/serialize.h
2012-08-27 19:14:59 +00:00
Luke Dashjr d31e24aeaa Merge branch '0.4.x' into 0.5.x
Conflicts:
	contrib/Bitcoin.app/Contents/Info.plist
	doc/README
	doc/README_windows.txt
	share/setup.nsi
	src/serialize.h
2012-08-27 19:10:41 +00:00
Gavin AndresenandLuke Dashjr e0adf13897 Special-case the last alert for alert-key-compromised case
Hard-code a special nId=max int alert, to be broadcast if the
alert key is ever compromised. It applies to all versions, never
expires, cancels all previous alerts, and has a fixed message:
   URGENT: Alert key compromised, upgrade required

Variations are not allowed (ignored), so an attacker with
the private key cannot broadcast empty-message nId=max alerts.
2012-08-27 19:01:17 +00:00
Gavin AndresenandLuke Dashjr e1c2163fb7 Alert system DoS prevention
This fixes two alert system vulnerabilities found by
Sergio Lerner; you could send peers unlimited numbers
of invalid alert message to try to either fill up their
debug.log with messages and/or keep their CPU busy
checking signatures.

Fixed by disconnecting/banning peers if they send 10 or more
bad (invalid/expired/cancelled) alerts.
2012-08-27 18:56:54 +00:00
Luke Dashjr 680c3c8565 Merge commit '689b878' into 0.6.0.x 2012-08-26 22:19:46 +00:00
Luke Dashjr 4c063c11ff Merge commit '9adab76' into 0.6.0.x
Conflicts:
	src/main.cpp
2012-08-26 22:19:14 +00:00
Luke Dashjr 0eca21c5fa Merge commit 'd710ed5' into 0.6.0.x 2012-08-26 22:18:26 +00:00
Luke Dashjr 689b878c33 Merge branch '0.4.x' into 0.5.x
Conflicts:
	src/main.cpp
2012-08-26 21:10:06 +00:00
Gavin AndresenandLuke Dashjr 2d57b561c2 Reject block.nVersion<=1 blocks if network has upgraded to version=2
If 950 of the last 1,000 blocks are nVersion=2, reject nVersion=1
(or zero, but no bitcoin release has created block.nVersion=0) blocks
-- 75 of last 100 on testnet3.

This rule is being put in place now so that we don't have to go
through another "express support" process to get what we really
want, which is for every single new block to include the block height
in the coinbase.
2012-08-26 21:07:08 +00:00
Gavin AndresenandLuke Dashjr 9adab76e0a Block height in coinbase as a new block rule
"Version 2" blocks are blocks that have nVersion=2 and
have the block height as the first item in their coinbase.
Block-height-in-the-coinbase is strictly enforced when
version=2 blocks are a supermajority in the block chain
(750 of the last 1,000 blocks on main net, 51 of 100 for
testnet). This does not affect old clients/miners at all,
which will continue producing nVersion=1 blocks, and
which will continue to be valid.
2012-08-26 21:06:26 +00:00
Philip KaufmannandLuke Dashjr f51b175e3c fix a compiler sign warning in OpenBlockFile() 2012-08-22 17:17:42 +00:00
Luke Dashjr 4fb6e53968 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	doc/unit-tests.txt
2012-08-12 17:35:44 +00:00
Luke Dashjr 8ddc257a4b Merge branch '0.4.x' into 0.5.x 2012-08-12 17:33:03 +00:00
Luke Dashjr 448f6b3d9b Bugfix: Correct English grammar regarding "'s" 2012-08-12 17:30:36 +00:00
Luke Dashjr 3171daef6c Bugfix: Fix a variety of misspellings 2012-08-12 17:22:48 +00:00
Luke Dashjr cafa8f2879 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	src/key.h
	src/keystore.h
	src/net.h
	src/protocol.cpp
	src/qt/guiutil.h
	src/test/DoS_tests.cpp
2012-08-12 17:19:48 +00:00
Luke Dashjr 797d0b231b Merge branch '0.4.x' into 0.5.x
Conflicts:
	src/net.cpp
2012-08-12 17:02:38 +00:00
Luke Dashjr 9e98fe6f58 Bugfix: Fix a variety of misspellings
(PARTIAL: Left out anything changing debug.log)
2012-08-12 17:00:02 +00:00
Luke Dashjr ff4be740b5 Merge branch '0.5.x' into 0.6.0.x 2012-07-22 23:15:38 +00:00
Luke Dashjr 4f620dd0f0 Merge branch '0.4.x' into 0.5.x 2012-07-22 23:15:22 +00:00
Rune K. SvendsenandLuke Dashjr 63f319353c Let the comment in GetBlockValue() reflect the uncertainty about the time interval between subsidy reductions 2012-07-22 21:45:32 +00:00
Luke Dashjr 13829c6c99 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	doc/unit-tests.txt
	src/serialize.h
2012-06-21 01:40:40 +00:00
Luke Dashjr fad2231f86 Merge branch '0.4.x' into 0.5.x
Conflicts:
	src/main.cpp
	src/serialize.h
2012-06-20 19:02:33 +00:00
Gavin AndresenandLuke Dashjr 3023e782bd print large orphan warning BEFORE deleting pvMsg 2012-06-20 18:55:24 +00:00
Gavin AndresenandLuke Dashjr 01473c3f40 Remove invalid dependent orphans from memory
Remove orphan transactions from memory once
all of their parent transactions are received
and they're still not valid.
Thanks to Sergio Demian Lerner for suggesting this fix.
2012-06-20 17:53:18 +00:00
Gavin AndresenandLuke Dashjr ce1a071f6d Further DoS prevention: Verify signatures last
Loop over all inputs doing inexpensive validity checks first,
and then loop over them a second time doing expensive signature
checks. This helps prevent possible CPU exhaustion attacks
where an attacker tries to make a victim waste time checking
signatures for invalid transactions.
2012-06-20 17:39:24 +00:00
Gavin AndresenandLuke Dashjr c3def40293 Optimize orphan transaction handling
Changes suggested by Sergio Demian Lerner to
help prevent potential DoS attacks.
2012-06-20 17:16:19 +00:00
Gavin AndresenandLuke Dashjr 0ce74bfaa5 Use std::numeric_limits<> for typesafe INT_MAX/etc
(this fixes a Mac OS X gitian build error for 0.5.x)
2012-06-14 20:38:25 +00:00
Gavin AndresenandLuke Dashjr 5cd2a640a5 Use std::numeric_limits<> for typesafe INT_MAX/etc
(this fixes a Mac OS X gitian build error for 0.5.x)
2012-06-14 19:52:31 +00:00
Luke Dashjr 6ec9d30905 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	src/main.h
	src/net.cpp
	src/serialize.h
2012-06-14 18:13:46 +00:00
Philip KaufmannandLuke Dashjr 276cfd8530 Bugfix: Fix various places where Bitcoin-Qt was being shutdown improperly
(Partial/merge of upstream 9247134eab, 1a3f0da922, and 3e34352222)
2012-06-14 17:53:59 +00:00
Luke Dashjr d67b0434f2 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	src/main.cpp
2012-05-22 22:57:10 +00:00
Luke Dashjr 3b36da6d27 Merge branch '0.4.x' into 0.5.x
Conflicts:
	src/ui.cpp
	src/ui.h
	src/uibase.cpp
	src/xpm/about.xpm
2012-05-22 22:55:49 +00:00
R E BroadleyandLuke Dashjr 8a39b0d613 Correct debug.log output to show correct function the debug is coming from. 2012-05-22 22:42:13 +00:00
FordyandLuke Dashjr 58ac600b2c Update License in File Headers
I originally created a pull to replace the "COPYING" in crypter.cpp and
crypter.h, but it turned out that COPYING was actually the correct
file.
2012-05-20 20:15:41 +00:00
FordyandLuke Dashjr b2de28c740 Update License in File Headers
I originally created a pull to replace the "COPYING" in crypter.cpp and
crypter.h, but it turned out that COPYING was actually the correct
file.
2012-05-20 20:10:24 +00:00
FordyandLuke Dashjr d11488abd0 Update License in File Headers
I originally created a pull to replace the "COPYING" in crypter.cpp and
crypter.h, but it turned out that COPYING was actually the correct
file.
2012-05-20 20:06:11 +00:00
Philip KaufmannandLuke Dashjr 334668cde4 remove 2 ugly spaces from a message string
(PARTIAL of 966ae00)
2012-05-20 19:54:14 +00:00
Jeff GarzikandLuke Dashjr 3a05f1d2ce Always check return values of TxnBegin() and TxnCommit() 2012-05-18 00:04:18 +00:00
Jeff GarzikandLuke Dashjr 738592a002 Always check return values of TxnBegin() and TxnCommit()
PARTIAL, since d68dcf7 isn't backported (yet)
2012-05-18 00:03:32 +00:00
Pieter WuilleandLuke Dashjr c455aec699 Hopefully final fix for the stuck blockchain issue
Immediately issue a "getblocks", instead of a "getdata" (which will
trigger the relevant "inv" to be sent anyway), and only do so when
the previous set of invs led us into a known and attached part of
the block tree.
2012-05-17 23:45:49 +00:00
Pieter WuilleandLuke Dashjr 60953d05c8 Prevent stuck download: correct solution
Pull request #948 introduced a fix for nodes stuck on a long side branch
of the main chain. The fix was non-functional however, as the additional
getdata request was created in a first step of processing, but dropped
in a second step as it was considered redundant. This commits fixes it
by sending the request directly.
2012-05-07 04:00:49 +00:00
Luke Dashjr afff998ef0 Merge branch '0.4.x' into 0.5.x 2012-05-07 02:46:14 +00:00
Pieter WuilleandLuke Dashjr 2403bb79bc Prevent stuck download: correct solution
Pull request #948 introduced a fix for nodes stuck on a long side branch
of the main chain. The fix was non-functional however, as the additional
getdata request was created in a first step of processing, but dropped
in a second step as it was considered redundant. This commits fixes it
by sending the request directly.
2012-05-07 02:45:08 +00:00