Skip to content

1.9.2

Compare
Choose a tag to compare
@github-actions github-actions released this 16 Jun 23:01
· 994 commits to master since this release
3154362

1.9.2

This release is backwards compatible with the 1.9.2 release of bitcoin-s

See the individual module sections for more information on lower level updates to the codebase.

Want to get started quickly? See our docker-compose.yml file. See instructions here

If you are a typescript developer, you can access the backend via our typescript library

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.2.zip and then run it with chmod +x ./bin/bitcoin-s-server && ./bin/bitcoin-s-server to start the node. You will need to
configure the node properly first, you can find example
configurations here.

You can then unzip the bitcoin-s-cli-1.9.2.zip folder and start using the bitcoin-s-cli like this:

./bin/bitcoin-s-cli --help
Usage: bitcoin-s-cli [options] [<cmd>]

  -n, --network <value>    Select the active network.
  --debug                  Print debugging information
  --rpcport <value>        The port to send our rpc request to on the server
  -h, --help               Display this help message and exit

For more information on what commands bitcoin-s-cli supports check the documentation, here is where to
start: https://bitcoin-s.org/docs/next/applications/server#server-endpoints

Verifying signatures

This release is signed with Chris's signing key with
fingerprint 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A

To do the verification, first hash the executable using sha256sum. You should check that the result is listed in
the SHA256SUMS.asc file next to its file name. After doing that you can use gpg --verify to authenticate the
signature.

Example:

$ gpg -d SHA256SUMS.asc > SHA256SUMS.stripped
gpg: Signature made Thu 16 Jun 2022 06:34:05 PM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$ sha256sum -c SHA256SUMS.stripped                                                                                           
bitcoin-s_1.9.2-1_amd64.deb: OK
bitcoin-s-1.9.2.dmg: OK
bitcoin-s-cli-linux-1.9.2.zip: OK
bitcoin-s-cli-mac.os.x-1.9.2.zip: OK
bitcoin-s-cli-windows.server.2019-1.9.2.zip: OK
bitcoin-s-oracle-server-linux-1.9.2.zip: OK
bitcoin-s-oracle-server-mac.os.x-1.9.2.zip: OK
bitcoin-s-oracle-server-windows.server.2019-1.9.2.zip: OK
bitcoin-s-server-linux-1.9.2.zip: OK
bitcoin-s-server-mac.os.x-1.9.2.zip: OK
bitcoin-s-server-windows.server.2019-1.9.2.zip: OK

Website

https://bitcoin-s.org/

Releases

https://repo1.maven.org/maven2/org/bitcoin-s/

Snapshot releases

https://oss.sonatype.org/content/repositories/snapshots/org/bitcoin-s/

Executive Summary

app commons

Adds the ability to stream logs from a process (such as tor) to our bitcoin-s.log file.

488716d Add ProcessLogger to ProcessBuilder so that we capture logs from binaries like tor (#4327)

App server

Improves logging capability, we will now cap log files at 100MB and roll over to a new one.
The old file will be archived and compressed. The total archive size for log files is capped at 5GB.

This release also improves startup time of the backend by decoupling binding of the http server & tor startup.\

Finally, in some cases on raspberry pi's bitcoind can drop blocks and need to re-sync.
This release implements logic to retry connecting to bitcoind with an exponential backoff.

1ad5407 Improve bitcoind connection retry logic (#4386)
8a01432 Try to debug why shutdown isn't working on windows (#4349)
d335cd1 Enable LauncherJarPlugin on oracleServer/appServer (#4338)
5036b37 2022 05 11 tor race condition (#4333)
d46b4a6 Make logging to file async, remove neverBlock configuration so that we are guaranteed to capture logs (#4305)
be34593 2022 04 29 issue 4302 (#4304)
f4d864f 2022 04 26 Startup time of appServer (#4294)
17944c4 Update rolling policies for log files (#4291)
bac3cb4 Fix rolling log file (#4288)
16c5d83 2022 04 20 issue 4280 (#4282)
e3e5992 Parallelize some startup on startBitcoinSBackend() to increase performance (#4217)

bitcoind rpc

bundle

The bundle will be removed in future releases.
We are implementing a new electron GUI, it can be found here: https://github.com/bitcoin-s/bitcoin-s-ts

Build

The major improvement this release is integrating jlink
jlink allows you to ship with a custom JRE in the application you ship so the user doesn't need to download Java.

There is some caveats to using jlink on arm64 machines, see #4383.

cbeae5c Remove carve out for protoc on aarch64 now that the akka grpc plugin has been updated (#4384)
1710012 Implement a workaround for 4369 on docker images and m1 macs IF the user has another java installed on their machine (#4377)
0a0fc92 Switch base docker image to ubuntu to get docker working again (#4367)
e4d38ba 2022 05 05 OS specific jlink builds (#4322)
dd9a9dc Remove explicit inclusion of jdk.unsupported as its not included by default (#4319)
087b9f9 2022 05 03 oracle server jlink build (#4316)
cbfe684 Reduce what gets tested on tor CI (#4274)

Core

Begins laying the ground work for Taproot by including the XOnlyPubKey data structure.

Adds various TLVs defined in BOLT14.

Finally fixes various bugs and improves ergonomics of the core library.

ddbdde4 2022 06 13 taprootspk xonlypubkey (#4388)
7e2ecd9 Added data structure for x-only public keys with undetermined parity (#4387)
5f82307 Added Compute Contract Id test Vectors (#4385)
344a8fd Add TLVs defined in BOLT 4 (#4380)
b021649 Refactor WitnessVersion.rebuild() to be Either[ScriptError,ScriptPubKey] to make the taproot implemtation easier (#4382)
ab215e2 Set recovery id properly for buildLnInvoiceSignature (#4379)
efc1f9f Have Satoshis extend Numeric (#4364)
676c0b4 Add isStandard to Address (#4353)
9097005 Improve TLV error message (#4283)

Crypto

Rework how HashType is handled in the ECDigitalSignature API.
Previously it was extremely confusing whether an ECDigitalSiganture had a HashType or not.
Now you can call ECDigitalSignature.hashTypeOpt to determine if the signature has a HashType.

b80bf46 Add HashType to ECDigitalSignature API (#4320)
f42d7ae Added validation to signature methods to avoid corruption edge cases (#4214)

db commons

Allow other library users to access the internal flyway configuration.

4419372 Make flyway protected so other apps can access it (#4372)

DLC node

272f31a Fix race condition on DLC node startup wrt to tor (#4335)

DLC wallet

This release of the DLC wallet introduces the concept of Contacts.
These are people you are frequently doing DLCs so we should save their information to make it easier to enter
into a new DLC with that same contact.

This PR also adds a mapping between DLCs in the wallet and the contact you are doing the DLC with.
Now the contact information will be shown by the DLC so you can remember who you did the DLC with.

fdf281b DLC <-> contact mapping (#4346)
79b4f09 Improve logging around signDLC (#4299)
525fb2a Default createDLCOffer to current block height (#4285)
f5940c9 Contact list (#4234)
d29bad3 Add better logs for a DLCWallet.cancelDLC() (#4278)

gui

keymanager

Lnd rpc

Update lnd to 0.14.3, implement probing with lnd, and various bug fixes.

762202a Add test/example on how to use the channel acceptor (#4375)
c2d8735 LND: Add configs for gossip in test env (#4378)
45777f2 Fix outPointToChannelPoint to use correct endianness (#4376)
54c3f77 Improve lnd test suite reliability (#4361)
527e3ae Fix lnd sendToRoute for 0 amount invoices (#4348)
e9582d2 Update lnd to v0.14.3-beta (#4347)
63e8d76 Add ability to get LndInstanceRemote from config (#4334)
6845caf Make all uint64 types from lnd a UInt64 (#4332)
18c5ded Check if lnd network config is equal to 1 (#4330)
8ff4ee1 Use route hints with probing (#4312)
16c1356 Lnd probing: only update route with mpp record if we can (#4293)
b8a984a Implement probing in lnd (#4202)
95bbb06 Add lnd invoice client (#4289)
587bca8 Add router rpc to lnd, use for paying invoices (#4286)
5856745 Add raw funding of psbt to LndRpc (#4235)

Lnurl

Adds an initial implementation of the LnURL specification.

d60d984 LnURL Module (#4295)

node

Removes old SPV code as that was not used and is being slowly deprecated on the bitcoin network.

d8fc8e5 Remove Spv code (#4356)
b980c43 Bump node initialization timeout to 20 seconds (#4328)
ce00d3a Segregate handling of Tcp.ErrorClosed command from the rest of Tcp.ConnectionClosed (#4307)

Oracle Explorer Client

Adds tor endpoints for the Suredbits Oracle Explorer so you can send announcements/attestations directly to the hidden service.

c9502ba Tor endpoints for the oracle explorer client (#4314)

wallet

This release fixes a bug where we could create a duplicate UTXO in the wallet.
If this bug is detected in the wallet, this will trigger a rescan on wallet startup to correct wallet state.

This also fixes a bug in our sql queries where we fetch too many outpoints at one time for a block.
This resulted in a SQL exception. Now we break the query up into smaller queries.

bf88d0d Remove exception when we have zero relevant outputs (#4352)
f680ab8 Persist whether wallet is rescanning in the database (#4326)
059f2f5 Fix ERROR: relation "txo_spending_info" does not exist (#4323)
341c712 Validate bitcoin-s.wallet.walletName config option (#4336)
fac0713 Reduce rescan threadpool size to just be number of available processors (#4306)
0c6c918 Handle duplicate UTXOs (#4296)
486fa36 Make _findOutputsBeingSpentQuery take at most 1,000 outpoints (#4300)
6db1f26 2022 03 22 getrelevantoutputs upfront (#4219)
3831b35 Prevent the wallet from creating duplicate UTXOs (#4290)

testkit-core

testkit

tor

9d90b22 Tor v0.4.6.10 (#4331)
6356a50 Add log for tor being provided (#4329)

Website

4c74f54 Made change to cli.md file, clarifed only need to do either (Building the command line interface) or (Native binaries) section (#4373)
1706ec8 Fix typo (#4365)
4fc3b05 Upgrade website dependencies (#4363)
72fef5a initial draft of 1.9.2 release notes (#4362)
c911808 Fix example (#4324)
67f8ac8 Add cd bitcoin-s-server (#4298)
a739a2d Bump README versions (#4284)
b0e849c Update pgp key as previous key expired (#4273)
8cda343 Add version 1.9.1 to the website (#4269)

Dependencies

2af7923 Downgrade slick to fix jlink build (#4345)
107f95c Upgrade sttp to 3.6.1 (#4341)
63df47e Upgrade to slick to 3.4.0-M1 (#4342)
4b2ca33 upgrade micropickle to 1.6.0 (#4340)
a3faa0c Upgrade plugin dependencies (#4318)
678dc6f Upgrade sbt native packager to 1.9.9 (#4317)
e05cf21 Upgrade dropWizards to 4.2.9 (#4313)
2f4bbf7 Upgrade flyway to 8.5.9 (#4311)
56138ce Remove source code dependency, its not used anywhere (#4310)
3dc7093 Upgrade Eclair to v0.7.0 (#4308)
7566a96 Update akka to 2.6.19 (#4287)
813b58e Update deps (#4279)
ca5bde4 Bump prismjs from 1.26.0 to 1.27.0 in /website (#4133)
47b65ca Bump async from 2.6.3 to 2.6.4 in /website (#4271)