Sean Gilligan
7f341d9aab
KeyDerivationTasks: Use Duration
for PROGRESS_UPDATE_INTERVAL
2023-10-02 21:44:52 +02:00
Sean Gilligan
cb740d2eaa
PeerTest, PeerGroupTest: replace usage of Guava Lists
2023-10-02 21:10:08 +02:00
Sean Gilligan
647c7ecbd7
TransactionBroadcastTest: use AtomicLong
over Guava AtomicDouble
...
Use `AtomicLong` with some wrapping and unwrapping instead.
2023-10-02 21:06:17 +02:00
Sean Gilligan
1b63903ad3
TestWithPeerGroup: remove unneeded use of ListeningScheduledExecutorService
...
There is no longer a need to decorate `ScheduledThreadPoolExecutor` to support
`ListeningScheduledExecutorService` since `PeerGroup` no longer uses it.
2023-10-02 20:48:49 +02:00
Sean Gilligan
5513f7dff0
InternalUtils: new helper getUninterruptibly()
to replace Guava method
...
Update usages in `PeerGroup` and `PeerTest`.
2023-10-02 20:44:46 +02:00
Sean Gilligan
04a783282d
FakeTxBuilder: make BlockPair fields immutable
2023-10-02 20:38:48 +02:00
Sean Gilligan
fea737b39b
Address, AddressParser: improve JavaDoc regarding network normalization
2023-10-02 20:35:12 +02:00
Sean Gilligan
a5ab229f9f
WTUtils: remove redundant public
on interfaces
2023-10-01 16:47:33 +02:00
Sean Gilligan
a89e309d66
ClickableBitcoinAddress: make address
property final
2023-10-01 16:45:29 +02:00
Sean Gilligan
b0ef27a019
WalletSetPasswordControllerTest: test key derivation time
...
Ensure key derivation time with `WalletSetPasswordController#SCRYPT_PARAMETERS`
isn't inordinately slow. This is in preparation for some forthcoming changes to
the progress meter in `WalletSetPasswordController`.
2023-10-01 16:06:58 +02:00
Sean Gilligan
d9e33a553a
build.gradle: enable JUnit 5 for wallettemplate
2023-10-01 15:51:32 +02:00
Sean Gilligan
3dd29e2d3a
build.gradle: apply artifact normalization to all subprojects
...
Normalization is needed for reproducibility. Previously it was
applied only to `core`.
2023-10-01 09:41:06 +02:00
Andreas Schildbach
a9b9af8102
PeerGroup: check required services on discovered addresses via addr/addrv2
...
If the discovered peer has the required services, mark it with a slightly
higher priority than peers discovered via `PeerDiscovery`.
2023-10-01 09:27:43 +02:00
Sean Gilligan
1a30c00df8
WalletTool: remove unused/obsolete print help code
...
This code has been unused since the conversion to picocli which generates
help text and automatically handles printing it. The `wallet-tool-help.txt`
file was deleted in the commit with the picocli implementation.
Note: this also removes the last use of Guava in WalletTool.
2023-10-01 01:11:12 +02:00
Sean Gilligan
41885df896
PrintPeers: remove unused imports
...
This is the last Guava import in `examples`.
2023-09-30 18:33:13 +02:00
Sean Gilligan
2526f5c78a
BitcoinSerializer: use Network
not NetworkParameters
...
Also deprecate (unused) method `getParameters()`.
2023-09-30 18:27:28 +02:00
Andreas Schildbach
8bf4f57888
BitcoinSerializer: remove a whitespace at EOL
2023-09-30 18:23:37 +02:00
Sean Gilligan
eefadef5f6
build.gradle: update JavaFX to 21
2023-09-30 18:15:36 +02:00
Andreas Schildbach
6686782ffa
ECKey: remove native interface to libsecp256k1
...
Of course, Bouncy Castle is still used.
2023-09-30 18:06:55 +02:00
Sean Gilligan
576adf229b
PBKDF2SHA512: remove redundant Mac.reset()
calls
...
Calls to `Mac.reset()` are not needed after `Mac.doFinal(input)`.
2023-09-25 15:21:13 +02:00
Sean Gilligan
3023188541
PBKDF2SHA512: simplify F()
by using ByteUtils.concat()
2023-09-25 15:14:07 +02:00
Sean Gilligan
053cd60dc5
PBKDF2SHA512: chain methods in INT()
...
Simplify slightly by using a more functional-style approach.
2023-09-25 15:11:15 +02:00
Sean Gilligan
e67401d7a5
PBKDF2SHA512: add JavaDoc comment to derive()
method
2023-09-25 15:08:00 +02:00
Andreas Schildbach
0d57e1ece1
MnemonicCode: fix comment about iteration count
2023-09-25 15:04:17 +02:00
Andreas Schildbach
3ef7a4d853
.gitlab-ci.yml: remove publishing of artifacts for CI builds
...
We have our reference build now and all published artifacts go
through that one.
2023-09-25 14:34:42 +02:00
Sean Gilligan
c7cd7200fb
.gitlab-ci.yml: print sha256sum of build artifacts
...
Add printing of `sha256sum` for core and wallet-tool binaries. Do this
for the reference build and the three CI builds.
2023-09-25 14:05:12 +02:00
Andreas Schildbach
dc7e488819
.gitlab-ci.yml: test ability to publish core into a maven repository
...
Add it to all three CI build jobs.
2023-09-21 23:52:12 +02:00
Sean Gilligan
7988870f8a
.gitlab-ci.yml: test ability to create the wallet-tool distribution too
...
Add it to all three CI build jobs.
2023-09-21 22:14:48 +02:00
Andreas Schildbach
73690baa71
.gitlab-ci.yml: add our reference build
2023-09-21 20:36:39 +02:00
Sean Gilligan
64b5e02a5c
graalvm.yml: add JDK 21 to the matrix
...
This also requires updating to the latest Gradle GraalVM Plugin,
which requires Gradle 7.4 or later.
Recent Gradle GraalVM Plugins don't require the `javaLauncher` setting (which
we had hardcoded to use JDK 17) so that setting is removed.
2023-09-21 19:38:43 +02:00
Sean Gilligan
1952d1cc7f
graalvm.yml: remove unneeded declaration of native-image component
...
This is not needed with GraalVM 17 and will cause an error with GraalVM 21.
2023-09-21 19:33:53 +02:00
Andreas Schildbach
bb95ea18d1
build.Containerfile: update reference build to use JDK 17
...
Also updates the container to Debian Bookworm, because we need
its specific (patched for JDK 17) Gradle version.
Note this change makes the JavaDoc build artifact reproducible.
2023-09-21 19:12:45 +02:00
Andreas Schildbach
b6b29a659b
build.Containerfile: reproducible reference build via containerization
...
Currently, buildah, Podman and Docker are supported.
The goals of the reference build are:
- Make our release process more transparent
- Improve reproducibility by shielding our build from the hosts
environment
- Reduce the trust necessary for running our build by shielding
the hosts environment from possible side effects of our build
Note both the signing and the uploading of release artifacts are out
of scope for the reference build.
2023-09-21 11:46:34 +02:00
Sean Gilligan
56658e44de
build.gradle: normalize file/directory permissions within JARs
...
This aims to make our build reprodicible.
2023-09-19 14:00:38 +02:00
Andreas Schildbach
f41b495610
build.gradle: strip timestamps from JavaDoc HTMLs
...
This aims to make our build reprodicible.
2023-09-16 22:09:51 +02:00
Andreas Schildbach
7605fa9535
build.gradle: strip timestamps from JARs
...
This aims to make our build reprodicible.
2023-09-16 22:08:45 +02:00
Andreas Schildbach
b8d2521c12
README: add JDK 21 to list of tested builds
2023-09-16 13:50:41 +02:00
Sean Gilligan
81b78292e2
PeerGroup, FilterMerger: deprecate setting false-positive rate
...
In the bitcoinj code itself, the false-positive rate is never changed
after constructing a `PeerGroup` or a `FilterMerger`.
* Deprecate methods for setting Bloom Filter FP rate in both methods
* Add constructor params to `PeerGroup` so they can be set at construction
time, if non-default values are needed
2023-09-16 11:42:24 +02:00
Sean Gilligan
5955eee4c8
Wallet: replace Interables.concat()
with Stream.concat()
in getWatchedOutputs()
...
This simplifies the code and removes a Guava dependency.
2023-09-16 11:31:32 +02:00
Sean Gilligan
68e61d9507
Wallet: refactor getWatchedOutputs()
to use streams
...
1. Get a spliterator from the concatenated iterator
2. Use streams instead of nested loops
3. Extract `isWatchedScriptPubKey()` helper function
2023-09-16 11:28:56 +02:00
Sean Gilligan
bce4475aaf
replace Guava Bytes.concat()
with own ByteUtils.concat()
2023-09-16 11:22:11 +02:00
Sean Gilligan
daa4da8d9f
remove use of Guava @VisibleForTesting
on all package-private members
...
From now on we will only use this annotation on `public` or `protected` members.
2023-09-16 11:13:22 +02:00
Sean Gilligan
57b3649e55
PBKDF2SHA512: replace unneeded check for max dkLen
with comment
...
Since the check for `dkLen > (2^32 - 1) * H_LEN` is effectively a no-op,
replace it with a comment.
2023-09-16 09:07:50 +02:00
Sean Gilligan
b4f7deaba5
PBKDF2SHA512: calculate l
with integer math
2023-09-14 22:46:25 +02:00
Sean Gilligan
5a11957eb3
PBKDF2SHA512: declare/catch specific exceptions
...
Make it more clear which exceptions are thrown by `F` and caught by
the `try` in `derive()`.
2023-09-14 22:39:58 +02:00
Sean Gilligan
ee23c2d6ff
PBKDF2SHA512: don't allow negative count or dkLen
2023-09-14 22:37:09 +02:00
Sean Gilligan
140deb0669
PBKDF2SHA512: move dkLen check out of try/catch
...
It throws an exception so doesn't need an if/else
and it also doesn't need to be in the try.
2023-09-14 22:34:12 +02:00
Sean Gilligan
4e039df446
PBKDF2SHA512: make hLen a constant
2023-09-14 18:25:31 +02:00
Sean Gilligan
c830107bce
PBKDF2SHA512: set hLen to correct value of 64
...
This is a bugfix to the API, but since `MnemonicCode` always
passes `dkLen` of 64 and the `System.arraycopy()` on line 66 truncates
`baos.toByteArray()` to `dkLen` length, the call to `derive()` works
correctly for our use-case.
2023-09-14 18:21:53 +02:00
Andreas Schildbach
4b987cb172
PBKDF2SHA512: remove comment about SHA-1 test vectors
...
They won't pass against our SHA-512 based code, and we have
our tests now.
2023-09-14 17:07:23 +02:00