Skip to content

Releases: bitcoin-s/bitcoin-s

1.9.9

16 May 14:29
83ffea0
Compare
Choose a tag to compare

1.9.9

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

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

Executive Summary

This release updates our RPC support, adds descriptors to core and updated our build to work towards support of scala3.

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.9.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.9.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 May 2024 10:28:09 AM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

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

3d29bef Delete directory using Files.delete() (#5518)

App server

bitcoind rpc

This release adds support for 25.x, 26.x, and 27.x of bitcoind's RPC interface.

This release removes support for 0.21, 22.x, 23.x, and 24.x of bitcoind's RPC interface.

18cb4f3 Add -datadir to when obtaining bitcoind -version to avoid using default datadir (#5574)
c8266cf Implement getrawmempool verbose (#5573)
5d0056a Add missing fields to GetMemPoolInfoResult (#5572)
cb3fbe5 Rework BitcoindRpcTestUtil.getBinary() to match major and minor versions of bitcoind binary when possible (#5569)
6543b26 Implement bitcoind RPC 27.0 (#5552)
7ef6086 Implement bitcoind RPC 26.x (#5550)
5dc5cca 2024 04 24 rm v24 (#5549)
d23d785 rework bitcoind-rpc to take a walletName parameter that is a String (#5545)
1d42de0 Make wallet.dat be the default wallet name for bitcoind in our codebase (#5543)
23e3265 Implement bitcoind 25.2 (#5540)
68d267a 2024 04 21 bitcoindrpc testfixtures (#5539)
f7adb62 Remove support for 23.x of bitcoind (#5538)
7b34632 2024 04 21 Remove BitcoindV22RpcClient (#5537)
9442dba Remove support for v21 of bitcoind (#5496)
c01793d Implement importdescriptors RPC (#5534)
e143792 2024 04 16 bitcoindrpc descriptor (#5530)
d162242 2024 03 24 v21 rpc refactor (#5494)

Build

This release adds the -Xsource:3 compiler flag to all modules except lnd-rpc.

This release also bumps the java version in our docker files from 17 -> 21.

2b1f85e 2024 05 14 mac electron release (#5594)
a6b7fad Get rest of codebase compiling with -Xsource:3 (#5592)
05894e8 2024 05 10 keymanager xsource3 (#5583)
37fc215 2024 05 10 appCommons/ compiling with -Xsource:3 (#5582)
d13e12a 2024 05 11 wallet xsource3 (#5588)
0af5848 Add -Xsource:3 to rpc projects (#5590)
562e560 Add -Xsource:3 to node/ node-test/ tor/ tor-test/ (#5589)
ac77394 Add -Xsource:3 to chain/ (#5587)
791ff32 Add -Xsource:3 to db-commons/ (#5585)
4b17645 Add -Xsource:3 to docs/ (#5581)
654d408 2024 05 08 scala3 core (#5580)
f2ae03b Fix jlinkIgnore after bumping waffle-jna to 3.4.0 (#5577)
9fe67bb Remove remaining 2.13 specific code as 2.13.x is the only compiler version supported (#5576)
3af204e Pull over scala3 compatible code for crypto/ project (#5575)
f707db0 Try to fix release build to workaround (#5579)
90e370c Remove TorTests.yml as it spuriously fails on CI connecting to the tor network, add build commands to Compile.yml (#5578)
4f288a1 2024 05 02 intellij compile (#5562)
7327975 Renable parallelExecution for bitcoindRpcTest (#5541)
2102e4d Try brew install sbt as workaround for macOS Ci runners failing to install sbt (#5555)
97fe795 Update dialect to scala213source3 (#5536)
dc16ddf Migrate from setup-scala github action to setup-java github action in release.yml (#5504)
723e2f6 Bump java-version from 17 -> 21 on CI (#5503)

chain

376872e Remove different versions of Blockchain.scala now that we don't support scalac 2.12 (#5519)

cli

clightning rpc

4f791d7 Upgrade clightning to 24.02.2 (#5558)

Core

This release adds support for descriptors.
This release does not integrate the descriptors into our wallet module, yet.

a6d9362 2024 04 16 descriptor fidelity (#5529)
0fa3be3 2024 04 08 Descriptors (#5525)
2536fd3 TapscriptTree, TapBranch, TapLeaf (#5520)
7903276 Tighten P2WSHWitnessSPKV0.apply() to only take RawScriptPubKey (#5509)
4ae9067 Add invariant to P2WPKHWitnessSPKV0.apply() to make sure ECPublicKey is compressed now that we have #5502 (#5508)
c2cbaae Add invariant to make sure we can't have p2sh(p2sh()) (#5507)
99c1292 Add xor operator as NumberType.{^,xor()} (#5500)

Crypto

This release changes the behavior of ECPublicKey.bytes. Previously we would always return the compressed version
of the public key, even if we created the ECPublicKey instance with a non-compressed byte representation.
Now ECPublicKey.bytes will return the byte representation that was passed as a parameter.

This release also repurposes the PublicKey trait. Now it is extended by all public key types in the codebase
rather than just ECPublicKey types. This was needed for descriptor support in core.

b83661e Repurpose PublicKey trait, extend it with {SchnorrPublicKey, ECPublicKeyApi, XOnlyPubKey} (#5517)
41c8357 Make ECPublicKey return bytes that were passed as a parameter (#5502)

db commons

DLC node

DLC Oracle

DLC Server

DLC wallet

Eclair rpc

863ffd9 Adjust OutgoingPaymentStatus.completedAt to be RelayTimestamp type (#5586)
7ed2b88 2024 04 30 upgrade eclair v0.10.0 (#5557)
7ee749a 2024 04 29 eclair upgrade v0.9.0 (#5556)

gui

fee rate

c2b8ae9 Re-enable mempool api tests (#5560)
4915350 Ignore mempool testnet api tests for now as unit tests consistently fail (#5547)

keymanager

Lnd rpc

819a047 Add support for lnd 0.17.5-beta (#5554)

Lnurl

node

This release fixes a bug where we could deadlock our node's stream when attempting to send a message to our peer.

36ec8a2 Rework PeerManagerApi.{sendToRandomPeer, gossipMessage} to return Unit rather than Future[Unit], this removes the possibility of deadlocking on a full queue (#5561)
302110c Bump max connected peers default to 2 (#5515)

Oracle Explorer Client

wallet

testkit-core

testkit

tor

Website

ZMQ

Dependencies

8288b2a Update scodec-bits to 1.2.0 (#5593)
f300bed Update waffle-jna to 3.4.0 (#5571)
6dacfb0 Upgrade to sbt 1.10.0 (#5570)
1dcc307 Update play-json to 3.0.3 (#5566)
1622988 Update scala-library to 2.13.14 (#5567)
e70f2ae Update client3:core, ... to 3.9.6 (#5565)
d6880b3 Update sbt-scoverage to 2.0.12 (#5568)
368e0ac Remove scala-async dep as it is not used (#5535)
899d491 Update logback-classic to 1.5.6 (#5531)
afddf73 Update scalafmt-core to 3.8.1 (#5501)
2b497c6 Update scalacheck to 1.18.0 (#5533)
fd4c4d3 Update bcprov-jdk18on to 1.78.1 (#5532)
6f6a78a Update scalacheck to 1.17.1 (#5527)
b83e577 Update sqlite-jdbc to 3.45.3.0 (#5528)
d39d89b Update scala-collection-compat to 2.12.0 (#5526)
c328ec8 Update sbt-native-packager to 1.10.0 (#5522)
c26bd8d Update slick, slick-hikaricp to 3.5.1 (#5524)
24a0bd4 Update logback-classic to 1.5.5 (#5521)
81a72b2 Update slf4j-api to 2.0.13 (#5523)
f20ea74 Update logback-classic to 1.5.4 (#5516)
d3fca35 Update otj-pg-embedded to 1.0.3 (#5512)
4377b08 Update scalamock to 6.0.0 (#5514)
4bb1724 Update sbt-bloop to 1.5.17 (#5510)
790708d Update junixsocket-core to 2.9.1 (#5511)
9b93a5a Update bcprov-jdk18on to 1.78 (#5513)
c747f14 Update play-json to 3.0.2 (#5359)
dae7b05 Update sbt-bloop to 1.5.16 (#5499)
2cb358f Run yarn upgrade to update website deps (#5495)

1.9.8

25 Mar 14:32
00b969b
Compare
Choose a tag to compare

1.9.8

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

Executive Summary

This release reworks the node implementation to use pekko streams. This release of bitcoin-s
also moves away from akka to pekko due to akka's licensing changes.

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.8.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.8.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 Tue 26 Mar 2024 08:42:55 AM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$ sha256sum -c SHA256SUMS.stripped
bitcoin-s-cli-linux-1.9.8.zip: OK
bitcoin-s-cli-mac-1.9.8.zip: OK
bitcoin-s-cli-windows-1.9.8.zip: OK
bitcoin-s-oracle-server-linux-1.9.8.zip: OK
bitcoin-s-oracle-server-mac-1.9.8.zip: OK
bitcoin-s-oracle-server-windows-1.9.8.zip: OK
bitcoin-s-server-linux-1.9.8.zip: OK
bitcoin-s-server-mac-1.9.8.zip: OK
bitcoin-s-server-windows-1.9.8.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/

Modules

app commons

c6524b9 remove usages of new URL() as constructor is deprecated on jdk 20+ (#5219)

App server

Implements a getconnectioncount RPC to query how many peers we are connected to.

4501e13 Stop BitcoinSAppConfig last in BitcoinSServerMain.stop() (#5493)
b25cc8a Fix start rescan race condition, previously we would attempt to fetch blocks before our NodeApi had any peers (#5491)
00c84a9 Set max-open-requests = 64 for appServerTest (#5442)
c407c2e 2024 02 29 cleanup logback files (#5441)
b0cf3d8 Fix race condition between NodeAppConfig.migrate() calls when bitcoin-s.tor.enabled=false (#5120)
4fd7af0 Remove check to see if seed exists when loading a wallet, the key manager can initiate the seed if it dne (#5094)
447c6d0 Implement getconnectioncount rpc (#5048)
6b03133 Fix empty.tail exception occurring on chain block filter / filter headers callbacks (#5021)
e3e1c7f Try bumping timeout to 1 second to avoid false positives test failures (#5018)
e993335 Improve error logging on server (#4896)

bitcoind rpc

Adds support for bitcoind v24. Removes support for bitcoind v19 and v20 as they are past EOL.

a18bd70 Upgrade to bitcoind 24.2 (#5284)
fa34cb4 Bump bitcoind minor versions to 24.1/23.2 (#5088)
3db663a Remove v20 bitcoind support (#4992)
af349d2 Remove support for v19 of bitcoind (#4991)
ff8376c Call syncwithvalidationinterfacequeue inside of {generatetoaddress,generateblock} (#4987)
9a80644 Fix UTXORpcTest flakiness (#4986)
b329c36 Add rpc for syncwithvalidationinterfacequeue, use it in NodeUnitTest.syncNeutrinoNode (#4983)
332893b Add generateblock bitcoind rpc (#4906)
f4244d7 Add bitcoind v24 (#4902)

Build

0bd5978 Remove neutrino.suredbits.com:8333 from docker-compose.yml (#5492)
58adf4c Fix build warnings for --compress flag in jlink (#5485)
9aa730d Revert yml files (#5449)
dd71313 Consolidate disabled secp256k1 workflow into Compile workflow (#5445)
1317adf Add zmq/test and chainTest/test to OS's we weren't previously running on (#5443)
1b25994 Re-add java.sql module to cli jlink image to fix #5411 (#5412)
83a27e2 Add new macOS CI matrix to try and speed up mac jobs (#5364)
db21b88 Set flag nativeImageInstalled =: true so we don't overwrite system's nativeimage (#5358)
a7b67fc 2024 01 18 fix native image build (#5357)
16fb5d2 2023 12 19 compiler opts (#5330)
1084be8 Upgrade cache action to v3 (#5326)
a93954c Only generate scaladoc on CI to decrease build time (#5220)
a18dc6c Add java.instrument to jlink dev builds (#5210)
dd77eb0 Add jdk.management.agent module on dev builds (#5115)
cb272dd Fix build by ignoring junit transitive dep (#5071)

chain

Fixes a few bugs with filter's and reorgs.

8b23b1f Add delay to wait for zmq to get setup in chainTest (#5427)
8f812c6 Fix Promise already completed errors in chainTest (#5440)
748121f 2023 01 06 small chainhandler bug fixes (#5345)
3a927ed Fix bug when requesting FilterSyncMarker for filter headers (#5344)
5e81ec5 Add ChainApi.getBestChainTips() (#5338)
f1775c4 Simplify ChainHandler.nextFilterHeaderBatchRange() (#5336)
af36116 Refactor ChainHandler.findNextHeader() to only take 1 blockchain (#5335)
d983a1b 2023 12 24 Make filter headers / filters sync work with block header reorgs (#5333)
3e6ff52 2023 09 27 issue 5139 (#5247)
e15bf6c reduce default bitcoin-s.chain.neutrino.filter-batch-size to 250 (#5230)
0e2fddc Optimize bestFilterHeaderHeightQuery (#5223)
8ab9718 Reduce best filter height sql query costliness by using a cheap check (#5206)
39cec3a Fix bug where we weren't checking if filters are stale when determing if we need to sync filters (#5203)
4a344f0 Fix bug in ChainApi.processFilterHeaders() (#5157)
dc0e364 2023 03 24 is tip stale (#5024)
de0e892 2023 02 27 Fix bug where duplicate filters caused node not to sync (#5008)
7f08458 Check compact filter headers if we have already stored them in the database (#5003)

cli

c038d2f 2023 08 30 refactor ConsoleCli (#5217)
d1c9228 Fix getpeers -> getconnectioncount in cli (#5052)

clightning rpc

d53ed7d Bump clightning version to v23.02.2 (#5025)

Core

Fixes parsing bugs, caches txid computation to avoid re-computing large transaction's txid.

55e4dab Rework NodeApi.downloadBlocks() to use DoubleSha256DigestBE (#5456)
b27cebc 2024 02 23 TaprootKeyPath.isValid() bug (#5421)
195cfbd Fix handling invoice with minimal encoding of feature bits (#5405)
d641c3d 2024 01 25 Cache txid (#5374)
5885f4e 2024 01 26 rm lazy bytes (#5373)
be1ec84 Fix bug in classifying things as MultiSigSPK that do not have enough public keys in the Script (#5371)
a66925d Fix bug where IndexOutOfBoundsException was occuring when parsing a script with only OP_CMS (#5370)
fd09724 2024 01 23 Validate we have maxSigs number of public keys in MultiSignatureScriptPubKey (#5369)
039144c Add access to underlying MultiSignatureScriptPubKey scriptNumbers represents requiredSigs, maxSigs (#5366)
0f95a1f Fix bounds checking for MultiSignatureScriptPubKey.maxSigsRequired (#5365)
7378570 2024 01 20 Fix bug in parsing OP_CLTV and OP_CSV (#5363)
618e1ca Fix bug in script parsing logic where we weren't checking if a ScriptNumber was negative for a MultiSignatureScriptPubKey (#5362)
421970d 2024 01 11 bip68 bip112 txversion bug (#5346)
5228218 Move filterBatchCache into NodeState.FilterSync (#5253)
4972d0a Move NodeState to core (#5249)
99ca1b7 Add PeerManagerApi.peers (#5170)
ef2c96c Add PeerManagerApi (#5164)
ba8a0bf 2023 07 17 coretest script refactor (#5150)
b1e6488 Move Socks5ProxyParams, Credentials into core (#5138)
aa8da30 Remove batchAndParallelExecute test case (#5122)
3740b4f Implement batchAndParallelExecute with Future.traverse rather than Future.sequence (#5051)
3728b9a Refactor HDPath pattern matching to be safer. (#5046)
5e6cb0d Fix MilliSatoshis.toSatoshis for large values (#5016)
0577b8c Improve Inventory toString messages (#4997)
8bd10d0 Correctly handle witness v1+ spks in fallback addresses (#4949)
7a3c6ae Fix isLocalhost for 127.0.0.1 (#4900)

Crypto

db commons

c92f2ed Add db mapper for ECDigitalSignature (#5002)

DLC node

2b117d3 Remove duplicate Peer class (#5141)

DLC Oracle

DLC Server

556c5e0 Fix NullPointerException inside of DLCServer (#5287)

DLC wallet

Eclair rpc

2799d82 Update Eclair RPC to v0.8.0 (#4994)

gui

fee rate

keymanager

Lnd rpc

f019871 Lnd v0.17.3 (#5375)
008dd42 Upgrade lnd to 0.16.4 (#5194)
08757d5 Lnd 0.16.0 rpc (#5005)

Lnurl

915af37 Add ability to add arbitrary query string params for lnurl pays (#4995)
57b4421 Add nostr zaps params for lnurl (#4988)
ffee1a8 Check lnurl pay invoice description hash (#...

Read more

1.9.7

15 Nov 22:07
0e0c88d
Compare
Choose a tag to compare

1.9.7

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

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

Executive Summary

This release delete all DLCs that are settled using the Alpha version of the DLC protocol.
This makes upgrading to the new v0 format of the dlc protocol easier for an implementation point of view.
This will not delete alpha DLCs that are still in progress, rather throw an exception on wallet startup.

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.7.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.7.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 Wed 16 Nov 2022 09:12:46 AM CST
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$ sha256sum -c SHA256SUMS.stripped
bitcoin-s-cli-linux-1.9.7.zip: OK
bitcoin-s-cli-mac-1.9.7.zip: OK
bitcoin-s-cli-windows-1.9.7.zip: OK
bitcoin-s-oracle-server-linux-1.9.7.zip: OK
bitcoin-s-oracle-server-mac-1.9.7.zip: OK
bitcoin-s-oracle-server-windows-1.9.7.zip: OK
bitcoin-s-server-linux-1.9.7.zip: OK
bitcoin-s-server-mac-1.9.7.zip: OK
bitcoin-s-server-windows-1.9.7.zip: OK
krystal-bull_1.9.7_amd64.deb: OK
Krystal.Bull-darwin-x64-1.9.7.zip: OK
suredbits-wallet_1.9.7_amd64.deb: OK
Suredbits.Wallet-darwin-x64-1.9.7.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/

Modules

app commons

d0dac09 Add AddressType json reader (#4851)

App server

Fixes a bug where we did not categorize Alpha version DLCs correctly.
The intent with the 1.9.7 release was to delete these DLCs for ease of upgrading
to the new DLC protocol. This release fixes this categorization bug, and then deletes the DLCs
that were not previously flagged as Alpha.

0035c64 Fix alpha dlc categorization, delete dlcs that are alpha again (#4879)
24e7bcf Fix race condition in websocket tests for dlc node updates (#4866)

bitcoind rpc

Remove support for v17 and v18 bitcoind-rpc clients.

fff7b19 Handle failed getting version of bitcoind (#4869)
746635a Remove v18 from bitcoind-rpc (#4845)
1d1af1d Add generate helper function for bitcoind (#4852)
2482eb9 remove v17 bitcoind rpc (#4822)
9f53b4e Add address type to createmultisig bitcoind rpc (#4828)

bundle

Removes the bundled app with the javafx GUI. Use the electron app now.

7d809bf Remove legacy GUI, this fixes CI merges to master as we no longer use the deprecated notary tool from apple (#4870)

Build

chain

clightning rpc

6683259 Try upgrading clightning tests to newest bitcoind (#4829)

Core

Add data structures to make sure Vector[TLVPoint] and Vector[DLCPayoutCurvePiece]
follow an ordering.

cc8d327 Support bip32 paths with 'h' instead of an apostrophe (#4881)
4fa31b1 Add OrderedDLCPayoutCurvePieces (#4875)
9261370 Add OrderedTLVPoints as this is an invariant in the codebase in DLCPayoutCurve (#4874)
5111bcc Add test for another tx that broke lnd/btcd (#4868)
8431b69 Add test for parsing super large transaction (#4849)
994ee25 Fix empty witness from companion object to case class (#4823)

Crypto

db commons

DLC node

DLC Oracle

DLC wallet

gui

fee rate

keymanager

Lnd rpc

Bump lnd to 0.15.4 to fix transaction parsing bugs.

7a64acc Bump lnd to v0.15.4 (#4882)
2a30232 Update lnd to v0.15.3-beta (#4850)
a4e38c3 Add helper functions for lnd chain notifications (#4846)

Lnurl

node

Now discover peers on the p2p network by default.
The hope is to move our applications away from connecting to
suredbits peers by default in future releases. This release
will help seed nodes with a list of peers.

ec596ec Enable peer discovery by default (#4862)
f483e35 Adjust period of time we query for peers on the p2p network from 12 seconds -> 1 hour (#4847)

Oracle Explorer Client

wallet

testkit-core

testkit

Refactors to remove v17 and v18 bitcoind-rpc.

1a220a3 2022 10 14 v19 testkit refactor (#4843)
2a61755 Fix type signature (#4830)

tor

Update the tor binary to 0.4.7.10 and improve logging.

4c0e6d5 Drop support for Tor v2 (#4864)
63b05e3 Rework tor exceptions to be more useful (#4854)
89a4c9e Improve tor logging (#4853)
f4fff05 Tor 0 4 7 10 (#4848)

Website

47d2d5a Bump README versions to 1.9.6 (#4863)

Dependencies

4da3e29 Update sqlite-jdbc to 3.39.4.0 (#4880)
f381941 Update junixsocket-core to 2.6.1 (#4876)
322979c Update scalapb-runtime to 0.11.12 (#4877)
17fc49c Remove javafx deps (#4873)
07533ad Upgrade scalajs deps now that we have scalajs 1.11.0 (#4871)
e9b4c77 Upgrade scalajs to 1.10.1 (#4464)
f8ccead Upgrade sbt to 1.7.3 (#4867)
786f77b Upgrade sbt ci release to 1.5.11 (#4865)
0c3513b Update gson to 2.10 (#4860)
1bd9246 Update junixsocket-core to 2.6.0 (#4861)
49a7db3 Update junixsocket-core to 2.5.2 (#4833)
9c05779 Update bcprov-jdk18on to 1.72 (#4835)
cc79f9b Update sbt-assembly to 2.0.0 (#4855)
deaa3c0 Update client3:core to 3.8.3 (#4857)
db74f69 Update sbt-bloop to 1.5.4 (#4831)
963646c Update slf4j-api to 2.0.3 (#4842)
a8d81a7 Update logback-classic to 1.4.4 (#4832)
fc348da Update scalatest to 3.2.14 (#4840)
a2a3eb1 Update sbt-mdoc to 2.3.6 (#4839)

1.9.6

09 Oct 16:27
e73b328
Compare
Choose a tag to compare

1.9.6

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

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

Executive Summary

This release adds network notifications via the websocket when various tor interactions fail when negotiating a DLC.

This release delete all DLCs that are settled using the Alpha version of the DLC protocol.
This makes upgrading to the new v0 format of the dlc protocol easier for an implementation point of view.
This will not delete alpha DLCs that are still in progress, rather throw an exception on wallet startup.

This release also fixes a bug in the wallet where utxos would be stuck in an unconfirmed state.

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.6.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.6.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 Sun 09 Oct 2022 01:39:03 PM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$  sha256sum -c SHA256SUMS.stripped
bitcoin-s-cli-linux-1.9.6.zip: OK
bitcoin-s-cli-mac-1.9.6.zip: OK
bitcoin-s-cli-windows-1.9.6.zip: OK
bitcoin-s-oracle-server-linux-1.9.6.zip: OK
bitcoin-s-oracle-server-mac-1.9.6.zip: OK
bitcoin-s-oracle-server-windows-1.9.6.zip: OK
bitcoin-s-server-linux-1.9.6.zip: OK
bitcoin-s-server-mac-1.9.6.zip: OK
bitcoin-s-server-windows-1.9.6.zip: OK
krystal-bull_1.9.5_amd64.deb: OK
Krystal.Bull-darwin-x64-1.9.5.zip: OK
suredbits-wallet_1.9.5_amd64.deb: OK
Suredbits.Wallet-darwin-x64-1.9.5.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/

Modules

app commons

App server

bitcoind rpc

bundle

Build

chain

Core

Crypto

db commons

DLC node

de43dad Network notifications (#4774)

DLC Oracle

DLC wallet

62081a4 2022 10 05 Delete legacy DLCSerializationVersion.Alpha DLCs for a cleaner upgrade to v0 spec (#4817)

gui

fee rate

keymanager

Lnd rpc

Lnurl

node

7180536 2022 10 07 node test fixes (#4819)

Oracle Explorer Client

wallet

Fix bug where transactions would be stuck in a unconfirmed state

ddc672c Fix unconfirmed -> confirmed state change (#4816)

testkit-core

testkit

tor

Website

Dependencies

c075112 Upgrade sbt to 1.7.2 (#4818)

1.9.5

03 Oct 20:08
eb5924b
Compare
Choose a tag to compare

1.9.5

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

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

Executive Summary

This release includes a well defined ordering for nonces. This also fixes some bugs in the postgres backend for the dlc wallet.

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.5.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.5.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 Tue 04 Oct 2022 08:55:52 AM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

sha256sum -c SHA256SUMS.stripped
bitcoin-s-cli-linux-1.9.5.zip: OK
bitcoin-s-cli-mac-1.9.5.zip: OK
bitcoin-s-cli-windows-1.9.5.zip: OK
bitcoin-s-oracle-server-linux-1.9.5.zip: OK
bitcoin-s-oracle-server-mac-1.9.5.zip: OK
bitcoin-s-oracle-server-windows-1.9.5.zip: OK
bitcoin-s-server-linux-1.9.5.zip: OK
bitcoin-s-server-mac-1.9.5.zip: OK
bitcoin-s-server-windows-1.9.5.zip: OK
krystal-bull_1.9.5_amd64.deb: OK
Krystal.Bull-darwin-x64-1.9.5.zip: OK
suredbits-wallet_1.9.5_amd64.deb: OK
Suredbits.Wallet-darwin-x64-1.9.5.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/

Contributors

Modules

app commons

App server

bitcoind rpc

9179fe1 Add way for to handle utxo not existing with bitcoind.getTxOut (#4797)
9518826 Add blockheight to bitcoind's ListTransactionsResult (#4795)

bundle

Build

65c7c61 Bump versions
87664a3 Error on invalid download of binaries (#4798)

chain

bcddb01 2022 09 12 Filter header and filter websocket events (#4777)

Core

e8ebcf5 Fix bug where signatures were out of order from what was posted in the announcement (#4809)
ecf2d2b Fix bug where we were generating too many nonces (#4805)
8d91abd Add signature ordering to ClaimedDLCStatus.oracleSigs (#4804)
9c506b6 Add OrderedSchnorrSignatures, use it in OracleAttestment (#4803)
4cb47c4 Remove event descriptor parameter from SigningVersion.calcOutcomeHash() (#4796)
75b034d Add socket address to NodeUri (#4794)
fecb990 2022 09 20 rm dlc test (#4792)

Crypto

eb5310f Use ByteVector.compare rather than rolling our own (#4814)

db commons

cf9f48c Set db auth in slick db config (#4781)

DLC node

DLC Oracle

34e023e 2022 09 29 handle unordered sigs (#4807)

DLC wallet

a1fad6b Fix bug where postgres tests weren't running on dlcWalletTest/test (#4801)

gui

fee rate

keymanager

Lnd rpc

6b479e8 Add support for mac m1 lnd rpc (#4780)

Lnurl

node

Oracle Explorer Client

wallet

cad1318 Use postrgres when flagged in TrezorAddressTest (#4768)

testkit-core

testkit

2c85f92 Fix bug in DualWalletTestCachedBitcoind where we didn't pass pgUrl (#4806)
c0443a9 Have EmbeddedPg check PG_ENABLED value (#4791)

tor

Website

712bb50 1.9.5 of the website (#4812)

Dependencies

2a0cb57 Update logkit to 20020529 (#4786)
193922c Update avalon-framework to 20020627 (#4731)
b6d9792 Update scalafx to 18.0.2-R29 (#4749)
b1017f8 Update jna to 5.12.1 (#4742)
6f9cf52 Update bcprov-jdk15on to 1.71.1 (#4743)
f48daad Update javafx-base, javafx-controls, ... to 20-ea+2 (#4745)
419ccbc Update scala-collection-compat to 2.8.1 (#4747)
e10ab42 Update scalacheck to 1.16.0 (#4748)
4e1c176 Update slick, slick-hikaricp to 3.4.1 (#4783)
469a379 Update slf4j-api to 2.0.1 (#4784)
188faf1 Update client3:core to 3.8.0 (#4776)
7d70885 Update waffle-jna to 3.2.0 (#4735)
48aed46 Update sbt-scalajs-bundler to 0.21.0 (#4733)
9287f00 Update sbt-bloop to 1.5.3 (#4732)
55ad5f0 Update gson to 2.9.1 (#4736)
cf6015f Update zxing:core, zxing:javase to 3.5.0 (#4737)
6a74c01 Update metrics-core, metrics-healthchecks, ... to 4.2.12 (#4738)
398e4db Update logkit to 1.2.2 (#4741)
abe2c3d Update logback-classic to 1.4.1 (#4782)
f984012 Update sbt-mdoc to 2.3.3 (#4750)

1.9.4

14 Sep 11:44
88fce93
Compare
Choose a tag to compare

1.9.4

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

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

Executive Summary

This is a bug fix release. In our 1.9.3 release we did not successfully publish all jars for the libraries.
For more information see: #4725

This release drops support for Scala 2.12.x, which fixes this bug. It also updates some dependencies.

This release also adds the abillity to test connections with peers before sending offers and accepts. See #4720

Running bitcoin-s

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.4.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.4.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 --verify SHA256SUMS.asc
gpg: Signature made Wed 14 Sep 2022 10:21:24 AM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$ sha256sum -c SHA256SUMS.stripped                                                                                            
bitcoin-s-cli-linux-1.9.4.zip: OK
bitcoin-s-cli-windows-1.9.4.zip: OK
bitcoin-s-cli-x86_64-apple-darwin: OK
bitcoin-s-cli-x86_64-pc-linux: OK
bitcoin-s-oracle-server-linux-1.9.4.zip: OK
bitcoin-s-oracle-server-mac-1.9.4.zip: OK
bitcoin-s-oracle-server-windows-1.9.4.zip: OK
bitcoin-s-server-linux-1.9.4.zip: OK
bitcoin-s-server-mac-1.9.4.zip: OK
bitcoin-s-server-windows-1.9.4.zip: OK
krystal-bull_1.9.4_amd64.deb: OK
Krystal.Bull-darwin-x64-1.9.4.zip: OK
suredbits-wallet_1.9.4_amd64.deb: OK
Suredbits.Wallet-darwin-x64-1.9.4.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/

Contributors

Modules

app commons

2cfd6f3 Allow for custom config file name (#4709)

App server

7b78478 Attempt to reduce redundant work on startup to speed up start up time (#4764)
7460dcd Parallelize running of individual migrations (#4761)
6b432ea Emit 2000th header received during IBD (#4719)
a36e55c Fix patterns I missed when updating logback (#4713)

bitcoind rpc

0c05edd mask bitcoind password (#4763)
61d4882 Implement retry of fetching bitcoind version when calling clientF (#4760)

bundle

Build

7d9d0c5 Run scalafmt (#4757)
7fe9bdb re-add Compile / fork in server.sbt so we can run appServer from sbt console (#4730)
06844bc Make docker publish use java 18 to avoid slick 3.4.0 issues (#4718)
d2fb3fc Revert "Make electron build use bitcoin-s-ts latest tag (#4701)" (#4711)
38725f0 Make electron build use bitcoin-s-ts latest tag (#4701)
3ad43a8 ignore jakarta dependnecy in logback (#4707)
328e165 Drop support for scalac 2.12.x (#4704)
669eb03 2022 09 02 issue 4699 (#4700)

chain

Core

2f18f62 Give BitcoinNetworks.knownNetworks proper type (#4766)

Crypto

db commons

DLC node

16893f9 DLC connection checks and notifications (#4720)

DLC wallet

26595ab Fix bug where no exception was thrown if the acceptor did not have enough money (#4728)

gui

fee rate

keymanager

Lnd rpc

20ed1dc Fix lnd default datadir (#4767)
8bbfbc8 Add handling so test lnd clients can be reached by docker (#4729)
1758197 Remove bitcoind as a dep for lnd (#4703)

Lnurl

node

fae1a53 Bump bitcoin-s.node.query-wait-time=120 seconds (#4759)

Oracle Explorer Client

wallet

81cddc1 Remove checkRootAccount/downloadMissingUtxos (#4762)
2bf1c9d Try to debug what is happening on CI with zmq test (#4708)
2448fe1 Revert the unique outpoint index DB migration (#4652)

testkit-core

testkit

018a6e5 Add [regtest] section to fixture config (#4717)

tor

1571b85 Bump tor timeout to 120 seconds (#4723)

Website

Dependencies

2d83210 Update flyway-core to 9.2.3 (#4744)
12326c7 Update sqlite-jdbc to 3.39.3.0 (#4755)
6bfb669 Update akka deps (#4724)
fd7bef3 Try out slick 3.4.0-RC3 (#4620)
3ee4fe1 Upgrade dependencies (#4705)

1.9.3

02 Sep 16:21
42ef5d1
Compare
Choose a tag to compare

1.9.3

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

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

Executive Summary

  • Many websocket events added
  • loadwallet RPC to switch wallets without restarting the application
  • taproot script/signature verification
  • multi peer neutrino
  • musig2 Scala implementation

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.

You can then unzip the bitcoin-s-cli-1.9.3.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 Sun 04 Sep 2022 08:37:01 AM CDT
gpg:                using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]

$ sha256sum -c SHA256SUMS.stripped
bitcoin-s-cli-linux-1.9.3.zip: OK
bitcoin-s-cli-macosx-1.9.3.zip: OK
bitcoin-s-cli-windowsserver2022-1.9.3.zip: OK
bitcoin-s-cli-x86_64-apple-darwin: OK
bitcoin-s-cli-x86_64-pc-linux: OK
bitcoin-s-oracle-server-linux-1.9.3.zip: OK
bitcoin-s-oracle-server-macosx-1.9.3.zip: OK
bitcoin-s-oracle-server-windowsserver2022-1.9.3.zip: OK
bitcoin-s-server-linux-1.9.3.zip: OK
bitcoin-s-server-macosx-1.9.3.zip: OK
bitcoin-s-server-windowsserver2022-1.9.3.zip: OK
krystal-bull_1.9.3_amd64.deb: OK
Krystal.Bull-darwin-x64-1.9.3.zip: OK
suredbits-wallet_1.9.3_amd64.deb: OK
Suredbits.Wallet-darwin-x64-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/

Contributors

   125  Chris Stewart
    45  benthecarman
    18  rorp
    14  Shreyansh
     4  GreyMcCarthy
     1  Nadav Kohen
     1  fiatjaf
     1  user411

Modules

app commons

Consolidate duplicate data structures in cli and appServer into a common location.

66d298b Add SatoshisPerVirtualByte json serializers (#4672)
825937e Add more JSON serializers (#4628)
b7c7cb8 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

dbcde5d Fix flaky test (#4695)
f65b483 Allow LnMessage(tlv) & raw tlv to be used in DLCRoutes (#4682)
b18da7a Fix bug where it prevented us from rescanning an empty wallet (#4632)
153d201 Improve logging to try and solve 4618 (#4622)
85c01f7 More lazy initialization for BitcoinSServerMain (#4621)
1b19872 Implement exportstakingaddresswif (#4617)
b6710e7 .map() on loadwallet result before starting http server so wallet is fully loaded (#4614)
a0851fe Run migrations upfront (#4607)
d0dadfa 2022 08 11 issue 4600 and only emit syncing ws event when we are actually syncing (#4604)
b0831f2 Refactor waiting for bitcoind lost blocks into helper method, add context (#4602)
95139bd Improve logging on getBlockchainInfo() (#4590)
9f89ba9 loadwallet endpoint (#4417)
a02e25b Refactor WalletRoutes to take DLCWalletLoaderApi as a paramete (#4565)
8cb45e8 Add unit tests for loader rescans (#4570)
1d3db87 Add rescanState variable to DLCWalletLoaderApi (#4569)
ec0103d 2022 08 02 loadwallet startup logic (#4568)
191df09 Move pollBitcoind out of startBitcoindBlockPolling (#4559)
936a65e 2022 07 21 Modify helper methods in BitcoindRpcBackendUtil to not materialize streams eagerly. (#4526)
a2e7c42 Bump sleeps on CallbackUtilTest (#4534)
d508d65 Implement ability to cancel bitcoind polling jobs (#4538)
4ef27dd Fix bug where dlcNode was not apart of tor dependent configs (#4537)
67dd16d Add missing calls to BitcoinSAppConfig.stop() (#4535)
d4210fa Pull over changes from loadwallet branch (#4527)
5d309fb Fee rate WS notification (#4518)
e3a7c09 Refactor to hide the Message paramter that gets fed to the websocket queue, move it to a internal implementation detail (#4514)
f6df30c Make appServerTest run in parallel to speed up test suite (#4515)
cdef8c0 Set syncing flag to true on startup (#4506)
d1375a5 2022 07 12 server startup cleanup (#4501)
e90e372 Add sync JSON field to the getinfo endpoint output (#4452)
84ce76e Fix race condition related to sqlite3 database not being created before we access it (#4479)
20bf1e6 Remove map on tor to allow access to getdlchostaddress endpoint before tor is fully stated (#4435)
a7aad46 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.

ea12313 Remove support for bitcoind v16 rpc client (#4634)
d95d3db Download arm64-apple-darwin bitcoind binary on M1 Mac OS X (#4588)
7b75413 Drop support for the experimental bitcoind version (#4586)
ed4e332 Dafalut to the latest Bitcoin Core version (#4579)
ad21a11 Create BitcoindStreamUtil and refactor to use it (#4578)
3ae169a V22 RPC Support Update Continued (#4424)
99b75d1 Fixes support for bitcoind taproot descriptor wallets (#4415)
4dc1bc7 add bitcoind v23 rpc (#4368)

bundle

945b391 Remove javafx release (#4684)

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

3578b56 Switch base docker image to eclipse-temurin:17 (#4697)
7322186 Fix Tor hidden service config (#4689)
49b2730 revert docker-compose user again as its impossible to create mounted direcotry as non root user (#4691)
d6c7247 Simple docker-compose.yml, add BITCOIN_S_UID, add DISABLE_JLINK (#4680)
c266ba8 Set entrypoint scripts so they are executable by anyone, revert daemonUserId to test on umbrel (#4678)
969333c Add correct volume mapping for UI (#4670)
15032e2 Add default exposed volume of /bitcoin-s so we can always write data to a place (#4669)
85a0a0b Add docker command mkdir /wallet (#4666)
ac24bfb Revert #4601 / #4624 so that docker works on umbrel again (#4665)
288918d Partially revert #4601 and re-add daemonUser := bitcoin-s (#4655)
2001e86 If DISABLE_JLINK set, don't try to chmod jre/bin/java (#4651)
0b39c38 Configure scalafmt to preserve line endings (#4638)
28311e1 Only build native bitcoin-s-cli on tags or merges to master (#4636)
713ee75 Get rid of standalone scalajs, mdoc CI matrix. Consolidate with other CI jobs (#4633)
2dad9f5 Fix bug where we weren't specify the bash script for each project to modify file permissions (#4625)
ac7939a Adjust bash script permissions so they can be run by any user (#4624)
6b8f45e Update docker-compose.yml (#4599)
e413f04 Remove the daemonUser/daemonUserId combination to make our docker images more portable (#4601)
a2117e2 Downgrade CI jdk 18 -> 17 (#4546)
6f42f83 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)
5b44c07 Fix chmod: jre/bin/java: No such file or directory errors (#4493)
de93503 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)
9985db3 Bump to jdk18 (#4471)
3ea4763 Change 2.13.7 -> 2.13.8 in a few spots where I missed it (#4470)
2968a9e Try to test out setup-java CI action (#4466)
76694a5 Add server build matrix, mac,linux electron builds (#4434)
aed92c3 Implement DISABLE_JLINK env variable to disable jlink jre's u...

Read more

1.9.2

16 Jun 23:01
3154362
Compare
Choose a tag to compare

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

Read more

1.9.1

18 Apr 17:44
2e193ed
Compare
Choose a tag to compare

1.9.1

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

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

A major developer UX improvement we had since this release is the ability for a developer to spin up a docker environment for the DLC wallet easily. 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.1.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.1.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

  • Implements sendoffer so you now can send a DLC offer to a peer
  • Implements the DLC mailbox to allow aggregation of messages such as sendoffer from your peer
  • Allow DLC payouts to an external address not in the bitcoin-s wallet
  • Only sync compact filters since wallet's creation time. This reduces IBD significantly and saves 13GB in disk space.
  • Improving the windows installation experience

app commons

6e87eb1 Offer.offerCollateralSatoshis to offerCollateral (#4148)
1bab51c Adjust appconfig logging to INFO (#4139)

App server

The major feature this release is adding mempool support when bitcoind is as a backend. Now our wallet
will be informed of transactions relevant to the wallet that are in the mempool.

This release also reworks the label APIs in the wallet to make them easier to use.

Finally we expose the offer-send RPC so you can progmatically send an offer to another DLC wallet.

ff8f442 Reduce parallelism to 4 (#4259)
10157d1 Reduce parallelism when fetches txs in mempool for bitcoind backend (#4257)
1bc3962 Async mempool processing (#4245)
4b96407 Add a Tx callback for Bitcoin Core backend (#4243)
00bce5a Fix peer configuration for docker-compose (#4225)
0770fe0 Mempool support for the bitcoind RPC client (#4196)
73fe409 Renable tor configuration by default (#4179)
668ab21 2022 03 09 label refactor (#4175)
aeb3169 getdlcoffer RPC (#4166)
56d0ae6 offer-send RPC (#4153)
6b7058a Add the temporaryContractId field to the json rpc response for offers (#4146)
c315dce Add jdk version to log (#4142)
b86d4e4 Allow both lnmessage and raw tlv to be sent over rpc for acceptdlc (#4140)
44b2ca3 Improve validation error messages (#4141)

bitcoind rpc

3c2ecd5 Make better error message when you cannot connect to bitcoind (#4200)

bundle

bd7f35e Set both bitcoin-s.proxy.enabled and bitcoin-s.tor.enabled in bitcoin-s-bundle.conf (#4194)

Build

52bb6f6 Update docker-compose.yml (#4218)
7156390 Support for Tor Docker (#4223)
b8539bf Upgrade sbt to 1.6.2 (#4187)
23f3598 2022 03 08 Publish zip as part of release.yml (#4174)
3022621 2022 03 01 static wix upgrade product code (#4149)
8d47f80 Update previous stable version to 1.9.0 (#4143)
54e18e6 Update docker image to jdk 17 (#4128)
96d1116 Bump heap size on ci-release (#4118)
16f3da7 Update setup scala action to v13 (#4113)
e98b2c6 Update release.yml to use openjdk@1.17.0 (#4115)
eddcc94 Upgrade CI jdks to openjdk@1.17.0 (#4114)

Core

Small bug fixes and renames this release for core.

07209ce 2022 04 14 dlctxsigner err msg (#4262)
0a092e4 Add fromString for TransactionOutPoint (#4261)
f2fa562 2022 03 31 collateral invariant (#4232)
d5807da Remove SpendingInfoDb.txid parameter (#4199)
8d2a749 Rename WitnessScriptPubKeyV1 -> TaprootScriptPubKey (#4198)
c379cf4 Round Bitcoins to nearest Satoshi (#4154)
5e9be9d Fix hardened serialization (#4160)
c3300ae 2022 03 03 hdpath fromstring factory exn (#4159)
d1fc327 Fix tempContractId hash so we include LnMessage() bytes (#4150)
528e7c8 Remove TxoState.DoesNotExist (#4108)
f657510 Remove invoice max amount limit (#4104)

DLC node

The major feature this release is the offer inbox. This allows a counterparty to send you
and offer for a DLC. Next time you open up your wallet, you can see offers that were sent to you
and decide to accept them or put them in the trash.

c1dccd7 Offer inbox RPC (#4129)
5aa46be Add a warn log if tor is not enabled and we are booting up DLCServer (#4126)
f3c4438 Make DLCDataHandler more type safe (#4123)
34b7d18 External payout addresses for acceptdlc (#4121)

DLC wallet

The theme for this release was making database operations transactional to avoid corrupt wallet states.

We also included a new state for computing adaptor signatures. This can take signficant time on low resource
devices such as a raspberry pi. The new state AdaptorSigComputationState can now be used by UI developers
to signal to the user their DLC is in progress, specifically computing signatures.

The last feature is adding the ability to specify external payout addresses for a wallet to receive DLC payouts.
We plan on using this at Bitcoin 2022 in Miami to allow for users to receive payouts from a esports gaming DLC.

717533b Make first set of database writes in signDLC be transactional (#4264)
37da24b Add SignDbState to fix rescan exception (#4246)
a258767 Use upsert rather than create in dlcsign in case we have seen the inputs before (#4248)
30a061e Use upsert rather than create as offers can use the same outpoints if negotiation fails for some reason (#4247)
ddabc91 2022 04 02 fix walletdlcsetup test (#4237)
b5bfcbc Increase amount so test fails more consistently (#4233)
8081772 Allow acceptor to upsert same outpoint multiple times for different offers (#4230)
5eabe76 Don't send websocket events for DLCs while rescanning the wallet (#4222)
faac871 Make buildCreateOfferAction upsert funding inputs rather than insert (#4186)
3f18f7b Only allow executing a DLC if it is in the Broadcast or Confirmed state (#4185)
a747f84 Mark extarnal payout addresses (#4173)
37611dd Move all initialization of accept into initDLCForAccept() (#4162)
0bb0d9a Add AdaptorSigComputation states to states that a DLC can be cancelled in (#4158)
ee98aa1 Increase offer message size (#4136)
ffd7d92 Database support for incoming offers (#4105)
5777ec1 Add an ability to set custom payout and change addresses (#4101)

gui

ec384a8 2022 03 05 rescan gui (#4170)
8f02ebc 2022 02 26 dynamic fee gui (#4135)

keymanager

8e3b8c1 Improve key manager error message (#4161)
5113cac Log root xpub on keymanager startup (#4157)

Lnd rpc

5c9d646 Add PSBT functions for LND (#4124)
cff0e84 Fix get txs for lnd (#4111)

node

Only sync compact filters since wallet's creation time. This reduces IBD sigficantly and saves 13GB in disk space.
As a datapoint, for a wallet created in May of 2019 it takes ~50 minutes to do IBD. For a new wallet it takes 30 minutes.

This increases the IBD for a new wallet by 90% giving a much better UX. If you want to sync all compact filters from genesis,
the only way to currently do this is adjusting creationTime to be an older timestamp inside of the seed file found at
$HOME/.bitcoin-s/seeds/encrypted-bitcoin-s-seed.json by default.

22051d2 Bumps user agent to 1.9.1 (#4226)
b46574c 2022 02 18 sync since creationtime pt2 (#4109)

wallet

27cb4a3 Add height to log message when processing block (#4251)
7c1c572 Rescan failure logging (#4250)
24125ea Fix case where we broadcast tx with a tag, and then also add the tag when we receive the tx in a block (#4239)
33171fd Use the set of addresses in the wallet when rescanning rather than generating more (#4211)
413dbca Rename clearUtxosAndAddreses(account) -> cle...

Read more

1.9.0

15 Feb 16:59
0ba6bb4
Compare
Choose a tag to compare

1.9.0

Executive Summary

This release is backwards incompatible with previous releases of bitcoin-s.
You will not be able to build a DLC with prior releases of bitcoin-s. This was due to a bug
in how we computed contractId in a DLC. See #4012 for more information.

We now have official typescript bindings for our oracleServer and appServer

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

Running Bitcoin-S

If you want to run the standalone server binary, after verifying gpg signatures, you
can unzip bitcoin-s-server-1.9.0.zip and then run it with ./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.0.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 339A49229576050819083EB3F99724872F822910

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:

sha256sum bitcoin-s-server-1.9.0.zip
ec2bccd61bdabc1f0453d1f8b7608b628da28fe45d55754a269e30391106c18d  bitcoin-s-server-1.9.0.zip

gpg --verify SHA256SUMS.asc
gpg: Signature made Tue 15 Feb 2022 12:58:48 PM CST
gpg:                using RSA key 339A49229576050819083EB3F99724872F822910
gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 339A 4922 9576 0508 1908  3EB3 F997 2487 2F82 2910

Contributors

89  Chris Stewart
36  Scala Steward
35  benthecarman
31  rorp
 3  Nadav Kohen
 2  user411
 1  Shreyansh
 1  dependabot[bot]

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/

Docker

https://hub.docker.com/orgs/bitcoinscala/repositories

app commons

Bug fixes and improve the API for AppConfig

4e6c681 Sort outcomes in decodeoffer response (#4094)
142612f Make newConfigOfType use Vector[Config] (#4039)
2066447 Add isEndpoint to numeric contract descriptor serialization (#4033)
e802254 2022 01 24 rm appconfig varargs (#4011)
3162c1b Ignore .DS_Store files when making backups (#4000)
a7af8ca Patch bug where zipdatadir doesn't work if the directory was not created (#3959)

App server

The major features shipped this release is support for websockets.
You can now be notified of websocket events from the wallet, dlc wallet, and chain.
These are used on the wallet-server-ui to notify when events happen

This module will be renamed to Wallet Server in future releases as that
is a more accurate name for this module.

There are various PRs that broke API compatability from 1.8 -> 1.9. See the list

0894120 Bump timeout to 60 seconds (#4021)
d2f53db Change BTC RPC log level (#4010)
f438ce2 Refactor zipDatadir (#3999)
d88e249 Make RPC authentication optional for localhost (#3980)
ee3ee53 RPC password authentication (#3961)
9dd126b Modify estimatefee endpoint to return a number rather than a string (#3973)
66e23b6 2021 01 11 issue 3938 (#3971)
eeeecb0 Reduce polling log to trace when we try to poll bitcoind (#3964)
5de325e Exclude seeds from backup (#3950)
f8f8f50 Implement ping every 5 seconds to keep websocket connection alive (#3947)
7527388 2021 12 20 ws dlc callbacks (#3926)
50bec2a 2021 12 14 websockets (#3906)
4b07629 Add getmediantimepast RPC call (#3921)
4646ef6 Remove BitcoinSServerMain.startedFP (#3928)
3cd57d3 Remove backupwallet / backup oracle (#3920)
f8f5a8e Update docker-application.conf (#3905)
7e214da Improve BitcoinSAppConfig.zipDatadir (#3903)
6c67e83 2021 12 10 issue 3891 (#3894)
41585a1 Make Bitcoin Core RPC backend to retry on Error -28: Verifying blocks (#3896)
a38309b Add range of block heights to the error message (#3886)
d393848 2021 11 30 issue 3847 (#3862)
0b9500f Add hex fields to decodecontractinfo JSON response (#3830)
1d75292 2021 11 13 scan bitcoind witspkv1 mempool (#3825)
5189b6a revert logging directives on request/response back to DEBUG (#3819)
a40ef1a Break existing api to get new address to remove the requirement for null label (#3818)
21fab4e Improve app server validation error handling (#3796)
403c78f Server Docker config (#3775)

bitcoind rpc

Implements rudimentary support for bitcoin core v22. This release does not implement all RPCs on v22.

5366428 Implement BitcoindRpcClient.epochSecondToBlockHeight (#4068)
c0c54ac Make non-final bitcoind RPC error message more descriptive (#3915)
a6898de Support for Bitcoin Core v22 (#3834)

Build

Ergonomic improvements for runnign test suites, make the installer names more readable
for non technical users.

52dcf51 Automatically download binaries if they are used in test suite (#4005)
e24efd6 2022 01 12 docker ws (#3976)
6e7af37 2021 12 03 installer rename (#3876)
cd3006c Verify binary download hashes (#3849)

Cli

chain

Adds a callback so that we can be notified when a header is processed by the chain module.

7ee1f0f Implement batching of database calls for our chain callback (#4003)
d06b064 2021 12 28 blockprocessed callback (#3946)

clightning rpc

This is a new module in the 1.9 release. It adds support for a clightning RPC.

cb704da Add clightning sendcustommsg (#3883)
7933c90 Update c-lightning to v0.10.2 (#3857)
cd5451a Add clightning listtransactions func (#3797)
01a7c7c Make clightning tests execute async (#3768)
6d43d44 Initial c-lightning rpc support (#3755)

Core

This release merges support for general payout curves in the core module for the DLC specification.
See #3854 for more information

This release also merges support for disjoint union contracts in the DLC specification.

This release fixes a bug in our contractId computation.

This breaks backward compatibility in older releases of bitcoin-s.

13c46e0 Move expensive script checks to last inside of P2PKWithTimeoutScriptPubKey (#4087)
e2b9c45 Change DLCUtil.buildOracleSignatures (#4061)
7a6f043 2022 02 03 issue 4032 (#4042)
71711ca Add invariant to make sure spendingTxId is different than the txid (#4019)
b918cf7 Fix bugs where we were building internally inconsistent SpendingInfoDb (#4016)
d983ad1 Fix contractid computation (#4012)
21de609 2022 01 22 cetsignatures refactor (#4004)
214213b 2022 01 16 issue 3983 (#3987)
93c5121 2021 01 06 tlv invariants (#3965)
8857af2 Address ben's code review on #3854 (#3962)
b342f37 Make ContractDescriptorTemplate an unsealed trait (#3963)
8c5288d Implemented general payout curves (#3854)
6652448 Added constructor for p2pkh for decompressed public keys (#3944)
d66afe9 Add satoshisRounded to Bitcoins (#3904)
0d37c4b 2021 12 08 block parsing bug caused by 65 byte taproot signatures (#3887)
8765c2f Disjoint union dlc (#3839)
422aea2 Fix TypeIdentifier fromBytes (#3832)
0b3654f Remove scientific notation from Bitcoins.toString() (#3811)
09c2562 Added WitnessScriptPubKeyV1 for sending to Taproot addresses (#3737)
aa748c0 2021 11 03 protocol version (#3793)
18726c1 Move ValueIterator out of TLVFactory trait (#3794)
92cf042 Expose MnemonicCode.toEntropy() and MnemonicCode.toEntropyWithChecksum() methods (#3786)
92ab9fa Decide which coin selection solution to use based on waste metric (#3646)

Crypto

f4a2ec8 Make AesEncryptedData a network element / factory (#3952)

Db commons

A major theme this release is enabling our APIs to use database actions in Slick.
This allows us to build database transactions to avoid corrupting data.

We also fixed some bugs in our database implementations around storing very large scriptpubkeys.

4d85b7a Support for big SPKs (#4084)
3d674c3 Create upsertAllAction (#4073)
2166faf Make findByPrimaryKeysAction public (#4079)
3991789 Don't call findByPrimaryKeys if ids is empty (#4074)
48189d5 Make CRUD.run and CRUD.runVec transactional (#4059)
0079489 Create DbMapper for DoubleSha256Digest (#3995)
6c2bb0d Rename database username and password variables (#3930)
afb5122 Add NodeId to DbCommonsColumnMappers (#3880)
085b8b1 Implement CRUDAction.deleteAction() (#3877)
2d57323 Add CRUDAction.{updateAllAction, updateAc...

Read more