3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-07 23:03:04 +00:00

999 Commits

Author SHA1 Message Date
Mike Hearn
f0aff6484e Narrow the locking in Peer.processInv() to avoid invoking memoryPool.seen() with the Peer lock held.
This resolves an inversion that can occur if a transaction confidence listener is run due to being marked as broadcast.
Update issue 233.
2013-03-07 17:08:07 +01:00
Mike Hearn
2fb3667c42 Add a 1-liner Locks.checkNotLocked method to make it clearer than writing checkState(!lock.isLocked()); 2013-03-07 16:18:53 +01:00
Mike Hearn
0221b71418 Convert block chain to use a cycle detecting lock. 2013-03-07 15:57:50 +01:00
Mike Hearn
9d87997736 Some more tweaks to the Locks class. 2013-03-07 15:36:07 +01:00
Mike Hearn
9de6dca8c1 Move cycle detecting lock creation out into a new Locks class, rather than stuff it into Utils.
Convert PeerGroup and Peer to also use cycle detecting locks, and add a unit test to Wallet to check that cycle detection works.
 Change default policy to warn. Now warnings are being triggered, the followup commits will fix them.
2013-03-07 13:58:04 +01:00
Mike Hearn
94670f3df0 Make Peer.memoryPool final and introduce a new c'tor for it. 2013-03-06 16:08:52 +01:00
Mike Hearn
83308c6ee1 Clear another FindBugs warning in SPVBlockStore.
The analysis doesn't seem to be good enough to detect that some of these cases are safe.
2013-03-06 15:52:39 +01:00
Mike Hearn
b780c6f191 Silence a FindBugs warning in Utils.
This isn't a real bug as unit tests aren't multi-threaded, but the analysis can't know that.
2013-03-06 15:51:45 +01:00
Mike Hearn
5a16a3d3fe Silence a couple of FindBugs warnings. 2013-03-06 15:51:17 +01:00
Mike Hearn
1ba2c9d5de Use a cycle detecting lock in Wallet and convert its event listeners array to a COW list.
This does not currently detect or break any cycles, even though some are known.
2013-03-06 15:10:52 +01:00
Mike Hearn
23aa1a9105 Tweak DefaultCoinSelector.isSelectable to take a Transaction as a parameter.
Resolves issue 322.
2013-03-06 14:47:30 +01:00
Mike Hearn
f7fa0cda72 Make the use of cycle detecting locks optional at compile time. 2013-03-06 13:51:27 +01:00
Mike Hearn
97bce595c3 ToyWallet -> SPVBlockStore. 2013-03-06 13:47:51 +01:00
Mike Hearn
de653cc42d Mark BoundedOverheadBlockStore as deprecated. 2013-03-06 13:47:09 +01:00
Mike Hearn
53fcef761e BitCoin -> Bitcoin 2013-03-06 13:12:27 +01:00
Mike Hearn
e57068451d Split some selection logic into a static method of DefaultCoinSelector. Resolves issue 322. 2013-03-06 12:13:34 +01:00
Mike Hearn
27a49655fb Update language level in the POM.
Updates issue 334.
2013-03-06 11:59:53 +01:00
Mike Hearn
8355a03439 Require last checkpoint to be at least 1 month old. 2013-03-05 14:48:28 +01:00
Mike Hearn
96cd35f139 Add a convenience method to CheckpointManager and example of how to use in PingService. 2013-03-05 14:48:28 +01:00
Mike Hearn
7f17766b47 Minor javadoc improvement. 2013-03-05 14:48:28 +01:00
Mike Hearn
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. 2013-03-05 14:48:28 +01:00
Mike Hearn
b4c835c0cf Quieten a noisy debug line when downloading the block chain. 2013-03-05 14:48:28 +01:00
Mike Hearn
68907880cb Refactor compact serialization out of SPVBlockStore and into StoredBlock. 2013-03-05 14:48:28 +01:00
Mike Hearn
a61cd9eb19 Switch WalletTool to SPVBlockStore. 2013-03-05 14:48:28 +01:00
Mike Hearn
18a14c6668 Indent fix 2013-03-05 14:48:28 +01:00
Mike Hearn
61410adbaa Fix BOBS bug introduced by my optimizations. 2013-03-05 14:48:28 +01:00
Mike Hearn
fb56237de8 Fix a couple of unit tests and resolve Matts comment. 2013-03-05 14:48:28 +01:00
Mike Hearn
50323391e5 Misc optimizations, the profiles look much better now. 2013-03-05 14:48:28 +01:00
Mike Hearn
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. 2013-03-05 14:48:28 +01:00
Mike Hearn
20fdc72ab2 Make PingService use SPVBlockStore. 2013-03-05 14:48:28 +01:00
Mike Hearn
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. 2013-03-05 14:48:28 +01:00
Mike Hearn
9d6a3cc1e9 Upgrade Guava and make a simple accessor for building cycle-detecting locks. 2013-03-05 14:48:28 +01:00
Mike Hearn
d309863560 Save the last seen chain height as well as hash in the wallet. 2013-03-04 18:52:09 +01:00
Mike Hearn
d626b19a55 Change default ping time to 2sec 2013-03-04 18:44:36 +01:00
Mike Hearn
0608b3a383 Fix a bug that could cause pinging a remote node as fast as it will respond. 2013-03-04 18:28:26 +01:00
Mike Hearn
9a0950e578 Check for null InetAddress in PeerAddress c'tor. 2013-03-04 15:55:44 +01:00
Mike Hearn
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. 2013-03-04 15:55:39 +01:00
Mike Hearn
00071d3cfc Add a couple of convenience features: peerGroup.addAddress(InetAddress) and an AbstractBlockChainListener class. 2013-03-04 15:55:35 +01:00
Mike Hearn
43b1ae1a29 Remove redundant and buggy expression in the check for whether to send a bloom filter. 2013-03-02 11:52:46 +01:00
Mike Hearn
6799dcc348 Refuse to create transactions larger than the max standard size. 2013-03-01 19:48:45 +01:00
Mike Hearn
1c8ee2b116 Upgrade to the latest Netty. Resolves issue 321. 2013-03-01 16:44:27 +01:00
Mike Hearn
018dcd345c Fix a couple of ordering issues with the unit tests. 2013-03-01 16:23:07 +01:00
Mike Hearn
34f3d8b088 Minor comment fix in Block.java 2013-03-01 14:30:28 +01:00
Mike Hearn
301299cff9 Don't print difficulty transition times when it's less than 50 msec. 2013-03-01 14:30:23 +01:00
Mike Hearn
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. 2013-03-01 14:30:17 +01:00
Mike Hearn
049baad8c6 Avoid trying to resolve dependencies of newly solved orphan blocks when we are still downloading headers. 2013-03-01 14:30:11 +01:00
Mike Hearn
a837bd2885 Add a logo. 2013-03-01 13:59:48 +01:00
Mike Hearn
fbc14c1040 Make NetworkParameters singleton and (mostly) immutable.
Resolves issue 51.
2013-02-28 19:39:05 +01:00
Mike Hearn
559df0b3f8 Trivial cleanup 2013-02-28 19:27:13 +01:00
Mike Hearn
55898d3ee3 Fix a redundant null comparison, clears one more findbugs warning. 2013-02-28 18:38:28 +01:00