1257 Commits

Author SHA1 Message Date
Andreas Schildbach
c269d20f0c Version 0.10.3 v0.10.3 2013-11-21 21:44:21 +01:00
Mike Hearn
9d65affc42 Wallet: always broadcast all pending txns, not only those that are unmarked. 2013-11-20 23:20:20 +01:00
Mike Hearn
f851ebc42f TransactionBroadcast: add a unit test that verifies the rebroadcast functionality works. 2013-11-20 16:46:06 +01:00
Mike Hearn
6b0530a60b TransactionBroadcast: when there are an odd number of peers, bias towards more receivers rather than more announcers. 2013-11-20 16:44:30 +01:00
Mike Hearn
199347babc Experimental tweak to the definition of the numBroadcastPeers confidence field: now it actually does what the name implies. 2013-11-20 16:40:34 +01:00
Mike Hearn
417587fda8 Tweak broadcast logic again.
Now broadcast to half the connected peers immediately, and wait until half of the rest (i.e. a quarter) have announced the tx. This should give some robustness against a random subset of peers silently swallowing transactions.
2013-11-10 22:48:34 +01:00
Mike Hearn
1a5b19cfba Add a builder function to InventoryMessage 2013-11-10 22:48:34 +01:00
Mike Hearn
2fe658d261 TransactionBroadcast: refactor 2013-11-10 22:44:43 +01:00
Mike Hearn
b73c48d0ef PeerGroup: Split some broadcast related code out into a separate class.
This is in anticipation of it getting larger and more complicated.
2013-11-10 22:44:43 +01:00
Mike Hearn
3a84b630fc Move TestUtils and TestWithWallet into the core package so they can be used by third party code in their unit tests. 2013-11-10 22:44:37 +01:00
Andreas Schildbach
a671c6c739 Prepare 0.10.3-SNAPSHOT 2013-10-31 17:40:34 +01:00
Andreas Schildbach
2cfa39f2cf Version 0.10.2 v0.10.2 2013-10-20 17:22:39 +02:00
Mike Hearn
c808ae7bb4 FullBlockTestGenerator: treat coinbase scriptSig as a 16-bit counter not 8 bit.
This bug led to mysterious failures that only showed up when tests were run in a certain order and the counter happened to wrap around exactly.
2013-10-14 19:34:56 +02:00
Mike Hearn
ca2d847fe7 Don't run confidence listeners if we get duplicate invs from the same peer (can happen if we connect to the same peer IP multiple times). 2013-10-14 13:26:14 +02:00
Mike Hearn
e6ca742057 Wallet: track relative ordering of transactions within a block.
Ensures re-orgs don't replay transactions out of order. Resolves issue 468.
2013-10-14 11:22:32 +02:00
Mike Hearn
f867998c52 Refactor/bugfix broadcast of pending transactions when a peergroup starts up.
Previously the PeerGroup itself would broadcast the pending transactions by simply sending an inv with them all to every peer. This is a good way to get a transaction blasted out if there are no problems with it, but it means we cannot track propagation and the numBroadcastPeers() value was correspondingly not increased. This seems to be causing issues with the Android wallet. So try out a different approach - have the wallet use broadcastTransaction as per normal on the PeerGroup when it's added. The TX will be propagated and watched as with a normal spend.
2013-10-11 17:36:16 +02:00
Mike Hearn
db296193f9 WalletTool: fix typo 2013-10-11 17:35:55 +02:00
Mike Hearn
d6b4b55e83 Use earliest key time minus a week for setting fast catchup time and selecting a checkpoint.
This handles clock drift both in the block headers and possibly wrong times in the users clock (broken timezone, etc).

Resolves issue 460.
2013-10-08 12:32:34 +02:00
Mike Hearn
1d4ff1770e Threading: resolve a race in the unit tests: if the user thread wasn't initialised, don't crash trying to test if we're on it. 2013-10-08 12:32:34 +02:00
Mike Hearn
cb45e306df Script: clone tx before performing correctlySpends check. This prevents thread safety issues and corrupted transactions if validation fails. 2013-10-08 12:32:23 +02:00
Mike Hearn
4b5e8fcdb0 TransactionOutput: tighter checks on values when constructing (don't allow negative values, etc). 2013-10-08 12:05:45 +02:00
Mike Hearn
bce6968aec TransactionInput: better toString 2013-10-08 12:03:43 +02:00
Mike Hearn
511d6310d4 ECKey: don't crash when signing non-ASCII text 2013-10-03 00:02:23 +02:00
Mike Hearn
3f2c372097 Wallet: add a bit more logging to make output during chain splits less confusing. 2013-10-03 00:02:23 +02:00
Mike Hearn
01a55b557f Wallet: another re-org fix. 2013-10-03 00:02:23 +02:00
Mike Hearn
bdada0447f Wallet: use a single hashmap to track all transactions, then use it in receive to re-canonicalize the transactions.
Long story short, I'm a shitty programmer it seems. The Wallet will at some point be modified to track just bags of outputs derived from Transaction objects, and Transactions/Blocks will become immutable. At that point there won't be any confusion between mutable data associated with the deserialised objects.

Resolves issue 453.
2013-10-03 00:02:23 +02:00
Mike Hearn
0d9f8b7867 Make MemoryBlockStore store only a rolling window of the last 5000 blocks. Fixes BuildCheckpoints which was trying to store every block header and running out of heap space. 2013-10-03 00:02:23 +02:00
Mike Hearn
b883d88468 PeerGroup: correct logic for setting ver packet pre-filtering relay flag. 2013-10-03 00:02:23 +02:00
Mike Hearn
e89cc1a41d Make RegTestParams use testnet addresses, to follow sipa's upstream change. 2013-10-03 00:02:22 +02:00
Mike Hearn
0e809b2b31 Wallet: comment for AllowUnconfirmedCoinSelector.get() 2013-10-03 00:02:22 +02:00
Matt Corallo
a26b18c8fd Clarify PeerEventListener JavaDocs a bit 2013-10-02 23:46:58 +02:00
Andreas Schildbach
4d8e9088f2 Prepare 0.10.2-SNAPSHOT 2013-10-02 23:45:26 +02:00
Andreas Schildbach
1134572f61 Version 0.10.1 v0.10.1 2013-08-15 14:11:17 +02:00
Mike Hearn
d8f7eab42b Wallet: when "emptying" the wallet, only actually empty out the coins that would be considered selectable by the default coin selector.
By default that means unconfirmed coins won't be emptied, to avoid the empty tx becoming dependent on a tx that may never confirm.

 Resolves issue 438.
2013-08-15 13:54:26 +02:00
Andreas Schildbach
a3bbde87c6 Prepare 0.10.1-SNAPSHOT 2013-08-15 13:53:42 +02:00
Mike Hearn
777e6781d7 Version 0.10 v0.10 2013-08-11 16:54:32 +02:00
Mike Hearn
4abdf44449 Remove verifier from examples/pom.xml, it requires us to wait for reproducible build support to land. 2013-08-11 16:50:24 +02:00
Mike Hearn
a0edf70bc3 Move verifier XML around. 2013-08-11 16:50:24 +02:00
Mike Hearn
c261f75e8a Wallet: support for key rotation.
Key rotation allows you to specify a timestamp, and any money controlled by any keys created before that time will be automatically respent to keys created after it.
2013-08-11 16:50:24 +02:00
Mike Hearn
6680846949 PeerGroupTest: Fix a race. 2013-08-11 16:50:24 +02:00
Mike Hearn
1e227e521a Wallet: allow SendRequests to override the default coin selector. 2013-08-11 16:50:24 +02:00
Mike Hearn
1c8be1cc69 PeerGroup/Wallet: give the wallet a reference to a transaction broadcaster, so it can make its own transactions and broadcast them outside the context of a user initiated spend.
Later, we can change the mechanism used to broadcast pending transactions so the wallet does that itself.
2013-08-11 16:50:24 +02:00
Mike Hearn
91fa22181a Wallet: Minor nullity annotation and param genericity tweaks. 2013-08-11 16:50:24 +02:00
Matt Corallo
51186b8fc1 Fix manually-added transactions that make it into blocks. 2013-08-11 16:50:24 +02:00
Mike Hearn
bfcbe7f298 Add a remark to the BloomFilter javadocs about when you would want to use full-match filters. 2013-08-11 16:50:23 +02:00
Matt Corallo
2d1479eca9 Fix block tests 2013-08-11 16:50:23 +02:00
Matt Corallo
79f093f0c4 Implement mempool-test support in BitcoindComparisonTool 2013-08-11 16:50:23 +02:00
Matt Corallo
1fda444af7 InventoryItem.hashCode()
Conflicts:
	core/src/main/java/com/google/bitcoin/core/InventoryItem.java
2013-08-11 16:50:23 +02:00
Matt Corallo
75cbaed15c Make BloomFilter support match-all filters better 2013-08-11 16:50:23 +02:00
Mike Hearn
781b0dc958 Add distributionManagement section to the POM. 2013-07-30 14:47:08 +02:00