2025 01 09 release notes 1.9.10 (#5889)

* Begin 1.9.10 release notes

* Sort deps

* Sort commits upto 6af79f9ed5

* Sort commits upto  ce868801ce

* Add release notes section blurbs

* add section about RPC rename from listreservedutxos -> getreservedutxos
This commit is contained in:
Chris Stewart 2025-01-25 09:40:28 -06:00 committed by GitHub
parent d6799df122
commit c30856fe33
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,397 @@
# 1.9.10
This release is backwards compatible with the 1.9.x series 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](https://github.com/bitcoin-s/bitcoin-s/#docker)
If you are a typescript developer, [you can access the backend via our typescript library](https://github.com/bitcoin-s/bitcoin-s-ts)
# Executive Summary
This release adds taproot keypath signing support. You can enable this with `bitcoin-s.wallet.purpose=taproot` in your `bitcoin-s.conf`.
This release improves wallet performance and reliability and fixes various deadlocking issuese in the `node/` module.
## Running bitcoin-s
If you want to run the standalone server binary, after verifying gpg signatures, you
can `unzip bitcoin-s-server-1.9.10.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](https://bitcoin-s.org/docs/config/configuration#example-configuration-file).
You can then unzip the `bitcoin-s-cli-1.9.10.zip` folder and start using the `bitcoin-s-cli` like this:
```bashrc
./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](https://bitcoin-s.org/docs/next/security#disclosure) 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
```
### 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/
# Modules
## app commons
90203b295b Use default play-json json serialization macros for bitcoind json classes that cause issues with scala3 (#5718)
4471f74ccf Add `error` field to`ImportDescriptorResult`, move `BitcoindException` to app-commons (#5705)
6b12bb515d Rework `NativeProcessFactory.cmd` to be `Vector[String]` (#5623)
## App server
Also renames `listreservedutxos` RPC endpoint to `getreservedutxos` (43b75ccfd8f039ea4bcb25d7d1fa56c76c5b2883)
The app server no longer runs on tor by default.
2315f50075 appServer: Disable tor by default (#5876)
6ef926b481 appServer: Revert logback.xml (#5857)
788b99c184 refactor: Improve bitcoind wallet polling logic (#5834)
1423f2c91e appServer: Add missing `server.stop()` in `BitcoinSServerMainBitcoindTest` (#5831)
f280f35431 Replace Future[Wallet] -> Wallet parameter in {BitcoinSWalletTest, BitcoindRpcBackendUtil} (#5796)
ba8dd75312 refactor: DRY for `DLCWalletLoaderApi.loadWallet()` (#5787)
835c98e5b9 Fix race condition in `WebsocketTest`s (#5748)
9feabc1c2b Make `WebsocketTests` rescan test more robust (#5661)
35003ca970 refactor: Change interval param of `BitcoindRpcBackendUtil.startBitcoindBlockPolling` (#5640)
2021f1f111 2024 08 13 walletholder appserver refactor (#5639)
41fab3dfd2 2024 08 07 `createnewaccount` rpc (#5638)
458f3cb7d3 2024 07 29 rm tx bitcoind callbacks (#5632)
bc09757f8c Remove WalletHolder parameter from DLCWalletLoaderApi.loadWallet() (#5628)
## bitcoind rpc
Add support for v28 of bitcoind.
f85953e527 2024 10 13 rm bitcoind v25 support (#5707)
38f0f4d692 2024 10 07 v28 bitcoind (#5696)
38850d22e3 2024 07 31 bitcoind callbacks (#5631)
dad7e1cef6 Add support for bitcoind 27.1 (#5609)
## Build
We are now source compatible with scala3.
e55e832932 2025 01 16 Upgrade download/upload artifact to v4 (#5864)
ba4d21c495 Try pinning CI image to ubuntu 22.04 for now as a workaround until `setup-java` supports `sbt` installation (#5843)
30663fe622 Remove scala version speicfic build code (#5737)
29f10d046c Turn on -Xlint (#5728)
88125a3575 Remove .jvmopts file comments, they do not work on ubuntu (#5730)
28001af35e Add .jvmopts, conslidate JVM options there (#5729)
7c07aa0355 Pull over simple syntax changes for {cli,oracleServer,bench,dlcNode,dlcOracle,dlcOracleTest,eclairRpc,lndRpc,lndRpcTest} from #5713 (#5721)
602725174f Pull over simple syntax changes for scala3 pt2 (#5720)
ab6d3f5cb7 Pull over simple syntax changes for scala3 libraries (#5719)
46d6256e39 Switch distrubution to temurin, use full semver (21.0.4) (#5704)
48462d4ac9 add checkout action to electron build (#5604)
1b109e7b36 Add previous tag to electron build steps (#5599)
4885bdb07d Add `-Xsource:3` to `lnd-rpc` (#5595)
## chain
84aba7e349 Remove test case specific fixture setup in chainTest, revert to just using test suite specific fixtures (#5712)
## cli
841762b841 cli: Fix log output for bitcoin-s-cli (#5664)
## clightning rpc
## Core
Add support for taproot keypath signing.
Add the ability to generate digital signatures with a specific hash type.
Modify collection types used in core from `Seq` -> `Vector`.
07270ba8ca core: Rework NetworkPayload traits to use Vector instead of Seq for methods (#5845)
d1618a2277 Add unit test for RescanState to test recursive rescans correctly (#5786)
fb318efe5e core: Fix bug where we weren't checking for valid hash types in `TaprootKeyPath.isValid()` (#5780)
b6cc97a663 2024 11 20 prevoutmap ordering (#5776)
67bb3ceabd 2024 10 31 taproot signing (#5767)
80be2f5989 2024 11 15 partialsig typeparam (#5770)
bb0e40f05b 2024 11 16 rm isdummysig (#5771)
fc4802d4b0 core: Implement BIP86 (#5768)
c5d57de618 core: Fix divergence in behavior between TransactionSignatureSerializer.hashForSignature() methods (#5765)
4e8d5ecc7f Add `Sign.{signWithHashType(),signLowRWithHashType}` (#5757)
5187eee42a core: Terminate rescan early when RescanStarted.stop() is called rather than wait for the rescan to complete (#5749)
e419b18d9c 2024 10 23 merkle vector (#5734)
07f17cfedf Rework Block and Transaction data structures to use Vector rather than Seq (#5733)
dca2146647 2024 10 19 rm generic btree (#5725)
5f47fbe9ac Use BinaryTreeDoubleSha256Digest inside of Merkle.scala rather than BinaryTree[DoubleSha256Digest] (#5724)
1939e9fd2e core: Fix bug in RescanStarted.entireRescanDoneF (#5654)
## Crypto
cccaa582bd Add `Sign.{schnorrSign(),schnorrSignWithNonce()}` to `Sign` interface (#5754)
17f965fd45 2024 11 09 schnorrsig hashtype (#5764)
e69e1e5ad1 2024 10 31 digitalsignature (#5752)
## db commons
00b1c85e65 Remove TableAutoInc[T] type parameter, its unnecessary and causes issues (#5711)
## DLC node
## DLC Oracle
## DLC Server
## DLC wallet
52c0625ba9 2024 09 30 dlcwallet has a wallet (#5692)
7d8dd2bc0a refactor: Provide DLCWalletUtil.verifyProperlySetTxIds() with the contractId (#5657)
feeb2618d6 Move DLCDAOs to src (#5652)
## Eclair rpc
## gui
## fee rate
3925098872 feeProvider: Ignore bitcoiner.live as site seems to be down (#5854)
## keymanager
## Lnd rpc
bbac2590ff Bump to lnd 18.x (#5695)
## Lnurl
## node
Fix various deadlock scenarios in `node`.
This release also significantly improves startup performance of the node.
52040da386 node: Fix bug where we we could have more connections than allowed by `bitcoin-s.node.maxConnectedPeers` (#5885)
6a51b7c103 node: Limit initial stack push in `PeerFinder.start()` to `maxSearchCount^2` (#5882)
baa4ddf166 2025 01 23 issue 5878 (#5883)
40fef6e508 node: Add invariant we have peerServices when we cann PeerManager.handleConnect() (#5880)
fa4c2868ee node: Update `hardcoded-peers.txt` with whats in `bitcoin/contrib/seeds/nodes_main.txt` (#5877)
9adbd88f69 node: Only query p2p seeds if we have no peers in our database (#5875)
3bf7e6a39e node: Use approprate ServiceIdentifer throughout node/ module (#5874)
85cc536cd5 node: Rename PeerData.stop() -> PeerData.disconnect() (#5867)
4f0c3da303 node: Fix bug where we were dropping cached outbound messages on the floor (#5853)
a94fc3a92d node: Add `PeerStackTest`, fix bug where we could have the same ip address multiple times in `PeerStack` (#5848)
4d9c52c75c node: Move killswitch downstream to avoid queue deadlocks (#5819)
812f735110 node: Update DNS seeds, optimize `PeerFinder.start()` to start querying… (#5807)
eb6edab240 Add `NodeState.NoPeers`, cache network messages (#5800)
dbe1e7b686 tests: Make `NeutrinoNodeWalletTest` more robust against spurious failures (#5784)
4befe4e70a Fix potential deadlock when offering to queue in managePeerAfterInitialization() (#5667)
cbccecf95d Add caveat for `ConnectPeer` logic to only attempt to sync from a peer when a query is timed out (#5666)
490e0217f1 Add payload to query timeout log (#5660)
## wallet
Add taproot keypath utxo handling to wallet. This can enabled with `bitcoin-s.wallet.purpose=taproot`.
This release renames the configuration option `bitcoin-s.wallet.defaultAccountType` -> `bitcoin-s.wallet.purpose`.
This release improves performance of the wallet by making processing of blocks and transactions transctional at the database level.
This release makes the wallet have a collection of `has-a` relationships rather than `is-a` relationships
making the wallet much more modular.
57860d74d0 wallet: Batch requests for blocks during rescan (#5866)
425fb234e2 wallet: Try to avoid spurious failures on WalletSendingTest double spending test (#5846)
43efce500d tests: Cleanup `BitcoindBlockPollingTest` producing ERROR logs during test fixture destruction (#5829)
b9616066f2 wallet: Refactor {UTXOHandlingApi,AccountHandlingApi,AddressHandlingApi} to use 'get' prefix rather than 'list' prefix for method names (#5828)
25517265fe wallet: Reduce noisy DEBUG log (#5820)
b1403155fc wallet: Refactor AddressHandling to be account specific (#5825)
d29dad4472 2024 12 11 issue 5625 (#5803)
e2a0617d67 wallet: Don't cache TransactionProcessing now that it doesn't have internal state (#5797)
04757f9039 wallet: Remove `TransactionProcessing.blockProcessingSignals` (#5795)
e5ff1a5018 wallet: Fix noisy log, only log when we have an output to search for (#5794)
98e89a6e93 2024 11 27 processtransaction flaky test (#5793)
6f13f263ee wallet: Remove duplicate implementations of `SendFundsHandlingHandling.sendFromOutpoints()` (#5792)
dbdad48413 wallet: Remove unused wallet configurations (#5789)
d5a77a2297 wallet: Batch database actions in processBlockCachedUtxos() (#5788)
f6f01f333a wallet: Cleanup RescanHandlingTest (#5781)
d8ad023254 wallet: Implement taproot keypath handling in the wallet (#5772)
c6917b296b config: Rename config option bitcoin-s.wallet.defaultAccountType -> bitcoin-s.wallet.purpose (#5783)
471c063532 Remove rescan specific threadpool (#5746)
3ae69b6ab5 wallet: Get `processBlockCachedUtxos()` using `DBIOAction` (#5740)
f75a52b521 Refactor `TransactionProcessing.processTransaction()` to use `BlockHashWithConfs` (#5744)
2521c5da0e Fix noisy log in TransactionProcessing (#5742)
fe8acbb42f 2024 10 25 Get `TransactionProcessing.processTransactionImpl()` using a single database transaction (#5739)
8917188220 wallet: Rework where we fetch the number of block confirmations for a tx in the wallet (#5738)
13a895efe9 2024 09 24 simplify wallet (#5685)
7caea21b6a refactor: Move more methods out of WalletApi (#5681)
e087b174c5 Move `RandomFeeProvider` to src (#5684)
d17934f17f Add `SendFundsHandlingApi`, remove `HDWalletApi` (#5680)
8cfd5e8d6b 2024 09 19 address handling refactor (#5679)
8c5d685953 Refactor codebase to have has-a relationship with `RescanHandling` rather than is-a (#5675)
2d4a0adda4 Add FundTransactionHandlingApi, make FundTransactionHandling a case class (#5651)
42b13a6a62 wallet: Remove unecessary type parameter to TxCRUDComponent#TxTable (#5650)
4212d6d616 Create `AccountHandlingApi`, move inheritance from `Wallet` into `HDWalletApi` (#5627)
0eb1788226 Refactor WalletApi.createNewAccount to not use KeyManagerParams (#5635)
f5adc331f1 Move WalletDAOs to src (#5626)
e68ebeadbc refactor: Create `UtxoHandlingApi`, move to has-a relationship within Wallet (#5624)
## testkit-core
## testkit
7ee8895853 testkit: Make sure channel is in NORMAL state for both peers in `openAndConfirmChannel()` (#5868)
345ab017e5 testkit: Randomize defaultAccountType (purpose) in tests (#5775)
65e67287f8 2024 10 21 Replace `Future.sequence()` usage with `Future.traverse()` (#5732)
2d87129978 Reduce BitcoindRpcTestUtil.awaitConnection() interval from 10.second -> 1.second (#5703)
0843d7ecb5 Remove `-port` and `-rpcport` settings for `bitcoind` on startup for tests (#5702)
## tor
## Website
479aee3dc6 docs: Run 'yarn upgrade' (#5830)
7c3dbf96ca chore: remove redundant words in comment (#5826)
e45860af90 Docs: README (#5751)
04b9e6e75f Docs fix spelling issues (#5723)
613e19c281 Pull over docs/ from #5713 (#5722)
982090ed21 Fix typos (#5714)
## ZMQ
## Dependencies
ce868801ce Update sbt-scalajs, scalajs-compiler, ... to 1.18.2 (#5886)
84dcc8f916 Update sbt-bloop to 2.0.8 (#5881)
4b01abe064 Update flyway-core, ... to 11.2.0 (#5870)
093598ab7f Update sbt-assembly to 2.3.1 (#5873)
a911d53eae Update sbt-mdoc to 2.6.2 (#5809)
9aca249eb6 Update pekko-grpc-runtime, ... to 1.1.1 (#5766)
09d7f7a7aa Update scala-library to 2.13.16 (#5862)
2ef1eec88b Update sqlite-jdbc to 3.48.0.0 (#5863)
0a376afc99 Update bcprov-jdk18on to 1.80 (#5860)
b9510776bc Update postgresql to 42.7.5 (#5861)
d5083feda6 Update metrics-core, metrics-healthchecks, ... to 4.2.30 (#5859)
326c851dec Update sbt-bloop to 2.0.7 (#5858)
b2addd539c Update sbt-scalajs, scalajs-compiler, ... to 1.18.1 (#5841)
1c96d89d42 Update logback-classic to 1.5.16 (#5837)
4a8e48da37 Update flyway-core, ... to 11.1.1 (#5839)
2110132d7b Update sbt-native-packager to 1.11.0 (#5838)
6af79f9ed5 Update sqlite-jdbc to 3.47.2.0 (#5836)
dee3a1cdee Update waffle-jna to 3.5.1 (#5832)
bab9fe0b2e Update scalamock to 6.1.1 (#5833)
6b81211e37 Update client3:core, ... to 3.10.2 (#5827)
051f6ed5cb Update jna to 5.16.0 (#5822)
1f4ba9c612 Update logback-classic to 1.5.15 (#5821)
ce18753462 Update sbt, scripted-plugin to 1.10.7 (#5823)
86a3b2f88c Update logback-classic to 1.5.14 (#5818)
916507ad00 Update sbt-ci-release to 1.9.2 (#5817)
97f807444a server: Deduplicate wrapping callbacks in steams (#5815)
3d16dfbc97 Update guava to 33.4.0-jre (#5814)
881a15f518 Update sbt-bloop to 2.0.6 (#5813)
54ef1bd0a5 chain: Add invariant that we have at least 1 header in Blockchain (#5810)
b709a58715 Update flyway-core, ... to 11.1.0 (#5808)
4df0a7bc4e Update flyway-core, ... to 11.0.1 (#5799)
06db0aa4b2 Update sbt, scripted-plugin to 1.10.6 (#5798)
960b172d26 Update metrics-core, metrics-healthchecks, ... to 4.2.29 (#5790)
7867d258e6 Update sqlite-jdbc to 3.47.1.0 (#5791)
e852b11dbc Update flyway-core, ... to 11.0.0 (#5782)
795def555c Update flyway-core, ... to 10.22.0 (#5779)
e680c9d643 Update pekko-http, pekko-http-testkit to 1.1.0 (#5778)
35fdb07e2d Update sbt-buildinfo to 0.13.1 (#5763)
340edc85b0 Update sbt-bloop to 2.0.5 (#5762)
d255914765 refactor: Use ECDigitalSignature.appendHashType() throughout codebase (#5761)
39e23c2a09 Update flyway-core, ... to 10.21.0 (#5759)
21dd6fee80 Update sbt-bloop to 2.0.4 (#5758)
3569f51870 Update sbt, scripted-plugin to 1.10.5 (#5756)
aafac07491 Update sbt-buildinfo to 0.13.0 (#5755)
18c74c1351 Update bcprov-jdk18on to 1.79 (#5750)
2366b80c70 Update sbt, scripted-plugin to 1.10.4 (#5743)
91b3fc1e45 Update logback-classic to 1.5.12 (#5741)
387bcfdeb8 Update flyway-core, ... to 10.20.1 (#5735)
ff459b674c Update sqlite-jdbc to 3.47.0.0 (#5736)
528ceae9d4 Update sbt-ci-release to 1.9.0 (#5731)
ed7a152a51 Update sbt, scripted-plugin to 1.10.3 (#5726)
9e61e9bab7 Update flyway-core, ... to 10.20.0 (#5717)
b22e3d4aee Update client3:core, ... to 3.10.1 (#5716)
a0d6ecf50d Update logback-classic to 1.5.11 (#5715)
271da3ccea Upgrade upickle to 4.0.2 (#5710)
3ef88ecdc2 Update sbt-ci-release to 1.8.0 (#5709)
1e7e48d546 update flyway dependency to `10.19.0` (#5708)
7dc58666b9 Update logback-classic to 1.5.10 (#5706)
919789add2 Update sbt-assembly to 2.3.0 (#5697)
c7dce64718 Update sbt-ci-release to 1.7.0 (#5698)
5c73183046 Update logback-classic to 1.5.9 (#5700)
54646d4516 Update sbt-bloop to 2.0.3 (#5699)
7d601c45c8 Update metrics-core, metrics-healthchecks, ... to 4.2.28 (#5694)
e695474c61 Update client3:core, ... to 3.10.0 (#5693)
5afa058892 Update sbt-coveralls to 1.3.14 (#5691)
dd5a1af828 Update slick, slick-hikaricp to 3.5.2 (#5690)
e76768334d Update sbt-scalajs, scalajs-compiler, ... to 1.17.0 (#5689)
58e2dc2b5a Update sqlite-jdbc to 3.46.1.3 (#5688)
67666b7579 Update waffle-jna to 3.5.0 (#5682)
c4b219d93a Update junixsocket-core to 2.10.1 (#5683)
287bf984a0 Update sbt-bloop to 2.0.2 (#5677)
a8e9dcd443 Update sbt-mdoc to 2.6.1 (#5674)
628c3f9bef Update sbt-bloop to 2.0.1 (#5673)
625e790477 Rework TransactionProcessing to be a has-a relationship rather than is-a relationship in the codebase (#5659)
6bf69de119 Update jna to 5.15.0 (#5668)
3525603f9e Update sbt-mdoc to 2.6.0 (#5671)
e2e604e8a0 Update scalacheck to 1.18.1 (#5670)
d6669aa061 Update sbt to 1.10.2 (#5669)
7a8c6b8298 Update logback-classic to 1.5.8 (#5658)
d723610054 Update sbt-scoverage to 2.2.0 (#5656)
c3288a7224 Update ant to 1.10.15 (#5653)
b98087a5ee Update postgresql to 42.7.4 (#5648)
24e22a48e7 Update sbt-scoverage to 2.1.1 (#5649)
14f456dec3 Update metrics-core, metrics-healthchecks, ... to 4.2.27 (#5644)
19571dd737 Update sbt-ci-release to 1.6.1 (#5647)
364df59ea2 Update logback-classic to 1.5.7 (#5643)
21180213c6 Update sqlite-jdbc to 3.46.1.0 (#5646)
231397c409 Update scodec-bits to 1.2.1 (#5645)
f2726ec900 Update sbt-bloop to 2.0.0 (#5642)
a2855766c2 Update slf4j-api to 2.0.16 (#5637)
3d900f9b26 Update sbt-ci-release to 1.6.0 (#5641)
9c25209198 Update client3:core, ... to 3.9.8 (#5636)
f0bb99d9ef Update sbt-native-packager to 1.10.4 (#5633)
d1bff0eea2 Update sqlite-jdbc to 3.46.0.1 (#5634)
88b1dfd4c5 Update sbt-coveralls to 1.3.13 (#5630)
559157e0c7 Update sbt-coveralls to 1.3.12 (#5620)
dcaebefe29 Update junixsocket-core to 2.10.0 (#5617)
7690fbe2a7 Update sbt-bloop to 1.6.0 (#5616)
27025e5dda Update sbt to 1.10.1 (#5618)
dc9e5ff1b9 Update sbt-mdoc to 2.5.4 (#5619)
a81119eb49 Update sbt-scoverage to 2.1.0 (#5614)
97a5758dfe Update sbt-mdoc to 2.5.3 (#5612)
f1e2238cfc Update play-json to 3.0.4 (#5611)
267f70860c Update otj-pg-embedded to 1.1.0 (#5610)
ca9bfa03e0 Update scalatest to 3.2.19 (#5613)
29c38aa525 Update scala-java-time to 2.6.0 (#5606)
c559eca5f7 Update metrics-core, metrics-healthchecks, ... to 4.2.26 (#5607)
06295bb941 Update scalapb-runtime to 0.11.17 (#5605)
9a002730f2 Update sqlite-jdbc to 3.46.0.0 (#5603)
677109c4ea Update sbt-bloop to 1.5.18 (#5602)
d13abaa8ea Update gson to 2.11.0 (#5600)
5833f5894d Update client3:core, ... to 3.9.7 (#5601)