Commit Graph

5027 Commits

Author SHA1 Message Date
Sean Gilligan
0080f79a05 base: remove all (deprecated) usage of Networks.get()
Remove `DefaultAddressParserProvder.fromNetworks()` and everything that
depends on it. All methods being removed were previously deprecated.

Removing `DefaultAddressParserProvder.fromNetworks()` propagates to the
3 AddressParser getLegacy() methods and several other deprecated methods
in Address, LegacyAddress, and Segwit Address.

This change means that nothing in `o.b.base` will use the global list of
supported networks stored in `Networks`. This is a mechanism we previously
added to support other Bitcoin-compatible networks and their addressing
schemes (e.g. LiteCoin.) "Alt networks" are still supported, but
applications using them will need to create their own implementations
of AddressParser to do it. We hope to eventually entirely remove the global
state returned by Networks.get(), but this PR is just about removing
its usage from `o.b.base`.

Note: this also removes all uses of javax.annotation.Nullable from
o.b.base. There are still instances of @NonNull which we should
probably leave in until we move to JSpecify.
2024-08-29 23:33:26 +02:00
Andreas Schildbach
c967c6045c build.gradle: remove sourceCompatibility, targetCompatibility
We have defined `release` one way or another, and on JDK 17 that should
suffice.
2024-08-29 23:07:30 +02:00
Andreas Schildbach
34c1e4b708 build.gradle: use tasks.withType() to apply options to tests as well 2024-08-29 22:56:59 +02:00
Andreas Schildbach
94bb527447 build.gradle: migrate --release compiler option to compileJava.options.release for wallettemplate, examples-kotlin, integration-test
For the remaining modules, we're still using Gradle 4.4 so we can't do the same.
2024-08-29 22:01:24 +02:00
Andreas Schildbach
30761fa02f settings.gradle: prevent printing "Gradle Gradle" 2024-08-29 17:18:01 +02:00
Andreas Schildbach
a8d4bbc6c7 README: update Java requirement for wallettool, tools, examples 2024-08-29 17:03:42 +02:00
Andreas Schildbach
9a61a23f0a build.gradle: target Java 17 for wallettool, tools, integration-test, examples, examples-kotlin 2024-08-29 16:18:43 +02:00
Andreas Schildbach
a08f442d82 build.gradle: update Gradle plugin for GraalVM to 0.10.2 2024-08-28 20:24:53 +02:00
Andreas Schildbach
48a11221d7 gradle.yml, graalvm.yml: update Ubuntu to 24.04 2024-08-28 20:05:31 +02:00
Andreas Schildbach
2104a1e876 gradle.yml: add Gradle 7.3 to the build matrix
This is the lowest version we support at the moment (apart from Debian
Gradle). We should prevent it regressing without us noticing.
2024-08-28 12:06:24 +02:00
Andreas Schildbach
1421564fce README: update jitpack link for release branch to 0.17 2024-08-28 09:52:42 +02:00
Sean Gilligan
906f6d5e3b README: use nested bullets for Gradle requirements
This is minor change for readability.
2024-08-28 09:41:15 +02:00
Andreas Schildbach
0f9f487542 settings.gradle: require JDK 17 for the build 2024-08-28 00:26:16 +02:00
Andreas Schildbach
dc3897b867 settings.gradle: require Gradle 7.3 or later
Two reasons for picking that particular version:
* it enables us to replace all previous Gradle-related conditionals in this file
* it's required for official support of Java 17
2024-08-28 00:01:40 +02:00
Andreas Schildbach
8873915804 settings-debian.gradle: separate out settings for builds on Debian Gradle 4.4
This is meant to prepare for improvements to the regular `settings.gradle` file.
2024-08-27 09:24:44 +02:00
Andreas Schildbach
a2642d8af7 prepare 0.18-SNAPSHOT 2024-08-23 16:46:19 +02:00
Andreas Schildbach
ba60554425 optimize imports 2024-08-21 13:32:13 +02:00
Andreas Schildbach
e51f1630df build.gradle: update Guava to 33.3.0-android 2024-08-21 13:12:59 +02:00
Sean Gilligan
58ca59ba53 TorUtils: move to o.b.core.internal
It is only used by PeerAddress, so it makes sense for it to be in the
same package as PeerAddress. This removes a Guava dependency from
the o.b.crypto package/module.
2024-08-19 20:14:07 +02:00
Sean Gilligan
3ded6f9c66 ECKey, BtcFormat: fix bad JavaDoc @link tags
JDK 23 fixes a bug that allowed these invalid links:
https://bugs.openjdk.org/browse/JDK-8164094

This PR fixes the invalid links and does not require JDK 23, but
does fix our build so it will work with JDK 23.
2024-08-15 08:39:03 +02:00
Sean Gilligan
b2c8d15864 gradle.yml, graalvm.yml: update Gradle to 8.10
Gradle 8.10 supports JDK 23.
2024-08-15 08:32:28 +02:00
Sean Gilligan
d394ce63a5 DefaultAddressParserProvider: deprecate fromNetworks()
It was already package-private and is only used by deprecated methods
in `AddressParser`.
2024-08-06 00:41:27 +02:00
Sean Gilligan
c27947d0da gradle.yml, graalvm.yml: update Gradle to 8.9 2024-08-05 09:41:03 +02:00
Andreas Schildbach
863751de85 build.gradle: update JavaFX to 21.0.4 2024-08-03 10:16:43 +02:00
Andreas Schildbach
73e2663efa build.gradle: update FontAwesomeFX to 8.0.13 2024-08-03 10:16:36 +02:00
Andreas Schildbach
78631379f2 build.gradle: update Jakarta Annotations to 3.0.0 2024-08-03 10:16:36 +02:00
Andreas Schildbach
e6c08f5df1 build.gradle: update ZXing to 3.5.3 2024-08-03 10:16:36 +02:00
Andreas Schildbach
a91321af91 build.gradle: update JUnit 5 to 5.10.3 2024-08-03 10:16:36 +02:00
Andreas Schildbach
33a69dcebe build.gradle: update Hamcrest to 3.0 2024-08-03 10:16:36 +02:00
Andreas Schildbach
5231112ffa build.gradle: update Jackson to 2.17.2 2024-08-03 10:16:36 +02:00
Andreas Schildbach
d56f51ad3b build.gradle: update EasyMock to 5.4.0 2024-08-03 10:16:36 +02:00
Andreas Schildbach
eb8b415d99 build.gradle: update SLF4J to 2.0.13 2024-08-03 10:16:36 +02:00
Andreas Schildbach
32c05aeb8d build.gradle: update protobuf-javalite to 4.27.3 2024-08-03 09:37:46 +02:00
Andreas Schildbach
20ac61ea23 build.gradle: update Guava to 33.2.1-android 2024-08-03 09:34:29 +02:00
Andreas Schildbach
0c1828a302 Prepare 0.17-SNAPSHOT 2024-08-02 12:55:08 +02:00
Andreas Schildbach
739ff511de Tag 0.17-alpha5 2024-08-02 10:06:41 +02:00
Andreas Schildbach
6a2e01bfed checkpoints.txt: refresh bundled checkpoints 2024-08-02 10:04:15 +02:00
Andreas Schildbach
fcb36eb06b SPVBlockStore: support 32 byte chain work
Existing V1 files are automatically migrated to V2 format.

Includes a test for migration from V1 to V2 format. This requires
`getRingCursor()` to be changed from private to package-private.
2024-08-01 17:20:36 +02:00
Andreas Schildbach
effe62b649 SPVBlockStore: don't pass buffer into setRingCursor(), getRingCursor()
It's available as a field already.
2024-07-25 21:24:02 +02:00
Andreas Schildbach
16388844ab SPVBlockStore: rewind buffer directly before accesses to magic header
This is meant to make sure the buffer position is always right.
2024-07-15 08:13:43 +02:00
Andreas Schildbach
b3d7c6aae3 SPVBlockStore: compare magic header as bytes, not string
This gets rid of several bytes to/from string conversions.
2024-07-14 22:57:20 +02:00
Andreas Schildbach
77de8684e9 SPVBlockStore: deprecate constant HEADER_MAGIC
It's an implementation detail. We should be switching this to private in future.
2024-07-12 12:59:41 +02:00
Andreas Schildbach
147e479e63 SPVBlockStore: lock the store file as early as possible 2024-07-12 12:17:53 +02:00
Andreas Schildbach
ce126353a2 BuildCheckpoints: create mixed-format checkpoints
Create checkpoints with 12 (or less) bytes of work in the old V1 format,
otherwise V2. This will make checkpoint files easier to review.

This un-deprecates the V1 format in StoredBlock, since it's no longer
planned to remove that in the forseeable future.

This also reverts recent changes to the bundled checkpoints
(commit de8afc67ca).
2024-07-01 15:53:03 +02:00
Andreas Schildbach
de8afc67ca CheckpointManager, BuildCheckpoints: support checkpoints with 32 byte chain work
* `BuildCheckpoints` now always creates checkpoints with 32 byte chain work
* `CheckpointManager` knows how to read both 12 and 32 byte chain work

Also updates the bundled checkpoints to the new format and a test.
2024-06-28 18:50:45 +02:00
Andreas Schildbach
db329beca5 CheckpointManager, BuildCheckpoints: remove support for binary checkpoint format
Use the textual format instead.
2024-06-27 21:21:45 +02:00
Andreas Schildbach
f5c36e1a80 checkpoints.txt: refresh bundled checkpoints 2024-06-27 20:41:27 +02:00
Andreas Schildbach
a1257ce83d StoredBlock: add serializeCompactV2(), deserializeCompactV2()
The old format will soon run out of bytes for the chain work value.

Also deprecates the old methods and adds tests for the V2 format.
2024-06-27 18:23:29 +02:00
Andreas Schildbach
39f409f351 StoredBlock: rework comment about usage of serializeCompact(), deserializeCompact()
The explicit list of usages was already stale. Rather, just mention
it's being used internally.
2024-06-27 09:05:38 +02:00
Andreas Schildbach
a05fc05e56 StoredBlockTest: add tests for serializeCompact(), deserializeCompact(), moreWorkThan() 2024-06-27 08:59:28 +02:00