Commit Graph
197 Commits
Author SHA1 Message Date
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
Jeff GarzikandLuke Dashjr 3a05f1d2ce Always check return values of TxnBegin() and TxnCommit() 2012-05-18 00:04:18 +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 457ff3a437 Merge branch '0.5.x' into 0.6.0.x 2012-05-06 05:35:58 +00:00
Luke Dashjr 5da2dce524 Merge branch '0.4.x' into 0.5.x 2012-05-06 05:35:50 +00:00
Luke Dashjr 607739befb Bugfix: %-12I64d is not valid and causes the parameter to be skipped, use %12"PRI64d" instead
Conflicts:

	src/walletdb.cpp
2012-05-06 05:27:08 +00:00
Luke Dashjr ee932c6e35 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	src/main.cpp
2012-05-04 19:55:54 +00:00
Luke Dashjr c328c684c2 Bugfix: Remove redundant duplicate transaction check 2012-05-04 19:54:24 +00:00
Luke Dashjr a1a5a89063 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	src/main.cpp
	src/serialize.h
2012-05-04 18:57:03 +00:00
Luke Dashjr b2e5f797b5 Merge branch '0.4.x' into 0.5.x 2012-05-04 18:55:15 +00:00
Gavin AndresenandLuke Dashjr 6a89317f62 Check earlier for blocks with duplicate transactions. Fixes #1167 2012-05-04 18:55:05 +00:00
Gavin AndresenandLuke Dashjr ad5a4c7c47 Check earlier for blocks with duplicate transactions. Fixes #1167 2012-05-04 18:52:16 +00:00
Jeff GarzikandLuke Dashjr 07d1a50aee Test ScriptSigArgsExpected() for error, before accumulating return value 2012-04-24 00:51:54 -04:00
Luke Dashjr 66116c3847 Merge branch '0.5.x' into 0.6.0.x
Conflicts:
	src/main.h
	src/net.cpp
	src/util.cpp
2012-04-22 10:07:24 -04:00
Luke Dashjr a93ab87787 Merge branch '0.4.x' into 0.5.x
Conflicts:
	src/main.cpp
2012-04-22 10:05:43 -04:00
Pieter WuilleandLuke Dashjr dc588faf59 Fix potential deadlock
Conflict:
* cs_main in ProcessMessages() (before calling ProcessMessages)
* cs_vSend in CNode::BeginMessage
versus:
* cs_vSend in ThreadMessageHandler2 (before calling SendMessages)
* cs_main in SendMessages

Even though cs_vSend is a try_lock, if it succeeds simultaneously with
the locking of cs_main in ProcessMessages(), it could cause a deadlock.
2012-04-17 15:11:48 -04:00
Jeff GarzikandLuke Dashjr 0c3aa881e2 Fix loop index var types, fixing many minor sign comparison warnings
foo.size() typically returns an unsigned integral type; make loop variables
match those types' signedness.
2012-04-17 14:59:32 -04:00
Jeff GarzikandLuke Dashjr 774e9b6dbb Fix loop index var types, fixing many minor sign comparison warnings
foo.size() typically returns an unsigned integral type; make loop variables
match those types' signedness.
2012-04-17 14:57:42 -04:00
Jeff GarzikandLuke Dashjr 1175d8f6a1 AlreadyHave(): only hold lock during mapTransactions access 2012-04-17 14:40:58 -04:00
Jeff GarzikandLuke Dashjr 12570da46f Locking fix for AlreadyHave()
Access to mapTransactions[] must be guarded by cs_mapTransactions lock.
2012-04-17 13:20:29 -04:00
Luke Dashjr 79fc752b61 Merge branch '0.4.x' into 0.5.0.x
Conflicts:
	src/keystore.h
2012-04-15 21:05:54 -04:00
Wladimir J. van der LaanandLuke Dashjr 1bdfa94a01 fix warnings: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses] 2012-04-15 19:43:45 -04:00
Wladimir J. van der LaanandLuke Dashjr 8460185dec fix warnings: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses] 2012-04-15 19:43:41 -04:00
Pieter WuilleandLuke Dashjr 60f89779a3 Do not invoke anti-DoS system for invalid BIP16 transactions
Doing so would allow an attack on old nodes, which would relay a
standard transaction spending a BIP16 output in an invalid way,
until reaching a new node, which will disconnect their peer.

Reported by makomk on IRC.
2012-04-04 09:50:48 -04:00
Luke Dashjr 6085033f31 Merge branch '0.4.x' into 0.5.0.x 2012-03-26 20:06:55 -04:00
Pieter WuilleandLuke Dashjr b6751ed1b2 More debug output for failed reorganizations 2012-03-22 16:18:37 -04:00
Pieter WuilleandLuke Dashjr 8ed1f7c153 Report number of (dis)connected blocks in reorganization
Also report old and new best, and fork point.
2012-03-22 16:18:36 -04:00
Gavin AndresenandLuke Dashjr e364ad962f Use last checkpoint instead of hard-coded 140,700. Fixes #913. 2012-03-22 16:08:21 -04:00
Gavin Andresen a6b4a11385 Merge branch 'addrman' of https://github.com/sipa/bitcoin 2012-03-22 09:19:01 -04:00
Gavin Andresen 8f188ece3c Remove -bip16 and -paytoscripthashtime command-line arguments 2012-03-21 15:45:58 -04:00
Gavin Andresen b2fe3a5ca6 Merge pull request #948 from sipa/unstuck
Prevent stuck block download in large reorganisations
2012-03-21 12:16:28 -07:00
Luke Dashjr 2ac8af4534 Merge branch '0.4.x' into 0.5.0.x
Conflicts:
	src/main.cpp
2012-03-21 13:49:00 -04:00
Luke Dashjr cdc6b8d6a6 Merge branch 'bip16_0.4.x' into 0.4.x 2012-03-21 13:30:56 -04:00
Pieter Wuille a1a0469f91 More debug output for failed reorganizations 2012-03-21 13:15:27 +01:00
Pieter Wuille 0aa89c08ff Prevent stuck block download in large reorganisations
In cases of very large reorganisations (hundreds of blocks), a situation
may appear where an 'inv' is sent as response to a 'getblocks', but the
last block mentioned in the inv is already known to the receiver node.
However, the supplying node uses a request for this last block as a
trigger to send the rest of the inv blocks. If it never comes, the block
chain download is stuck.

This commit makes the receiver node always request the last inv'ed block,
even if it is already known, to prevent this problem.
2012-03-21 05:09:02 +01:00
Luke Dashjr 2f2ac3fece Minimal support for validating BIP16 pay-to-script-hash transactions
Note this does NOT include accepting them in blocks (making them standard)
2012-03-20 15:34:43 -04:00
Gavin Andresen eae82d8ee5 Use last checkpoint instead of hard-coded 140,700. Fixes #913. 2012-03-20 13:45:45 -04:00
Pieter Wuille 9aa459b294 assertion in CBlock::SetBestChainInner was too strong 2012-03-20 16:41:36 +01:00
Luke Dashjr 78b9d2de40 Merge branch '0.4.x' into 0.5.0.x
Conflicts:
	contrib/Bitcoin.app/Contents/Info.plist
	doc/README
	doc/README_windows.txt
	share/setup.nsi
	src/serialize.h
2012-03-16 16:44:00 -04:00
Gavin AndresenandLuke Dashjr 27960a36de Fix issue #848 : broken mining on testnet 2012-03-16 16:40:38 -04:00
Gavin AndresenandLuke Dashjr 91aadbdacf Fix issue #848 : broken mining on testnet 2012-03-16 16:39:52 -04:00
Gavin AndresenandLuke Dashjr 4986c35d74 Code cleanup: use ECDSA_size() instead of fixed 10,000 byte sig buffer, and explicity init static var 2012-03-13 19:08:42 -04:00
Pieter Wuille d68dcf741e Limit the impact of reorganisations on the database
Sometimes a new block arrives in a new chain that was already the
best valid one, but wasn't marked that way. This happens for example
when network rules change to recover after a fork.

In this case, it is not necessary to do the entire reorganisation
inside a single db commit. These can become huge, and exceed the
objects/lockers limits in bdb. This patch limits the blocks the
actual reorganisation is applied to, and adds the next blocks
afterwards in separate db transactions.
2012-03-12 20:31:56 +01:00
Luke Dashjr 7013cc3d97 Merge branch '0.4.x' into 0.5.0.x 2012-03-03 13:59:19 -05:00
Luke Dashjr e9865a41d6 Merge remote branch 'sipa/nooverwritetx_v0.4.0' into 0.4.x 2012-03-03 12:59:09 -05:00
Pieter Wuille d7962747c4 Do not allow overwriting unspent transactions (BIP 30)
Introduce the following network rule:
 * a block is not valid if it contains a transaction whose hash
   already exists in the block chain, unless all that transaction's
   outputs were already spent before said block.

Warning: this is effectively a network rule change, with potential
risk for forking the block chain. Leaving this unfixed carries the
same risk however, for attackers that can cause a reorganisation
in part of the network.

Thanks to Russell O'Connor and Ben Reeves.
2012-03-03 18:51:18 +01:00
Pieter Wuille a206b0ea12 Do not allow overwriting unspent transactions (BIP 30)
Introduce the following network rule:
 * a block is not valid if it contains a transaction whose hash
   already exists in the block chain, unless all that transaction's
   outputs were already spent before said block.

Warning: this is effectively a network rule change, with potential
risk for forking the block chain. Leaving this unfixed carries the
same risk however, for attackers that can cause a reorganisation
in part of the network.

Thanks to Russell O'Connor and Ben Reeves.
2012-03-03 18:26:36 +01:00
Gavin AndresenandLuke Dashjr 3108aed0f2 DoS fix for mapOrphanTransactions 2012-03-02 13:04:39 -05:00
Gavin Andresen 142e604184 DoS fix for mapOrphanTransactions 2012-02-29 11:46:46 -05:00
Michael Ford 27adfb2e0c "February" 2012-02-28 20:31:56 +08:00