mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-24 15:02:17 +01:00
2022 08 06 1.9.3 release notes (#4582)
* Initial sorting of commits for 1.9.3 * Add summaries to each section * 1.9.2 -> 1.9.3 * fix typo
This commit is contained in:
parent
c10f7beadb
commit
c7e5317294
1 changed files with 343 additions and 0 deletions
343
release-notes/release-notes-1.9.3.md
Normal file
343
release-notes/release-notes-1.9.3.md
Normal file
|
@ -0,0 +1,343 @@
|
||||||
|
# 1.9.3
|
||||||
|
|
||||||
|
This release is backwards compatible with the 1.9 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)
|
||||||
|
|
||||||
|
## Running bitcoin-s
|
||||||
|
|
||||||
|
If you want to run the standalone server binary, after verifying gpg signatures, you
|
||||||
|
can `unzip bitcoin-s-server-1.9.3.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.3.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
|
||||||
|
bitcoin-s_1.9.3-1_amd64.deb: OK
|
||||||
|
bitcoin-s-1.9.3.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.3.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
|
||||||
|
|
||||||
|
Consolidate duplicate data structures in `cli` and `appServer` into a common location.
|
||||||
|
|
||||||
|
b7c7cb8fc2 Moving duplicate dataStructures in `cli` and `app-server` into `app-commons` (#4541)
|
||||||
|
|
||||||
|
## App server
|
||||||
|
|
||||||
|
This release adds the ability to call `loadwallet [wallet-name] [aes-password-opt] [bip39-password-opt]`.
|
||||||
|
This RPC allows you to load a new wallet in bitcoin-s without shutting down and restarting the server.
|
||||||
|
|
||||||
|
This release also adds the rpc `exportseed [wallet-name] [aes-password-opt]` to export the mnemonic seed for a wallet.
|
||||||
|
|
||||||
|
Websocket events added this release are
|
||||||
|
|
||||||
|
- fee rate change
|
||||||
|
- rescan complete
|
||||||
|
- sync complete
|
||||||
|
- tor started
|
||||||
|
|
||||||
|
9f89ba9b7a `loadwallet` endpoint (#4417)
|
||||||
|
a02e25b0ce Refactor `WalletRoutes` to take `DLCWalletLoaderApi` as a paramete (#4565)
|
||||||
|
8cb45e8208 Add unit tests for loader rescans (#4570)
|
||||||
|
1d3db879ad Add rescanState variable to DLCWalletLoaderApi (#4569)
|
||||||
|
ec0103dab3 2022 08 02 loadwallet startup logic (#4568)
|
||||||
|
191df09196 Move pollBitcoind out of startBitcoindBlockPolling (#4559)
|
||||||
|
936a65edd4 2022 07 21 Modify helper methods in `BitcoindRpcBackendUtil` to not materialize streams eagerly. (#4526)
|
||||||
|
a2e7c428cf Bump sleeps on CallbackUtilTest (#4534)
|
||||||
|
d508d65142 Implement ability to cancel bitcoind polling jobs (#4538)
|
||||||
|
4ef27dd163 Fix bug where dlcNode was not apart of tor dependent configs (#4537)
|
||||||
|
67dd16d8ad Add missing calls to BitcoinSAppConfig.stop() (#4535)
|
||||||
|
d4210fad65 Pull over changes from loadwallet branch (#4527)
|
||||||
|
5d309fbae0 Fee rate WS notification (#4518)
|
||||||
|
e3a7c0971f Refactor to hide the Message paramter that gets fed to the websocket queue, move it to a internal implementation detail (#4514)
|
||||||
|
f6df30c45e Make appServerTest run in parallel to speed up test suite (#4515)
|
||||||
|
cdef8c01dd Set syncing flag to true on startup (#4506)
|
||||||
|
d1375a589e 2022 07 12 server startup cleanup (#4501)
|
||||||
|
e90e372e54 Add `sync` JSON field to the `getinfo` endpoint output (#4452)
|
||||||
|
84ce76e16c Fix race condition related to sqlite3 database not being created before we access it (#4479)
|
||||||
|
20bf1e6a08 Remove map on tor to allow access to getdlchostaddress endpoint before tor is fully stated (#4435)
|
||||||
|
a7aad46934 Seed backup API (#4357)
|
||||||
|
|
||||||
|
## bitcoind rpc
|
||||||
|
|
||||||
|
This release adds official support for v22 and v23 of bitcoin core.
|
||||||
|
It also includes some basic support for fetching blocks via akka streams
|
||||||
|
and taproot.
|
||||||
|
|
||||||
|
ed4e332cef Dafalut to the latest Bitcoin Core version (#4579)
|
||||||
|
ad21a11254 Create BitcoindStreamUtil and refactor to use it (#4578)
|
||||||
|
3ae169a41f V22 RPC Support Update Continued (#4424)
|
||||||
|
99b75d166f Fixes support for bitcoind taproot descriptor wallets (#4415)
|
||||||
|
4dc1bc7050 add bitcoind v23 rpc (#4368)
|
||||||
|
|
||||||
|
|
||||||
|
## bundle
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
|
||||||
|
Implements electron app builds to combine bitcoin-s backend and bitcoin-s-ts
|
||||||
|
frontend into a single electron app.
|
||||||
|
|
||||||
|
Adds a flag `DISABLE_JLINK` to disable jlink when running the artifact built by `universal:packageBin`.
|
||||||
|
|
||||||
|
This release fixes a package name bug introduced in 1.9.2 (#4401).
|
||||||
|
|
||||||
|
Fixes various bugs in bash scripts used by `bitcoin-s-{server, oracle-server}`.
|
||||||
|
|
||||||
|
a2117e2551 Downgrade CI jdk 18 -> 17 (#4546)
|
||||||
|
6f42f83146 Move OSX check inside of jre path check, fix bug where quarantine wasn't working in case where we are in the same directory as script (#4508)
|
||||||
|
5b44c074f1 Fix `chmod: jre/bin/java: No such file or directory` errors (#4493)
|
||||||
|
de935032ea Make coreTestJVM.dependOn(testkit), add new multi core dispatcher to allow more cores for TaprootTTests to hopefully take load off the scala execution context (#4477)
|
||||||
|
9985db3b41 Bump to jdk18 (#4471)
|
||||||
|
3ea4763cfc Change 2.13.7 -> 2.13.8 in a few spots where I missed it (#4470)
|
||||||
|
2968a9ee15 Try to test out setup-java CI action (#4466)
|
||||||
|
76694a55e9 Add server build matrix, mac,linux electron builds (#4434)
|
||||||
|
aed92c35af Implement DISABLE_JLINK env variable to disable jlink jre's usage at runtime (#4426)
|
||||||
|
e25c24dc9b Fix package name bug so package name is ra… (#4402)
|
||||||
|
|
||||||
|
## Core
|
||||||
|
|
||||||
|
This release adds support for the [taproot script interpreter](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki)
|
||||||
|
and [taproot signature serialization](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)
|
||||||
|
|
||||||
|
The next release will add signing support for taproot transactions.
|
||||||
|
|
||||||
|
4b83286922 2022 07 25 wallet api refactor (#4545)
|
||||||
|
c210052640 Refactor coin selection to be not be bitcoin-s specific (#4496)
|
||||||
|
5c9092889b Add abillity to clear callbacks (#4512)
|
||||||
|
9412170f09 2022 07 11 fix invalid csa neg (#4495)
|
||||||
|
f8f4facdd1 Correctly parse TaprootKeyPath how they are represented (#4494)
|
||||||
|
b16a8ca6aa Fix bug where we weren't checking if a TaprootKeyPath w/ annex has two stack elements (#4491)
|
||||||
|
59732809d0 Represent and handle `SIGHASH_DEFAULT` correctly in `TaprootKeyPath` (#4488)
|
||||||
|
ef50becf1b Enforce MAX_PUSH_SIZE for taproot (#4486)
|
||||||
|
db63b286b3 Fix hashtype check to correctly handle scala's conversion (#4487)
|
||||||
|
91a1c84a6f Enforce minimalif for tapscripts (#4484)
|
||||||
|
990e344a49 Disallow OP_CMS in taproot (#4485)
|
||||||
|
cc45924ed8 Validate max ScriptNumber bytes in OP_CHECKSIGADD (#4483)
|
||||||
|
3892fa23ef Restrict hash types allowed by taproot signature verification (#4481)
|
||||||
|
3821060e68 Schnorr sig parsing checks (#4482)
|
||||||
|
ec599a5c3d Fix `containsOpSuccess` implementation (#4480)
|
||||||
|
0397ca6c78 tapscript/sigopsratio_3 failing correctly (#4461)
|
||||||
|
5df5bf6741 Add support for taproot keyspend PSBTs (#4462)
|
||||||
|
000e7a7930 Have FutureUtil.makeAsync handle thrown exceptions (#4458)
|
||||||
|
211339f344 Add static test vectors for Taproot (#3769)
|
||||||
|
83cff9a44c 2022 07 07 issue 4455 (#4457)
|
||||||
|
97be26586 Get a SIGHASH_SINGLE test case working (#4431)
|
||||||
|
eae16a52f8 Allow creating input info of simple OP_TRUE script pub key (#4450)
|
||||||
|
11f6c8f024 2022 07 05 `UnknownControlBlock` (#4449)
|
||||||
|
6f6315c1e7 Fix taproot SIGHASH_SINGLE taproot annex hash bug (#4448)
|
||||||
|
64183568fe Allow creation of TaprootTxSigComponent (#4445)
|
||||||
|
5f93096c5a Fix Taproot keyspend serialization (#4443)
|
||||||
|
93302fea01 Fix TaprootKeyPath.isValid for 64 byte sigs (#4444)
|
||||||
|
0c14fc961b Add test case for `SIGHASH_ALL_ANYONECANPAY` in taproot (#4442)
|
||||||
|
3122e1d0f8 Fix bug in taproot SIGHASH_ANYONECANPAY_SINGLE impl (#4440)
|
||||||
|
38d8f8cdf0 2022 06 30 `OP_CODESEPARATOR` impl compatible with taproot (#4439)
|
||||||
|
a97be26586 Get a SIGHASH_SINGLE test case working (#4431)
|
||||||
|
c4fd7035be Add Taproot PSBT fields (#4420)
|
||||||
|
124cbe4b67 Add annex to `TaprootKeyPath` (#4416)
|
||||||
|
5115d8d076 Move lastCodeSeparator to StartedScriptProgram (#4414)
|
||||||
|
a680f03c04 Implement BIP341 (#4409)
|
||||||
|
|
||||||
|
## Crypto
|
||||||
|
|
||||||
|
This release implements [musig2](https://github.com/jonasnick/bips/blob/musig2/bip-musig2.mediawiki)
|
||||||
|
|
||||||
|
2b60bbb1c3 Remove .map() and use .foreach() with buffer in CryptoBytesUtil.toByteVector() (#4454)
|
||||||
|
ae0962d7ed Musig2 Implementation (#4418)
|
||||||
|
|
||||||
|
## db commons
|
||||||
|
|
||||||
|
## DLC node
|
||||||
|
|
||||||
|
## DLC wallet
|
||||||
|
|
||||||
|
Optimizations for the DLC Wallet.
|
||||||
|
|
||||||
|
ba396f2fb3 Fetch findByFundingTxId/findByFundingOutPoints in parallel as an optimization (#4560)
|
||||||
|
603b7e0aea Make DLCWallet.listDLCs use DBIOActions (#4555)
|
||||||
|
|
||||||
|
## gui
|
||||||
|
|
||||||
|
## fee rate
|
||||||
|
|
||||||
|
This release fixes a bug which can cause an application to hang for a long time
|
||||||
|
when requesting a fee rate. Now we have a timeout of 1 second when fetching fee rates.
|
||||||
|
|
||||||
|
6dfa7683e4 Implement a timeout on fee rate requests (#4503)
|
||||||
|
|
||||||
|
## keymanager
|
||||||
|
|
||||||
|
This release of the keymanager now keeps track if seeds have been imported
|
||||||
|
into bitcoin-s or generated from internal entropy.
|
||||||
|
|
||||||
|
08699c0ee0 Remove nested Option[Option[AesPassword]] (#4564)
|
||||||
|
948d2b424e Make KeyManagerAppConfig.walletName return String rather than Option[String] (#4507)
|
||||||
|
414557effb Add `imported` flag to the seed JSON (#4459)
|
||||||
|
|
||||||
|
## Lnd rpc
|
||||||
|
|
||||||
|
f286b42c71 Retry lnd startup if it fails (#4573)
|
||||||
|
678612161b Fix lnd OutputDetails for outputs that dont have an address (#4438)
|
||||||
|
828d03c727 Fix out of bounds issues with lnd mappers (#4425)
|
||||||
|
0b9190f968 Lnd v0.15.0-beta (#4419)
|
||||||
|
531845adfa Accept keysend and amp in lnd fixtures (#4407)
|
||||||
|
9b1f8924ab Fix download lnd command (#4406)
|
||||||
|
04802ae239 Add peers rpc to lnd (#4403)
|
||||||
|
a0ab0638f8 Allow for custom channel sizes in LndRpcTestUtil.createNodePair (#4398)
|
||||||
|
|
||||||
|
## Lnurl
|
||||||
|
|
||||||
|
## node
|
||||||
|
|
||||||
|
This release merges multi-peer neutrino support. This release does NOT enable multi peer support by default.
|
||||||
|
|
||||||
|
These new configurations are introduced in #4408. Adjust it if you want different behavior.
|
||||||
|
```
|
||||||
|
bitcoin-s.node.peers = [] # put ip/dns addresses here to force connections to these peers
|
||||||
|
bitcoin-s.node.maxConnectedPeers = 1 # try to connect to peers from dns seeds, database, addr messages etc
|
||||||
|
bitcoin-s.node.enable-peer-discovery = false # use the defauls suredbits neutrino node as a peer
|
||||||
|
bitcoin-s-.node.use-default-peers = true # whether to use suredbits hosted peer
|
||||||
|
```
|
||||||
|
|
||||||
|
This PR also implements `NodeCallbacks` with akka streams so we can safely call `loadwallet`
|
||||||
|
when node callbacks are being executed. Now we want for the streams to complete, and then continue
|
||||||
|
loading the ne wallet.
|
||||||
|
|
||||||
|
5acbba9377 Replace `BoundedSourceQueueWithComplete` with `SourceQueueWithComplete` (#4576)
|
||||||
|
c4d358061a Add P2PClientSupervisor (#4509)
|
||||||
|
f5cca7e5e1 Add guard for calling NodeCallbackStreamManager.stop() (#4523)
|
||||||
|
0a127368f0 2022 07 18 node callback stream manager (#4520)
|
||||||
|
2e309086d5 Fix block fetch issue #4513 (#4522)
|
||||||
|
0cb93ddbf4 2022 07 17 node callback akka streams (#4516)
|
||||||
|
0b53c7be12 Change tests to use disconnectnode rpc instead of restarting bitcoind (#4468)
|
||||||
|
7c649d39db Fix filter sync if headers received while syncing (#4463)
|
||||||
|
111df25df0 Fix sync issues post #4408 (#4441)
|
||||||
|
42564bc810 Find and switch peers (#4408)
|
||||||
|
a7ba46f67d Update hardcoded seeds (#4412)
|
||||||
|
7f43ef98ad Default to suredbits node if peers field is left empty (#4404)
|
||||||
|
|
||||||
|
## Oracle Explorer Client
|
||||||
|
|
||||||
|
## wallet
|
||||||
|
|
||||||
|
This release introduces akka streams in the wallet module.
|
||||||
|
|
||||||
|
With this new dependency, we implemented rescan's with streams so that the rescan can be arbitrarily terminated
|
||||||
|
by the user. The streaming feature was needed to implement the `loadwallet` rpc call safely when a rescan is ongoing.
|
||||||
|
|
||||||
|
The wallet now emits a websocket event when a rescan is complete.
|
||||||
|
|
||||||
|
This release also fixes a bug in rescans where a single tranaction pays to multiple wallet addresses.
|
||||||
|
If those addresses were generated in _separate_ batches during a rescan, funds wouldn't be discovered.
|
||||||
|
This is unlikely to happen in practice. Consider rescanning your wallet though on the 1.9.3 release.
|
||||||
|
|
||||||
|
Various refactors and optimizations were needed to complete the rescan and `loadwallet` work.
|
||||||
|
|
||||||
|
2fa7c39f64 Use DBIOActions to speed up processing transactions (#4572)
|
||||||
|
c03b158f94 Implement `RescanTerminatedEarly` exception to terminate the stream, implement `ArgumentSource` (#4574)
|
||||||
|
524c0af536 Make wallet.getBalance more effienct (#4566)
|
||||||
|
78648f1e40 PostgreSQL friendly wallet names (#4571)
|
||||||
|
c89491c3e7 2022 07 29 fix multiple batch test (#4556)
|
||||||
|
b1a7f92c67 Refactor to not use filterThenSum() when calculating balances (#4562)
|
||||||
|
af9e5eaeef Expose DBIOActions for various models in wallet, remove address queue (#4524)
|
||||||
|
17ef1dcdd9 Fix rescan flag getting set, add unit test (#4554)
|
||||||
|
f608c5d5e4 Create a helper case class called `FundRawTxHelper` (#4544)
|
||||||
|
b69e487d04 Move `MockChainQueryApi`/`MockNodeApi` out of `BaseWalletTest` (#4542)
|
||||||
|
6c76639ba3 Move processBlock into WalletApi (#4543)
|
||||||
|
44e09270d9 Move getNewAddress(account) to HDWalletApi (#4540)
|
||||||
|
b905afa65e 2022 07 20 wallet rescan stream (#4530)
|
||||||
|
1ae4d40dac Implement `rescancomplete` callback (#4475)
|
||||||
|
|
||||||
|
## testkit-core
|
||||||
|
|
||||||
|
Fixes regression that broke test logging.
|
||||||
|
|
||||||
|
aca59ca352 Fix test logging (#4446)
|
||||||
|
|
||||||
|
## testkit
|
||||||
|
|
||||||
|
Various PRs to improve flexibility and clean up resources allocated by tests.
|
||||||
|
|
||||||
|
8b646802b3 Fix postgres database not clearing after test (#4558)
|
||||||
|
f487c1270e Implement cleanup of dlcWallet/wallet DbAppConfig threadpools (#4557)
|
||||||
|
2cd8c80f67 Refactor so we don't create multiple WalletAppConfig in testkit (#4548)
|
||||||
|
f1e9a34690 Remove hard coded values for embedded pg config (#4533)
|
||||||
|
412e6a06c4 Allow pg embedded better support for 3rd party libraries (#4532)
|
||||||
|
|
||||||
|
## tor
|
||||||
|
|
||||||
|
Emit a `torstarted` websocket callback when tor is fully started.
|
||||||
|
|
||||||
|
1b169d8fa0 Implement `torstarted` websocket callback (#4476)
|
||||||
|
|
||||||
|
## Website
|
||||||
|
|
||||||
|
6b9d2db350 Update license to latest year (#4525)
|
||||||
|
135b9f8a35 Update documentation for UI to use build script Advanced Setup (#4430)
|
||||||
|
305e920784 Remove extra stuff from README so its easier to find important stuff (#4433)
|
||||||
|
906e1f5c53 Bump previousStableVersion to 1.9.2 (#4432)
|
||||||
|
0f3c28e23e Fix UI build instructions (#4405)
|
||||||
|
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
9930c964f7 sbt 1.7.1 (#4497)
|
||||||
|
1fc6d2a793 Upgrade sbt to 1.7.0 (#4490)
|
||||||
|
0404cffe26 Embedded Pg v1.0.1 (#4567)
|
||||||
|
970b6fd6eb upgrade scalatest dependencies (#4411)
|
Loading…
Add table
Reference in a new issue