Commit Graph

  • f7fa0cda72 Make the use of cycle detecting locks optional at compile time. Mike Hearn 2013-03-06 13:51:27 +01:00
  • 97bce595c3 ToyWallet -> SPVBlockStore. Mike Hearn 2013-03-06 13:47:51 +01:00
  • de653cc42d Mark BoundedOverheadBlockStore as deprecated. Mike Hearn 2013-03-06 13:47:09 +01:00
  • 53fcef761e BitCoin -> Bitcoin Mike Hearn 2013-03-06 13:12:27 +01:00
  • e57068451d Split some selection logic into a static method of DefaultCoinSelector. Resolves issue 322. Mike Hearn 2013-03-06 12:13:34 +01:00
  • 27a49655fb Update language level in the POM. Updates issue 334. Mike Hearn 2013-03-06 11:59:53 +01:00
  • 8355a03439 Require last checkpoint to be at least 1 month old. Mike Hearn 2013-03-04 17:47:10 +01:00
  • 96cd35f139 Add a convenience method to CheckpointManager and example of how to use in PingService. Mike Hearn 2013-03-04 17:42:19 +01:00
  • 7f17766b47 Minor javadoc improvement. Mike Hearn 2013-03-04 17:41:47 +01:00
  • 0419887407 Add a CheckpointManager class and a BuildCheckpoints tool that saves a set of checkpoints to disk. By default there is one every difficulty transition period (two weeks), which means a relatively small amount of RAM needed to hold them all. There are only 111 checkpoints so far and old ones can be thinned out if needed. Mike Hearn 2013-03-04 17:22:17 +01:00
  • b4c835c0cf Quieten a noisy debug line when downloading the block chain. Mike Hearn 2013-03-04 17:18:54 +01:00
  • 68907880cb Refactor compact serialization out of SPVBlockStore and into StoredBlock. Mike Hearn 2013-03-04 17:18:39 +01:00
  • a61cd9eb19 Switch WalletTool to SPVBlockStore. Mike Hearn 2013-03-01 14:06:12 +01:00
  • 18a14c6668 Indent fix Mike Hearn 2013-03-01 14:05:59 +01:00
  • 61410adbaa Fix BOBS bug introduced by my optimizations. Mike Hearn 2013-02-28 22:56:31 +01:00
  • fb56237de8 Fix a couple of unit tests and resolve Matts comment. Mike Hearn 2013-02-27 18:12:26 +01:00
  • 50323391e5 Misc optimizations, the profiles look much better now. Mike Hearn 2013-02-27 16:22:45 +01:00
  • 121695fa13 Use a shutdown hook to make sure everything is wrapped up nice and neat. It's not actually required in this example, but it's good practice. Mike Hearn 2013-02-27 15:38:23 +01:00
  • 20fdc72ab2 Make PingService use SPVBlockStore. Mike Hearn 2013-02-27 15:20:45 +01:00
  • 54354c16b6 Add SPVBlockStore, a new higher performance replacement for BOBS that uses a fixed-size mmapped ring buffer, with caching on top to cover up for slow Dalvik mapped byte buffer operations. Mike Hearn 2013-02-27 15:19:11 +01:00
  • 9d6a3cc1e9 Upgrade Guava and make a simple accessor for building cycle-detecting locks. Mike Hearn 2013-02-27 15:18:38 +01:00
  • d309863560 Save the last seen chain height as well as hash in the wallet. Mike Hearn 2013-03-04 18:52:09 +01:00
  • d626b19a55 Change default ping time to 2sec Mike Hearn 2013-03-04 18:44:36 +01:00
  • 0608b3a383 Fix a bug that could cause pinging a remote node as fast as it will respond. Mike Hearn 2013-03-04 18:28:26 +01:00
  • 9a0950e578 Check for null InetAddress in PeerAddress c'tor. Mike Hearn 2013-03-01 23:56:25 +01:00
  • 1175fe9588 Change the parameter of BlockChainListener.notifyNewBestBlock to be StoredBlock instead of Block, so listeners can get height/work information as well. The Wallet doesn't need this but other listeners may do. Mike Hearn 2013-03-01 17:38:23 +01:00
  • 00071d3cfc Add a couple of convenience features: peerGroup.addAddress(InetAddress) and an AbstractBlockChainListener class. Mike Hearn 2013-03-01 17:27:50 +01:00
  • 43b1ae1a29 Remove redundant and buggy expression in the check for whether to send a bloom filter. Mike Hearn 2013-03-02 11:52:46 +01:00
  • 6799dcc348 Refuse to create transactions larger than the max standard size. Mike Hearn 2013-03-01 19:48:45 +01:00
  • 1c8ee2b116 Upgrade to the latest Netty. Resolves issue 321. Mike Hearn 2013-03-01 16:44:27 +01:00
  • 018dcd345c Fix a couple of ordering issues with the unit tests. Mike Hearn 2013-03-01 16:23:07 +01:00
  • 34f3d8b088 Minor comment fix in Block.java Mike Hearn 2013-02-27 14:02:19 +01:00
  • 301299cff9 Don't print difficulty transition times when it's less than 50 msec. Mike Hearn 2013-02-27 15:17:29 +01:00
  • 2e895e4e09 Optimization when downloading blocks (should be rare these days), don't format log messages that requires an expensive hash->string conversion if the debug channel is not enabled. Mike Hearn 2013-02-27 15:18:04 +01:00
  • 049baad8c6 Avoid trying to resolve dependencies of newly solved orphan blocks when we are still downloading headers. Mike Hearn 2013-02-27 16:25:50 +01:00
  • a837bd2885 Add a logo. Mike Hearn 2013-03-01 13:59:48 +01:00
  • fbc14c1040 Make NetworkParameters singleton and (mostly) immutable. Resolves issue 51. Mike Hearn 2013-02-28 19:39:05 +01:00
  • 559df0b3f8 Trivial cleanup Mike Hearn 2013-02-28 19:27:13 +01:00
  • 55898d3ee3 Fix a redundant null comparison, clears one more findbugs warning. Mike Hearn 2013-02-28 18:38:28 +01:00
  • 93d8a8da1f Update findbugs.xml to suppress useless warnings. Mike Hearn 2013-02-28 18:38:16 +01:00
  • f9a57db818 Fix crash in toString() for an unparsed block header object. Mike Hearn 2013-02-28 18:06:58 +01:00
  • ec1504f9dc Remove another java7-ism. Mike Hearn 2013-02-28 17:52:32 +01:00
  • a10b36432c gitignore .idea Mike Hearn 2013-02-27 14:02:01 +01:00
  • 29cea2e6f0 Fix a java7-ism Mike Hearn 2013-02-27 16:55:11 +01:00
  • e14e7a228c Fix bug that could cause huge slowdowns during initial header sync: peers were not checking if they were still download peers after receiving header messages. Mike Hearn 2013-02-27 13:45:50 +01:00
  • a700b97f75 Delete the Derby block store. It isn't that useful now we have full verification based on H2. Mike Hearn 2013-02-25 21:43:43 +01:00
  • 6b684a6dc6 Resolve more FindBugs warnings. These changes are all no-ops. Mike Hearn 2013-02-22 12:05:29 +01:00
  • 3ae65f7a2f Don't invoke onCoinsSent for cases when the balance doesn't change, just onWalletChanged directly. Also implement equals/hashCodes for SaveRequest. Resolves a couple of FindBugs warnings. Mike Hearn 2013-02-22 12:05:14 +01:00
  • 1a5f74a148 Add/fix hashCodes/equals() implementations in some cases. Clears more FindBugs warnings. Mike Hearn 2013-02-21 15:42:14 +01:00
  • 440619f1c5 Test the ability to choose your own change address. This clears a FindBugs warning about the field never being written. Mike Hearn 2013-02-21 15:41:47 +01:00
  • 8540f879bd Fix a bug in Peer error logging, found by FindBugs. Mike Hearn 2013-02-21 15:41:33 +01:00
  • 3680c7f52f Restrict scope of NPE check for Bouncy Castle bug. Mike Hearn 2013-02-21 14:42:04 +01:00
  • 85c9950d9e Clear all possible NPE findbugs warnings, and fix some getter/setter synchronization mismatches. Mike Hearn 2013-02-21 14:29:26 +01:00
  • 002539f2b8 Treat client protocol versions higher than the version we prefer equally so we don't zap peers that upgrade early when unimportant (for us) protocol changes roll out. Mike Hearn 2013-02-21 12:11:37 +01:00
  • 420a29a388 Properly support importing dumped private keys in WalletTool. Mike Hearn 2013-02-20 00:05:49 +01:00
  • 32cc7b4880 Catch NullPointerException from bouncy castle signature verification. This can be triggered by a specially crafted signature. Thanks to Sergio Damian Lerner for finding this. Mike Hearn 2013-02-19 22:33:15 +01:00
  • 4b4eb7b623 Clear some more FindBugs warnings, including a real bugfix to the bloom filter calculations. Mike Hearn 2013-02-19 17:44:41 +01:00
  • 883bf03007 Clear some FindBugs warnings. Mike Hearn 2013-02-19 17:05:23 +01:00
  • 5a3515bef0 Refactor the code that sets filters a bit, and send a mempool query after wallet contents change in case of a key import. Mike Hearn 2013-02-19 16:10:21 +01:00
  • 3c606516be Query the memory pool of nodes that support Bloom filtering. Mike Hearn 2013-02-19 15:51:34 +01:00
  • f4033076e8 Don't build/send Bloom filters when there are no keys in any wallets. Resolves issue 324. Mike Hearn 2013-02-19 14:43:50 +01:00
  • 72d6f23e92 Version 0.8-SNAPSHOT Mike Hearn 2013-02-19 15:07:00 +01:00
  • 0c1d308b5b Refactor version constants a bit. Resolves issue 206. Mike Hearn 2013-02-18 15:51:24 +01:00
  • eae775a4bf Delete repository sections from the POM as we're not supporting the Nexus for this release. Mike Hearn 2013-02-18 15:42:46 +01:00
  • d4cfad59cf Fix a bug where pending transactions with spent outputs would be considered unspent, triggering consistency assertions. Resolves issue 313. Mike Hearn 2013-02-14 19:04:57 +01:00
  • d310c289ab Clarify another JavaDoc. Mike Hearn 2013-02-14 19:04:27 +01:00
  • 7ccd81c462 Update TODO list at top of wallet class. Mike Hearn 2013-02-10 14:36:25 +01:00
  • e99e4bd63c Consider age of outputs when creating spends. Mike Hearn 2013-02-10 14:27:07 +01:00
  • 757334da80 Change getBalance to use the default coin selector instead of its own logic for calculating the available and estimated balances. Mike Hearn 2013-02-09 14:25:58 +01:00
  • 29727113a5 Support ID based construction of unit test network params. Fixes an issue in the serializer tests. Mike Hearn 2013-02-09 14:18:00 +01:00
  • 068db43569 Add a setter for the coin selector. Mike Hearn 2013-02-05 12:04:16 +01:00
  • 4273820eac Allow spending of unconfirmed change when it's been seen by the network. Resolves issue 40. Mike Hearn 2013-02-04 18:57:44 +01:00
  • fd45fa0f17 Refactor coin selection out into a separate object and reimplement the existing policy. Mike Hearn 2013-01-27 17:14:15 +01:00
  • 988641a5f7 Label transactions with their source (network, wallet, other, etc). This will be used to allow spending of unconfirmed change. Mike Hearn 2013-02-04 15:34:33 +01:00
  • 3b7a494a37 Show reverse DNS for nodes in PeerMonitor. Mike Hearn 2013-02-15 16:10:26 +01:00
  • 4bcb550796 Make Peer.downloadData() atomic rather than locked under the Peer lock. Resolves issue 310. Mike Hearn 2013-02-15 15:48:53 +01:00
  • 38ec23299c Protect lastPingTimes under its own lock instead of the peer lock. Update issue 310. Mike Hearn 2013-02-15 15:42:37 +01:00
  • 536bbfb231 Make Peer.getAddress() not hold the Peer lock. Update issue 310. Mike Hearn 2013-02-15 15:11:01 +01:00
  • 067b7814e8 Use atomics for peers announced version and tracked chain height rather than locks. Updates issue 310. Mike Hearn 2013-02-14 19:31:24 +01:00
  • 8dc9c9f27a Fix a bug in Transaction.toString(). Resolves issue 309. Mike Hearn 2013-02-14 19:21:17 +01:00
  • 1b4fa96691 Make the last TransactionInput c'tor public, it can be used to build coinbase transactions. Updates issue 312. Mike Hearn 2013-02-14 15:35:11 +01:00
  • 9b1edf00bd Clarify the getDifficultyTarget() javadoc. Mike Hearn 2013-02-11 20:31:14 +01:00
  • 90662e9238 Support compressed pubkeys in the dumpprivkey format encoder/decoder. Resolves issue 308. Mike Hearn 2013-02-11 12:18:16 +01:00
  • 1c8ddaad36 Delete long-dead code related to the previous protocol version that didn't use checksumming until post-handshake. Mike Hearn 2013-02-09 12:35:58 +01:00
  • fa57883a98 Delete an unused line in AbstractBlockChain Mike Hearn 2013-02-07 10:52:44 +01:00
  • 53f526cef0 Refresh PingService example for 0.7 Mike Hearn 2013-02-05 21:35:04 +01:00
  • 92e1f09a72 Some improvements to class level JavaDocs. Mike Hearn 2013-02-05 17:27:26 +01:00
  • 0d0039cbdb Minor reformattings on Base58.java Mike Hearn 2013-02-05 16:15:07 +01:00
  • 5ce607f1ae Add a minimum version to Peer and use it to exclude peers so old they don't support pong messages. Mike Hearn 2013-02-05 15:14:58 +01:00
  • f488c29c12 Fix some races in PeerMonitor. Mike Hearn 2013-02-05 15:14:34 +01:00
  • 6ac8eb54cb Re-arrange the actions in PeerGroup.broadcastTransaction() This fixes a bug where Netty complains about blocking an IO thread due to the await call on send and resolves a potential race condition. Mike Hearn 2013-02-04 18:55:51 +01:00
  • 8c488a1687 Delete a dead method from WalletProtobufSerializer. Mike Hearn 2013-02-04 15:11:07 +01:00
  • 586f961b1b Minor WalletTool fixes: 1) Print balance in friendly form 2) Use PeerGroup.stopAndWait() to avoid trying to close the store in parallel with network threads shutdown. Mike Hearn 2013-02-04 14:47:21 +01:00
  • 37cb4205b3 Minor cleanups to unit tests: remove redundant params from some test helper methods. Mike Hearn 2013-01-31 16:04:40 +01:00
  • a62825bd8f Make the NetworkParameters.testNet() point to testNet3 and rename oldTestNet->testNet2(). Resolves issue 285. Mike Hearn 2013-01-30 17:56:57 +01:00
  • 7108751d3c Set IRC discovery so timeout. Resolves issue 269. Mike Hearn 2013-01-29 16:20:50 +01:00
  • 590d47f273 Add Wallets to all peers not just the download peer. Resolves issue 297. Also fix the unit test that was meant to catch this error so it didn't accidentally probe the download peer case. And prevent adding of wallets multiple times (which caught another error in the unit tests). Mike Hearn 2013-01-29 16:17:46 +01:00
  • 112fe818d5 More Peer logging improvements. Mike Hearn 2013-01-29 16:16:42 +01:00
  • 4bdb0fd5ce Restart chain download after download peer changes. Resolves issue 287. The way we handle changing download peers isn't ideal and can cause some thrashing/wasted bandwidth at startup - it has lots of room for improvement. Mike Hearn 2013-01-29 15:25:32 +01:00
  • 20cab64943 Change some log levels in Peer. Mike Hearn 2013-01-29 15:24:30 +01:00