Commit Graph

5087 Commits

Author SHA1 Message Date
Sean Gilligan
e650f0f160 build.gradle: update Jackson to 2.15.3 2023-10-24 11:52:39 +02:00
Sean Gilligan
b8b64a339a build.gradle: update SLF4J to 2.0.9 2023-10-24 11:48:23 +02:00
Sean Gilligan
1b16d0b87f build.gradle: update Guava to 32.1.3-android 2023-10-24 11:46:11 +02:00
Sean Gilligan
ac9967b1d9 .gitlab-ci.yml: enable Gradle Build Scan 2023-10-24 11:44:20 +02:00
Sean Gilligan
474d8d91f7 gradle.yml, graalvm.yml: enable Gradle Build Scan
Adds a Gradle initialization script to non-interactively agree to the
Gradle Build Scan terms of service. Provided by Stefan Wolf via GitHub
Issues, see

https://github.com/gradle/gradle/issues/26316#issuecomment-1739245349

Tested with Gradle 4.4 to Gradle 8.4.
2023-10-15 14:11:08 +02:00
Sean Gilligan
bfae3a8913 gradle.yml: update JDK to 21 in the build matrix 2023-10-13 00:48:14 +02:00
Andreas Schildbach
d326fadda0 WalletTool, BitcoinURITest: update fictious example URLs
- Use a subdomain of `example.com`
- Use HTTPS, though not strictly necessary with BIP-70
- Strip the `.php` suffix
2023-10-11 10:35:32 +02:00
Andreas Schildbach
432fa51168 EncryptedData, KeyCrypter, KeyCrypterScrypt: update links to MIT license 2023-10-09 10:11:33 +02:00
Sean Gilligan
531ba5cfd5 gradle.yml, graalvm.yml: update Gradle to 8.4 2023-10-05 10:48:58 +02:00
Sean Gilligan
f190f589e6 TransactionBroadcast: allow interrupt in dropPeerAfterBroadcastHandler()
If an `InterruptedException` occurs while sleeping in `dropPeerAfterBroadcastHandler()`,
close the peer immediately instead of delaying the exception to preserve a full 1-second
delay.

Peers/PeerGroups can be shut down, and they should shut down as quickly as possible.
2023-10-03 23:03:02 +02:00
Sean Gilligan
b959b7bdfb KeyDerivationTasks: use Thread.sleep() instead of Guava Uninterrruptables
We don't really need to sleep uninterrruptibly here. The code is only displaying
a progress indicator and the `call()` method is already throwing `Exception`.
2023-10-02 21:47:43 +02:00
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