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.
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
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.
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.
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.
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).
* `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.