Commit graph

3005 commits

Author SHA1 Message Date
Andreas Schildbach
80228d7954 PeerGroup: Only select a download peer if more than maxConnections/2 peers are connected. 2019-12-08 13:02:31 +01:00
Andreas Schildbach
c2e1383b58 PeerGroup: Be more careful about selecting download peer.
We now select a (new) download peer only if there is a clear consensus about a common chain height between
connected peers. If there is a tie between two common heights, we stay safe and don't change anything.
2019-12-08 13:02:31 +01:00
Andreas Schildbach
924e525d52 PeerGroup: Move maxOfMostFreq() from Utils to here, as here is the only usage. 2019-12-08 11:11:01 +01:00
Andreas Schildbach
76071d8378 DatabaseFullPrunedBlockStore implementations: Make sure SegWit addresses fit into the openoutputs.toaddress column. 2019-11-29 11:43:26 +01:00
Andreas Schildbach
141e4024e6 Replace remaining System.currentTimeMillis() by the Utils equivalent.
This is important for using the mock clock in tests.
2019-11-26 17:58:45 +01:00
Andreas Schildbach
8b55b8c0a7 Make a couple of tests use the mock clock to improve test reproducibility. 2019-11-26 17:46:31 +01:00
Andreas Schildbach
d8cd74dbb3 Utils: Make mockTime field private.
Use the various setters.
2019-11-26 17:01:43 +01:00
Andreas Schildbach
af9400a650 PeerFilterProvider: Remove isRequiringUpdateAllBloomFilter().
Bloom filters will now always be created with UPDATE_ALL. With SegWit there is hardly any wallet
that can do without. This will save some locking.
2019-11-26 16:42:00 +01:00
Andreas Schildbach
c14e9240ad PeerFilterProvider: Rework JavaDoc. 2019-11-26 16:40:17 +01:00
Andreas Schildbach
35cec435cc CheckpointManager: Use a standard charset. 2019-11-20 18:51:53 +01:00
Andreas Schildbach
5948be6b91 CheckpointManager: Make clear that time is in seconds. 2019-11-20 18:51:53 +01:00
Andreas Schildbach
7d7ef1b494 CheckpointManager: Log time of latest checkpoint read. 2019-11-20 18:41:41 +01:00
Oscar Guindzberg
edb2fa8959 AbstractBlockChain: Print "Wallet/chain height mismatch" warning only if walletHeight > 0. 2019-11-10 21:02:05 +01:00
Oscar Guindzberg
a70fa1f708 SPVBlockStoreTest: Add block store deletion test. 2019-11-10 21:02:05 +01:00
Oscar Guindzberg
9f0c888aa1 Secp256k1Context: Use log.debug() instead of .info() when native secp256k1 cannot be used. 2019-11-10 21:02:05 +01:00
Oscar Guindzberg
c4e418f8ab MainNetParams: Update hardcoded seed node addresses - Apr 2019. 2019-11-10 21:02:05 +01:00
Oscar Guindzberg
2fa06e276f MainNetParams, TestNet3Params: Sync DNS seeds with Bitcoin Core. 2019-11-10 19:07:50 +01:00
Andreas Schildbach
d512d4fc37 Derive lock names from the class they protect.
Also append the word "lock" to the name.
2019-11-06 09:48:34 +01:00
Andreas Schildbach
ec851df530 ProtobufConnection: Remove unused class.
It was forgotten when removing Micropayment Channels.
2019-11-06 09:28:45 +01:00
Andreas Schildbach
f3b48f102f SPVBlockStore: Double the default capacity.
This has proven to be a sensible value for mobile devices.
2019-10-22 23:40:29 +02:00
Peter Dettman
7629677103 Track point compression in LazyECPoint, rather than ECPoint.
The reason is BouncyCastle 1.64 removed point compression tracking.
2019-10-22 19:13:27 +02:00
Andreas Schildbach
7eb9c73655 ECKey: Add helper method isPubKeyCompressed(), and use it. 2019-10-22 16:15:35 +02:00
Andreas Schildbach
5bcf947170 BloomFilterTest: Tidy up asserts. 2019-10-21 17:03:26 +02:00
Andreas Schildbach
b690803442 Update protobuf-java to 3.9.2. 2019-10-08 19:14:02 +02:00
Sean Gilligan
cc445b8fd1 BtcFormat: Fix "heading used out of sequence" JavaDoc error on JDK 13. 2019-10-01 22:02:51 +02:00
Andreas Schildbach
2288c2150f PeerGroup: Make private walletCoinsReceivedEventListener also take care of P2WPKH outputs.
P2WPKH outputs are a similar case as P2PK outputs in that inputs that spend them
cannot be matched by a bloom filter: their scriptSig is empty and their witness
(which would contain a matching pubkey) is not tested for a match. This is a
shortcoming of the SegWit spec.

Hopefully this fixes https://github.com/bitcoinj/bitcoinj/issues/1690
2019-10-01 21:44:46 +02:00
Andreas Schildbach
7f97c8afa6 Change wording p2pubkey to P2PK. 2019-10-01 20:33:07 +02:00
Shafiullah Rahman
30ccb23c1c UtilsTest: Add unit tests for org.bitcoinj.core.Utils. 2019-09-11 11:51:23 +02:00
Sean Gilligan
619e8805d6 Wallet: Improve JavaDoc for Wallet#commitTx and Wallet#maybeCommitTx. 2019-09-11 11:04:17 +02:00
Andreas Schildbach
a8230ad495 Peer: Wrap log.debug() in log.isDebugEnabled(). 2019-08-31 22:29:05 +02:00
Andreas Schildbach
1fbd280f14 AbstractBlockChain: Wrap log.debug() in log.isDebugEnabled(). 2019-08-31 22:28:26 +02:00
Andreas Schildbach
8db6639cf4 Peer: Raise log level when logging the setting of a filter. 2019-08-31 21:54:46 +02:00
Andreas Schildbach
726c7291ac Wallet: Remove global coinSelector and allowSpendingUnconfirmedTransactions().
Coin selection is a per SendRequest, per createSend() or per getBalance() call affair.
Having it wallet-global can lead to race conditions, as sometimes experienced in the
WalletTest unit tests.
2019-07-26 20:30:27 +02:00
Andreas Schildbach
a49f681d24 KeyCrypterScrypt: Print all Scrypt parameters, not only N. 2019-07-20 17:28:53 +02:00
Sean Gilligan
7d68fb7076 HDUtilsTest: Move parse and format HDPath tests to HDPathTest. 2019-07-20 11:05:43 +02:00
Sean Gilligan
86c461b7e1 AppDataDirectoryTest: Fix throwsIOExceptionIfPathNotFound() on macOS.
“:” is not an invalid character, but “\0” is.
2019-07-20 10:55:11 +02:00
Andreas Schildbach
1e55d72dc3 SendRequest: Add allowUnconfirmed() convenience method. 2019-07-15 12:26:14 +02:00
Andreas Schildbach
161bd68dd2 DefaultCoinSelector: Make it a singleton. 2019-07-15 12:07:27 +02:00
Andreas Schildbach
d67f060e27 Remove Micropayment Channels.
Now that HTLC-based bi-directional payment channels are state of the art, nobody will ever use the old style.
2019-07-15 11:05:14 +02:00
Sean Gilligan
e5a6808fd3 HDPath: M() and m() factory methods
Refactor existing of() factory methods to M() (for public key) and
add m() methods for private keys. Also add varargs methods.
2019-07-10 15:46:21 +02:00
Sean Gilligan
823a03db77 Move HDPath methods from HDUtils to HDPath
All HDPath-related methods in HDUtils are now deprecated and delegate
to HDPath. HDPath now contains parsePath code.
2019-07-07 10:13:26 +02:00
Sean Gilligan
b59add47a7 DeterministicKey: toString() output of creation time now corresponds with
getCreationTimeSeconds(), but we indicate if the creation time was inherited
from the parent.
2019-07-05 22:55:31 +02:00
Sean Gilligan
855c061c0c HDPath: Use varargs for extend() and add tests. 2019-07-05 22:40:38 +02:00
Tim Strasser
734fc9fdd0 AppDataDirectoryTest: Implement a test for case of invalid directory name 2019-07-05 12:12:48 +02:00
Sean Gilligan
a9dd62e34e Replace deprecated Guava Maps.newHashMap()
For JDK7+ `new` with the diamond syntax is preferred.
2019-07-05 12:08:14 +02:00
Sean Gilligan
ba922a910a Fix NPE in o.b.c.Utils runtime and os detection
If getProperty returns null calling toLowerCase results in NPE. Instead
we’ll use a default value and check for .equals(“”) in the following if.
2019-07-02 21:08:27 -07:00
Sean Gilligan
035839fdbf StoredBlock: Mark two constants as private. 2019-06-23 18:20:35 +02:00
Sean Gilligan
b9d88e20ef AbstractBlockChain: Fix typos in JavaDoc. 2019-06-23 18:12:42 +02:00
Sean Gilligan
474700ff50 StoredBlock: Add JavaDoc for constructor. 2019-06-23 18:11:43 +02:00
Sean Gilligan
99b019e5b0 New HDPath type to replace ImmutableList<ChildNumber>. 2019-06-23 14:20:15 +02:00