Commit Graph

5001 Commits

Author SHA1 Message Date
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
Andreas Schildbach
009f19abc1 StoredBlock: remove an outdated comment
We don't have unsafeBitcoinSerialize() any more.
2024-06-26 23:32:47 +02:00
Andreas Schildbach
c12fa3bf74 .gitlab-ci.yml: remove build with OpenJDK 21 under Debian Trixie
Trixie doesn't carry OpenJDK 21 any more. Because OpenJDK support
under Debian is a moving target, it's better to remove it until
Trixie is released. Otherwise, CI builds will start failing at any
time.
2024-06-25 09:14:05 +02:00
Sean Gilligan
32e9145722 StoredBlock: update comment about CHAIN_WORK_BYTES
The original comment, written in 2011 said "12 bytes should be plenty for now".
As of June 2024, we know that 12 bytes is not enough.
2024-06-24 19:14:38 +02:00
Sean Gilligan
0aa17cd0a2 ByteUtils: improve JavaDoc comments for bigIntegerToBytes(), bytesToBigInteger() 2024-06-24 19:11:16 +02:00
Sean Gilligan
fae543bb6d StoredBlock: use ByteUtils.bigIntegerToBytes to convert chainWork
This is a fix for Issue #3410 that will allow main net blocks above
849,137 to be processed. As of block 849,138 we can no longer fit
total chainwork in a 12-byte *signed* field. This fix "kicks the can
down the road" by making the field 12-bytes *unsigned*.

We should open a new issue to address the long term need for bigger
values. Note that converting the field to 12-byte unsigned precludes
us from using the most-significant bit as a flag for a new format, but
we should be able to pick some arbitrary value, say 0xA0 as a version
flag and declare that values less than 0xA0 are "unversioned".
2024-06-23 18:49:54 -04:00
itorod
15b0ffeccb Kit: fix typo in printed string 2024-06-02 00:14:33 +02:00
Andreas Schildbach
d265ea0aa8 ECKey: remove mention of mailing list in documentation 2024-06-01 23:58:11 +02:00
Sean Gilligan
d975d777ee gradle.yml, graalvm.yml: update Gradle to 8.8 2024-06-01 23:57:04 +02:00
Sean Gilligan
2d201bb150 build.gradle: update Kotlin to 2.0.0 2024-06-01 23:53:45 +02:00
Sean Gilligan
f268eb0cbf ForwardingService: remove listener properly
The listener wasn't being removed properly, because using a method
reference in both add and remove generated two different objects and
therefore the remove method wasn't finding and removing the listener
that was previously added.

By saving the listener created by the method reference, we can remove
it later.
2024-06-01 23:50:12 +02:00
itorod
960b254b9d ForwardingService: various improvements
* move parsing of args to main
* create config default values
* simplify coin listener with send function
2024-06-01 23:43:29 +02:00
itorod
5bc597541f ForwardingService: add Kotlin example
This is adding an `examples-kotlin` sub-project.
2024-05-14 20:19:29 +02:00
Andreas Schildbach
6feeb5a1c0 TransactionConfidence: rename getLastBroadcastTime() method from lastBroadcastTime()
This effectively reverts commit c2cabead9a.
2024-05-14 17:51:00 +02:00
Andreas Schildbach
ff42c49648 PeerGroup: rename getFastCatchupTime() method from fastCatchupTime()
This effectively reverts commit 45f87d8339.
2024-05-14 17:51:00 +02:00
Andreas Schildbach
781d64550b Script: rename getCreationTime() method from creationTime()
This effectively reverts commit b309308076.
2024-05-14 17:51:00 +02:00
Andreas Schildbach
2199c7a577 build.gradle: updade picocli to 4.7.6 2024-05-08 12:52:19 +02:00
Oliver Aemmer
70fb77d2d1 wallet.proto: rename to Key.Type.ENCRYPTED from ENCRYPTED_SCRYPT_AES 2024-05-05 14:24:59 +02:00
Andreas Schildbach
92c2c29508 Prepare 0.17-SNAPSHOT 2024-04-29 20:13:45 +02:00
Andreas Schildbach
e42c59b818 Tag 0.17-alpha4 2024-04-29 20:12:26 +02:00
Andreas Schildbach
b292679aa4 build.gradle: update Bouncy Castle to 1.78.1 2024-04-29 12:19:49 +02:00
Sean Gilligan
bd0a36b1e5 build.gradle: update equalsverifier to 3.16.1
This is needed for building with JDK 22.
2024-04-29 09:27:00 +02:00
Sean Gilligan
a68fdf1a3c examples: remove forwarding.py
This example is 8 years old, unsupported, and almost certainly doesn't work.
2024-04-29 09:25:22 +02:00
Sean Gilligan
a967a0f560 examples: remove JavaScript examples
These are old, unsupported, and almost certainly do not work as is.

We separately plan on replacing the JavaScript example on the documentation
site with a Kotlin example.
2024-04-29 09:23:46 +02:00
Sean Gilligan
a7c11c7019 ForwardingService: use Network.checkAddress(Address)
This makes things a little bit simpler and more readable.
2024-04-29 09:21:48 +02:00
Sean Gilligan
53a6b3e150 BitcoinNetwork: add address validation methods
There are use cases where an already parsed address needs to be validated
for a specific network. In one use case the address came from an external
source and needs validation with an error message displayed: that's what
`isValidAddress(Address)` is for. In the other case we can treat the invalid
address as a fatal error. That's `checkAddress(Address)`.
2024-04-29 09:19:18 +02:00
Sean Gilligan
f1a5ebe71e gradle.yml, graalvm.yml: fix Gradle Action deprecation warning
Remove `arguments` parameter from `setup-gradle` and add add a basic
`run` step with the actual `gradle` command.

This fixes a deprecation warning.
2024-04-28 00:34:05 +02:00