Commit Graph

3288 Commits

Author SHA1 Message Date
Mike Hearn
71754929e4 Support pubkey only keys in the protobuf serializer. 2012-04-07 23:45:40 +02:00
Mike Hearn
cf30280767 Catch up with new testnet rules. Resolves issue 164. 2012-04-07 23:28:18 +02:00
Mike Hearn
2f904e7a37 Fix unit test. 2012-04-07 17:02:00 +02:00
Mike Hearn
b008cd0388 Don't validate difficulty transitions on the testnet as there was a recent rule change, and nobody cares about security on testnet anyway. 2012-04-06 18:41:40 +02:00
Mike Hearn
40e4ac0a49 Restore error message that got accidentally taken out. 2012-04-06 18:40:51 +02:00
Mike Hearn
4e3d5313e6 Fix issue 166. Consider intra-block dependencies when deciding whether to send transactions to the wallet. 2012-04-06 18:03:07 +02:00
Mike Hearn
577318b9ea Start auto-migration to protobuf wallets. 2012-04-06 16:02:00 +02:00
Mike Hearn
265c76db59 Don't crash if trying to print a transaction with no inputs 2012-04-06 16:01:44 +02:00
Mike Hearn
a170372562 Add a static method to go from string ID to NetworkParameters and use it to simplify the WalletProtobufSerializer API. 2012-04-06 14:58:36 +02:00
Mike Hearn
b3e092a5e8 More logging in Peer/PeerGroup 2012-04-06 14:36:54 +02:00
Mike Hearn
c400a7c756 Peer.java: change trace to info on receiving a block
Wallet.java: print more info to logs if wallet sizes are inconsistent
2012-04-06 13:39:41 +02:00
Jonny Heggheim
7bf9724079 Fix issue 174, replaced all File usage with TemporaryFolder rule in JUnit. 2012-04-05 17:10:36 +02:00
Mike Hearn
6c1e3aa49a Comment fixes 2012-04-05 12:15:05 +02:00
Mike Hearn
d82f102b4b Introduce a new MemoryPool abstraction and use it for tracking peer confidences. This replaces the previous, less explicit system which had each peer try and track all transactions it'd seen in a per-peer pool.
This makes experimental usage of weak references and a reference queue to make the MemoryPool only bother tracking transactions that were retained by some other part of the program, ie, because they were relevant to the wallet. This stops the memory usage from bloating due to lots of large transactions flying around the network whilst still letting us intelligently monitor how many peers announced transactions without tight coupling between components.

Note that we still need the cap on the pool size because otherwise you could DoS a bitcoinj based program by sending it lots of fake transactions it found interesting. The DoS potential still exists but is a bit different now.
2012-04-05 12:14:36 +02:00
Mike Hearn
dc42630526 Invoke transaction confidence listeners when a new peer broadcasts the given transaction. Use EventListenerInvoker to run the listeners. 2012-04-05 12:12:17 +02:00
Mike Hearn
6368862ffe Clear out some more FindBugs warnings. 2012-04-04 23:52:02 +02:00
Mike Hearn
de1f5b8726 Add a findbugs exclusion file. 2012-04-04 22:45:13 +02:00
Mike Hearn
b899b0acd3 BitCoin -> Bitcoin 2012-04-04 17:37:47 +02:00
Mike Hearn
8fc09f5808 Make network parameters to BitcoinURI optional. 2012-04-02 17:36:47 +02:00
Mike Hearn
9075561993 Support for discovering the network parameters from an address. Different exception type for wrong network parameters so chain-crossing can be handled differently. 2012-04-02 17:10:41 +02:00
Mike Hearn
11117dacbe Be super-explicit in the error message for calling getFromAddress on a coinbase transaction input. 2012-04-02 17:10:41 +02:00
Mike Hearn
628cbb6a1d Replace all asserts with Preconditions, which are always enabled. Updates issue 132. 2012-04-02 14:09:52 +02:00
Mike Hearn
3e5f796407 Add a dependency on Guava base libraries and replace a few asserts with Preconditions, which means they will always run including in production code. Fix a bug revealed by this (IntelliJ does not run unit tests with assertions enabled!) 2012-04-02 13:40:20 +02:00
Mike Hearn
2e451800d1 Update comments/exception message in Peer.getPeerBlockHeightDifference() 2012-04-02 13:25:04 +02:00
Miron Cuperman
3bc999a032 Properly close connecting peers.
Keep a collecting of pending peers.  Better socket closing.

Update issue 161.
2012-03-27 10:28:06 -07:00
Miron Cuperman
1e52a6eccc Catch certain exceptions when trying to close socket.
The socket might not be fully connected, so shutdownInput/Output can
fail.

Resolves issue 161.
2012-03-26 16:15:40 -07:00
Miron Cuperman
9474eaa0d4 Change NetworkConnection API to separate connect method.
This allows the Peer to close the connection earlier when connect()
takes a long time.

Resolves issue 161.
2012-03-26 15:23:14 -07:00
Miron Cuperman
92398d2c47 Check whether Peer should stop after each message.
Buffering could cause a delay in stopping if we only depend on socket
being closed.

Resolves issue 161.
2012-03-26 12:17:48 -07:00
Mike Hearn
a77d071d35 Catch exceptions thrown during signature checking. Some versions of Android cannot reliably check ECDSA signatures! Resolves issue 160. 2012-03-26 15:39:10 +02:00
Miron Cuperman
58971b6728 Throw an exception rather than assert on trying to get from address of generation transaction 2012-03-23 16:58:06 -07:00
Miron Cuperman
91a5949930 Additional level of locking to work around Android issue
Resolves issue 153.
2012-03-23 13:44:19 -07:00
Miron Cuperman
4f0c10bd2d Expose correct version message.
Resolve issue 158.
2012-03-23 12:57:47 -07:00
Miron Cuperman
576650142c Lock in BOBS on creation, do not swallow non-IO exceptions 2012-03-23 12:53:54 -07:00
Miron Cuperman
4b1c32584f Lock BlockStore files to prevent concurrent access.
Resolves issue 153.
2012-03-23 10:53:54 -07:00
Miron Cuperman
7f6d636cec Expose several useful Peer fields, for issue 158. 2012-03-19 09:40:17 -07:00
Mike Hearn
a119286b29 POM changes and refactorings from Gary. 2012-03-16 13:20:50 +01:00
Mike Hearn
6e162057c1 Removed IML files from git. 2012-03-13 19:00:33 +01:00
Mike Hearn
0e52c98c45 Use the standard Maven directory layout, rename "lib" to "core". Mavenize submodules. 2012-03-13 18:57:03 +01:00