bitcoin-s/release-notes/release-notes-1.9.2.md
2022-06-16 14:26:37 -05:00

11 KiB

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 Mon 18 Apr 2022 02:19:54 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.1-1_amd64.deb: OK
bitcoin-s-1.9.1.dmg: OK
bitcoin-s-bundle.msi: OK
bitcoin-s-cli-x86_64-apple-darwin: OK
bitcoin-s-cli-x86_64-pc-linux: OK
bitcoin-s-server-1.9.1.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.

488716d10a 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.

1ad540703c Improve bitcoind connection retry logic (#4386) 8a01432db4 Try to debug why shutdown isn't working on windows (#4349) d335cd1933 Enable LauncherJarPlugin on oracleServer/appServer (#4338) 5036b37729 2022 05 11 tor race condition (#4333) d46b4a6c91 Make logging to file async, remove neverBlock configuration so that we are guaranteed to capture logs (#4305) be34593e80 2022 04 29 issue 4302 (#4304) f4d864fab8 2022 04 26 Startup time of appServer (#4294) 17944c4aad Update rolling policies for log files (#4291) bac3cb4190 Fix rolling log file (#4288) 16c5d835de 2022 04 20 issue 4280 (#4282) e3e59923c4 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.

cbeae5cdbc Remove carve out for protoc on aarch64 now that the akka grpc plugin has been updated (#4384) 171001273c Implement a workaround for 4369 on docker images and m1 macs IF the user has another java installed on their machine (#4377) 0a0fc92f32 Switch base docker image to ubuntu to get docker working again (#4367) e4d38ba53a 2022 05 05 OS specific jlink builds (#4322) dd9a9dcea6 Remove explicit inclusion of jdk.unsupported as its not included by default (#4319) 087b9f90b5 2022 05 03 oracle server jlink build (#4316) cbfe684352 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.

ddbdde495d 2022 06 13 taprootspk xonlypubkey (#4388) 7e2ecd9d6a Added data structure for x-only public keys with undetermined parity (#4387) 5f82307e27 Added Compute Contract Id test Vectors (#4385) 344a8fd759 Add TLVs defined in BOLT 4 (#4380) b021649ac4 Refactor WitnessVersion.rebuild() to be Either[ScriptError,ScriptPubKey] to make the taproot implemtation easier (#4382) ab215e26df Set recovery id properly for buildLnInvoiceSignature (#4379) efc1f9fb77 Have Satoshis extend Numeric (#4364) 676c0b4261 Add isStandard to Address (#4353) 90970058f9 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.

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

db commons

Allow other library users to access the internal flyway configuration.

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

DLC node

272f31aeaa 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.

fdf281b469 DLC <-> contact mapping (#4346) 79b4f096ec Improve logging around signDLC (#4299) 525fb2ac0d Default createDLCOffer to current block height (#4285) f5940c93d4 Contact list (#4234) d29bad3437 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.

762202a54d Add test/example on how to use the channel acceptor (#4375) c2d8735dd7 LND: Add configs for gossip in test env (#4378) 45777f2bb0 Fix outPointToChannelPoint to use correct endianness (#4376) 54c3f77f8e Improve lnd test suite reliability (#4361) 527e3ae862 Fix lnd sendToRoute for 0 amount invoices (#4348) e9582d2145 Update lnd to v0.14.3-beta (#4347) 63e8d76dfc Add ability to get LndInstanceRemote from config (#4334) 6845caf778 Make all uint64 types from lnd a UInt64 (#4332) 18c5ded5d3 Check if lnd network config is equal to 1 (#4330) 8ff4ee13e5 Use route hints with probing (#4312) 16c13568a9 Lnd probing: only update route with mpp record if we can (#4293) b8a984a986 Implement probing in lnd (#4202) 95bbb06789 Add lnd invoice client (#4289) 587bca87c4 Add router rpc to lnd, use for paying invoices (#4286) 5856745398 Add raw funding of psbt to LndRpc (#4235)

Lnurl

Adds an initial implementation of the LnURL specification.

d60d984a6b LnURL Module (#4295)

node

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

d8fc8e588f Remove Spv code (#4356) b980c432fd Bump node initialization timeout to 20 seconds (#4328) ce00d3ac36 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.

c9502babba 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.

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

testkit-core

testkit

tor

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

Website

4c74f54741 Made change to cli.md file, clarifed only need to do either (Building the command line interface) or (Native binaries) section (#4373) 1706ec8e84 Fix typo (#4365) 4fc3b05ed5 Upgrade website dependencies (#4363) 72fef5a27e initial draft of 1.9.2 release notes (#4362) c911808996 Fix example (#4324) 67f8ac8294 Add cd bitcoin-s-server (#4298) a739a2dd2b Bump README versions (#4284) b0e849c233 Update pgp key as previous key expired (#4273) 8cda343fd3 Add version 1.9.1 to the website (#4269)

Dependencies

2af7923f3b Downgrade slick to fix jlink build (#4345) 107f95cd5a Upgrade sttp to 3.6.1 (#4341) 63df47e002 Upgrade to slick to 3.4.0-M1 (#4342) 4b2ca33495 upgrade micropickle to 1.6.0 (#4340) a3faa0c56f Upgrade plugin dependencies (#4318) 678dc6f676 Upgrade sbt native packager to 1.9.9 (#4317) e05cf21827 Upgrade dropWizards to 4.2.9 (#4313) 2f4bbf7014 Upgrade flyway to 8.5.9 (#4311) 56138cea92 Remove source code dependency, its not used anywhere (#4310) 3dc709386a Upgrade Eclair to v0.7.0 (#4308) 7566a96b31 Update akka to 2.6.19 (#4287) 813b58e977 Update deps (#4279) ca5bde46d4 Bump prismjs from 1.26.0 to 1.27.0 in /website (#4133) 47b65cae65 Bump async from 2.6.3 to 2.6.4 in /website (#4271)