Mike Hearn
a1562836be
Payment protocol: Make PaymentSession use a global thread pool that uses daemon threads.
...
Fixes a 60 second hang that could occur in wallet-tool once the send request was processed. Fixing this revealed another bug - WalletTool was depending on this VM shutdown delay caused by the worker pool timeout, so clean up the code and replace with a blocking get of the future.
Also support the --offline and --password flags when using the payment protocol.
2014-01-28 13:58:08 +01:00
Mike Hearn
ddec4f9106
Allow Bitcoin URI's that don't have any address component if the r= payment protocol param is there.
2014-01-28 13:04:09 +01:00
Kevin Greene
3966875e8e
Adding support for processing PaymentRequests.
2014-01-28 09:46:51 +01:00
Simon de la Rouviere
4ca476ff35
When throwing InsufficientMoneyException, the amount of satoshis missing is required. When the server requests too much value, it is stored so that implementations of the client has access to it.
2014-01-25 18:14:06 +01:00
Matt Corallo
bd5c4e73e7
Prevent memory blowup on orphan storage
2014-01-23 10:37:47 +00:00
Ken Sedgwick
1a3c3be665
BIP-0039 multiple version support.
2014-01-19 09:46:47 +01:00
Mike Hearn
654543bb2b
BlockingClient: some fixes for Orchid
2014-01-15 23:16:04 +01:00
Mike Hearn
ae1e3691f5
WalletAppKit: Allow subclasses to fiddle with some more stuff.
...
This isn't really a stable or supportable API, but bitcoinj does not have a stable API, so live and let live.
2014-01-15 21:26:53 +01:00
Mike Hearn
80d4840199
Threading: prefer OOM to deadlock when the user thread is saturated, but keep the warning.
2014-01-15 17:56:10 +01:00
Mike Hearn
a9a7dd9e06
Lower the priority of the networking thread to avoid competing with UI threads.
2014-01-15 15:11:31 +01:00
Mike Hearn
8e58839d81
Wallet: Short-circuit runnable creation if executor is SAME_THREAD
2014-01-15 01:56:07 +01:00
Mike Hearn
b8a1976422
Fix an edge case bug I just introduced a few minutes ago with the txConfidenceListener changes, and document.
2014-01-14 19:24:49 +01:00
Mike Hearn
3a405302bb
More memory optimisations.
...
Run the wallet txConfidenceListener on the calling thread. Move tx broadcast that occurs inside setTransactionBroadcaster outside the wallet lock to avoid inverting on the mempool class (via PeerGroup, but that doesn't lock on the broadcast path).
This makes memory usage smoother by avoiding the creation of tons of closures and spamming the event thread with them.
2014-01-14 19:06:06 +01:00
Mike Hearn
d7b3766c4b
Memory optimisations to avoid OOM when the user thread falls behind.
...
- Remove needless recalculations of the Bloom filter on any wallet change, instead of just when keys/scripts are added. This may fix one of the privacy leak issues too.
- Run fast catchup/filter recalculations on the dedicated PeerGroup thread instead of abusing the user thread. Resolves a TODO.
- Replace the user thread SingleThreadedExecutor with a custom class that blocks the submitting thread and logs a warning if the queue is saturated, to avoid building up a backlog of closures.
2014-01-14 18:49:09 +01:00
Mike Hearn
e0b698a2e9
Threading: experiment with limiting the user/event thread to 100 pending closures.
2014-01-14 15:25:38 +01:00
Mike Hearn
941bf330a4
Script: intern commonly used chunks.
2014-01-13 14:58:31 +01:00
Mike Hearn
843489111e
Quick hack to try and reduce memory consumption for Androids.
...
Takes a test wallet from around 11.3mb to 9.6mb
2014-01-13 14:58:31 +01:00
Mike Hearn
d50412e24c
Wallet: log exceptions during save.
2014-01-13 14:25:01 +01:00
gubatron
0c2f362795
refactor s/Utils.now().getTime()/Utils.currentTimeMillis()/g
2014-01-07 16:16:02 +01:00
Mike Hearn
7324798242
Remove some superfluous methods in HDUtils
2014-01-07 15:23:26 +01:00
Mike Hearn
34e2d1596f
Address: rename a static ctor method to be more accurate.
2014-01-07 15:22:00 +01:00
Mike Hearn
351299c9ab
Add a new DNS seed from Chris Decker.
...
Vouch: Chris is a researcher at ETH Zurich who I have met several times. He has run several useful experiments and analyses on the Bitcoin network.
2014-01-06 15:23:35 +01:00
Mike Hearn
d0cd770d62
Cleanup.
...
Add lots more nullity annotations.
Clear lots of nullity static analysis warnings.
Delete some dead code.
Simplify a few expressions.
Resolves issue 317.
2013-12-24 00:40:19 +00:00
Devrandom
3d99be48bc
Priority queue and exponential backoff for PeerGroup
...
Connect to peers in a service loop thread.
Resolves issue #159
Resolves issue #503
2013-12-23 22:57:19 +00:00
Mike Hearn
b0ce535aa9
PeerGroup: clear some static analysis warnings. Remove dead code.
2013-12-23 21:45:01 +00:00
Mike Hearn
aaa539bd80
Networking: bump default connect timeout to 5 seconds.
...
Improve some logging.
2013-12-23 20:00:24 +00:00
Mike Hearn
1f37350161
Transaction: clear a couple of static analysis warnings.
2013-12-22 19:13:41 +01:00
Mike Hearn
c5665d68b5
Wallet: misc cleanups.
...
Clear some static analysis warnings.
Throw more appropriate exception types in some cases.
Add a few internal assertions.
Better nullity annotations.
2013-12-22 19:13:23 +01:00
Mike Hearn
f318808cf7
Clean up WalletTransaction and serialization code a bit.
2013-12-22 19:04:24 +01:00
Mike Hearn
b3673999d4
Move WalletTransaction into the wallet package.
2013-12-22 18:48:46 +01:00
Mike Hearn
43460f451a
MnemonicCode: Clean up a bit.
2013-12-20 17:35:11 +01:00
Ken Sedgwick
29e2af7ec0
Update to latest version of mnemonic code spec from the Trezor team.
2013-12-20 17:15:24 +01:00
Mike Hearn
8cc1920fa2
ECKey: use sumOfTwoMultiples for better/faster key recovery.
...
Thanks to Peter Dettman for the tip. Resolves issue 492.
2013-12-15 14:55:43 -08:00
Mike Hearn
e9bf717409
ConnectionHandler: Remove a always-true if condition.
2013-12-15 09:31:07 -08:00
Mike Hearn
25a08c6d75
NioClientManager: minor fix revealed by static analysis.
2013-12-15 09:29:59 -08:00
Mike Hearn
42e75b86cf
PeerGroup: add a couple of missing nullable annotations
2013-12-15 09:27:38 -08:00
Matt Corallo
c61ec5023e
Fix race in TestWithNetworkConnections
...
There was a nasty bug where a connection-failed interrupt was
run afer any interruptible calls were made, making the next
test-case fail due to interruption.
2013-12-15 09:27:19 -08:00
Mike Hearn
f7a944983c
ECKey: use Bouncy Castle to decompress keys. Thanks to Peter Dettman for the hint. Resolves issue 493.
2013-12-14 14:12:52 -08:00
Mike Hearn
8f48b119b7
AbstractBlockChain: minor style fixes from the inspector.
2013-12-14 13:35:22 -08:00
Mike Hearn
30455cb5ce
Suppress some more info logging and update some javadocs.
2013-12-14 13:21:33 -08:00
Devrandom
462c75324e
Faster FP tracking using double exponential
2013-12-14 12:42:44 -08:00
Mike Hearn
1293e42aa3
BloomFilter: minor readability tweak
2013-12-14 11:42:41 -08:00
Matt Corallo
2f29660d0d
Fix broken test case.
2013-12-14 01:11:52 -05:00
Mike Hearn
77f99a596f
Log balance in wallet.toString better
2013-12-13 16:57:28 -08:00
Mike Hearn
cdfa0ae61b
ECKeyTest: once again, fix a flaky decrypt test. There's no MAC on the encrypted bytes so you can't assume padding checks will always catch corrupted data.
2013-12-13 16:08:54 -08:00
Devrandom
7e4f6369e4
Clean up false positive handling, add unit test
2013-12-13 16:00:42 -08:00
Devrandom
ba9415b3ee
Force update Bloom filter when false positive rate gets high
2013-12-13 16:00:41 -08:00
Devrandom
751434ba7c
Fix bloom filter sizing with watched scripts
2013-12-13 15:59:07 -08:00
Mike Hearn
86b42b7fe5
Remove disconnectOldVersions2 as it tests nothing, probably a bad merge conflict.
2013-12-13 15:55:08 -08:00
Mike Hearn
e4e2e60627
Fix DnsDiscovery javadocs and make a couple of fields final.
2013-12-13 09:29:08 -08:00