All Versions
19
Latest Version
Avg Release Cycle
158 days
Latest Release
84 days ago

Changelog History
Page 1

  • v1.9.12 Changes

    March 21, 2026

    1.9.12

    πŸš€ 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

    • 🍎 Publishes native arm64 binaries for macOS in addition to linux
    • ⚑️ Updates native libsecp256k1 binaries
    • βž• Adds support for pure JVM FROST (Threshold Signatures)
    • ⚑️ Updates the pure JVM MuSig2 implementation to be BIP327 compliant
    • βž• Adds support for bitcoind v30
    • πŸ‘Œ Improves performance of database connection handling and node message processing

    βš™ Running bitcoin-s

    If you want to run the standalone server binary, after verifying gpg signatures, you
    can unzip bitcoin-s-server-1.9.12.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.12.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
    

    Website

    https://bitcoin-s.org/

    πŸš€ Releases

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

    πŸš€ Snapshot releases

    https://central.sonatype.com/repository/maven-snapshots/

    Modules

    app commons

    App server

    πŸ‘ d8baef0 Add Taproot witness support to decodeRawTransaction (#6194)

    bitcoind rpc

    πŸš€ This release adds support for bitcoind v30.2 and removes support for v27.

    πŸ‘ ca8d37e bitcoindRpc: Add support for bitcoind-rpc v30.2 (#6177)
    🚚 dbdd1a2 bitcoindRpc: Remove support for bitcoind v27 now that it is EOL (#6115)
    69debb6 Bump to bitcoind v29.2 (#6114)
    392cc7c 2025 10 01 bitcoind v30 (#6095)
    57960f2 bitcoindRpc: Cleanup old bitcoind data strutures (#6122)

    πŸ— Build

    πŸ— 4634808 build: More scala3 backward compatible syntax changes from #5713 (#6265)
    πŸ— 73d9ad6 build: Re-add {wallet,oracle}-server-extra-startup-script.sh to fix broken jre on arm64 machines (#6263)
    1bba4a3 Pull over modules from #5713 that have source compatible scala3 changes (#6257)
    🚚 765a620 Remove -Xms512m, bump -Xmx to 8gb from 4gb (#6229)
    🍎 d58ca4e Add native ARM64 Mac jlink support using GitHub macos-15 runners (#6201)
    πŸš€ 8592124 ci: Use zulu jdk for docker release to avoid temurin jlink/jdep bug (#6104)
    ⚑️ 1aaa397 ci: Update CI runners to java 25 (#6101)

    chain

    πŸš€ This release includes optimizations for block header ancestors and chain verification.
    This implements consensus checks for timestamps in block headers.

    d092aed chain: Make CompactFilterDAO queries lazily created to avoid hotspots in PeerManager (#6218)
    ⚑️ 279c187 chain: Optimize getBlockchainsBetweenHeights() (#6214)
    ⚑️ dde9255 chain: Optimize BlockHeaderDAO.getAncestorAtHeight() (#6211)
    🚚 dab5bbe Move 'getmediantimepast' to Blockchain data structure (#6164)
    πŸ— 1a91847 chain: Fix ChainApi.nextFilterHeaderBatchRange() when we request build a FilterSyncMarker for compact filter
    πŸ‘€ headers we have already seen (#6080)

    cli

    clightning rpc

    ⬆️ a73590f clightningRpc: Upgrade clightning RPC to 25.09 (#6108)
    d487a64 Bump clightning to v25.02 (#6106)
    ⚑️ 4529706 clighntingRpc: Update clightning to 24.11.2 (#5896)

    Core

    πŸš€ This release adds support for FROST and updates MuSig2 to be BIP327 compliant.
    🐎 It also includes significant performance improvements for script deserialization.

    0c31170 core: Cache the byteVector representation of our Script in ScriptProgram (#6232)
    00de151 core: Add ability to construct a scriptsig from the scriptPubKey it is spending (#6152)
    πŸ›° f7fe697 core: Cleanup NetworkPayload.scala (#6118)
    🚚 3ce7b68 core: Move NodeConstants to core, use it in the version message (#6116)
    f568589 core: Fix CompactFilterHeaderDb.toString() (#6083)
    ca9e8d8 Fix Taproot fundingOutputs ordering to comply with BIP-341 (#6129)
    a0ec5e5 core: Make NotFoundMessage not inherit from InventoryMessage, handle NotFoundMessage differently than
    InventoryMessage in node (#6175)
    ⚑️ 58533ff 2026 01 16 update libsecp256k1-zkp (#6181)

    Crypto

    πŸš€ This release adds support for FROST (Threshold Signatures) and updates MuSig2 to be BIP327 compliant.

    d70d242 Adapt MuSig2 API to adhere to BIP327
    2344c18 2026 01 13 FROST signing and verification (#6190)
    1ca8b3b crypto: Add XOnlyPubKey.verify() helpers to verify schnorr signatures with a xonly public key (#6230)

    db commons

    πŸš€ This release re-enables teh hikari connection pool by default. The pool size is 4 connections.
    πŸš€ This release also modifies the parameters given to sqlite connections to improve performance and reliability.
    πŸ”§ A new configuration available is bitcoin-s.{module-name}.dbCommons.busyTimeout which sets the busy_timeout parameter
    for sqlite connections,
    which can help avoid SQLITE_BUSY exceptions when multiple connections are trying to access the same database file.
    0️⃣ By default this is set to 30 seconds.

    0️⃣ 99750b0 2026 03 11 Bump database connection pool size from 1 -> 4 by default (#6253)
    ec7eab3 dbCommons: sqlite: Change transaction_mode to IMMEDIATE for sqlite (#6252)
    49bc289 dbCommons: Rework DbAppConfig to allow for multiple database connection pools over the lifetime of the
    DbAppConfig class on the JVM (#6245)
    πŸ”§ 4276f54 dbCommons: config: Add BUSY_TIMEOUT configuration setting for sqlite databases (#6250)
    41f5244 dbCommons: Fix setting WAL for sqlite connections, don't register mbeans (#6246)

    DLC node

    DLC Oracle

    DLC Server

    DLC wallet

    🚚 cb2173c Remove old DLC migration code (#6248)
    0️⃣ 9bacdb7 Fix missing default parameter in DLCAppConfig (#6244)

    Eclair rpc

    ⚑️ 18e5054 eclairRpc: Update Eclair RPC interface to v13 (#6107)
    5f869f6 2025 10 07 eclair v12 (#6105)

    gui

    fee rate

    keymanager

    Lnd rpc

    ⚑️ 94bee8e Update LND RPC support to v0.20.1-beta
    ⬆️ a68b7a3 Upgrade lnd RPC interface to support v0.19.3-beta (#6109)

    node

    πŸš€ This release improves node message processing and peer management.

    74b063b node: Add receivedAt timestamp for ControlMessages (#6213)
    bc30c9d node: Bump # of parallel offers to PeerManager from 1 -> FutureUtil.getParallelism (#6206)
    πŸ”Š a09e719 node: Add receivedAt field to DataMessageWrapper, add more logs around the amount of time to process a
    DataMessage (#6204)
    🚚 4f461ca node: Remove the duplicate chainConfig/nodeConfig in NeutrinoNode (#6127)
    πŸ‘€ 8135505 node: Fix bug where we weren't processing the block if we hadn't seen its header before (#6126)
    728c942 node: Store VersionMessage in PeerData (#6121)
    πŸ”Š c50f656 node: Add logs to indicate what peer a message originated from (#6096)
    🌲 a0b48b0 node: Add invalid block header error message to log (#6088)
    448ce39 node: Fix bug when removing a peer from NodeState when we are in the MisbehavingPeer state (#6076)
    3e7b767 node: Add invariant to NodeState that says you cannot both be a steady state peer and be waiting for
    disconnection (#6075)

    wallet

    The release improves the performance of transaction processing and adds database indexes to txo_spending_info for
    txid and txo_state.

    The processing of a single transaction gossiped on the network is improved by 100x in some cases.

    πŸš€ This release also fixes a bug where we weren't properly subscribing to the
    🚦 block processing completion signal in TransactionProcessing,
    which could lead to receiving too many blocks too fast
    or a malicious peer never sending a block without us noticing.

    5330f59 wallet: Cache keymanager (#6242)
    e29ae91 wallet: Add database indexes to txo_spending_info for txid,txo_state (#6215)
    98d9c62 wallet: Change processTransaction() return type from Unit -> ProcessTxResult (#6205)
    🚦 2565a45 wallet: Fix bug in TransactionProcessing.subscribeForBlockProcessingCompletionSignal() (#6136)

    scripts

    βœ… testkit-core

    βœ… testkit

    πŸš€ This release modernizes the test infrastructure to use testcontainers and improves test reliability.

    βœ… 38e0516 testkit: Renable hikari connection pool by default in test cases (#6251)
    βœ… 2b1917b 2026 03 09 AppConfig lifecycle management in test fixtures (#6249)
    βœ… fa04f67 2026 02 12 Rework tests to use testcontainers directly (#6221)
    ad7b860 tes...

  • v1.9.11 Changes

    September 03, 2025

    1.9.11

    πŸš€ 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

    • πŸ‘Œ Improves performance of serialization/deserialization in core
    • βž• Adds support for the testnet4 network. You can set this with bitcoin-s.network = "testnet4" in your bitcoin-s.conf
    • βž• Adds support for v29 of bitcoind
    • Installs the datadir in the correct place for mac installs

    βš™ Running bitcoin-s

    If you want to run the standalone server binary, after verifying gpg signatures, you
    can unzip bitcoin-s-server-1.9.11.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.11.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
    

    Website

    https://bitcoin-s.org/

    πŸš€ Releases

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

    πŸš€ Snapshot releases

    https://central.sonatype.com/repository/maven-snapshots/

    Modules

    app commons

    App server

    🍎 Starting with Bitcoin-S 1.9.11, the macOS data directory has moved:

    • Before 1.9.11: ~/.bitcoin-s
    • πŸ‘ 1.9.11 and later: ~/Library/Application Support/bitcoin-s

    🍎 This change aligns with Apple’s guidelines for application data storage. macOS expects apps to keep user-specific support files in the Application Support folder inside your Library directory. This keeps your home folder organized, ensures compatibility with macOS backups (like Time Machine), and follows best practices for sandboxed and secure applications.

    🚚 Your existing data will not be automatically migrated. If you want to keep your old data, you can manually move the contents from ~/.bitcoin-s to ~/Library/Application Support/bitcoin-s.

    fd3901f Add migration code to put app data in proper spot on mac for fresh installs (#5622)
    4f1be33 appServer: Fix bug where we weren't implementing bitcoind callbacks correctly for rescans (#5998)

    bitcoind rpc

    πŸš€ This release adds support for v29 of bitcoind and bumps the minor releases to 28.2 and 27.2.

    2a8fbc4 bitcoindRpc: Fix listUnspent() for Vector[BitcoinAddress] param (#6038)
    πŸ‘ 1b139d8 Add support for bitcoind 28.2 (#6037)
    8238037 2025 07 29 bitcoind rpc v29 (#6033)
    🚚 f97d61c bitcoindRpc: Remove support for v26 of bitcoind-rpc as its past EOL (#6032)
    7b1fd8e bitcoindRpc: Implement 'scantxoutset' RPC (#5936)
    9d84ff5 bitcoindRpc: Make 'gettxout' RPC handle null return correctly (#5930)
    ⚑️ 7eef13e Update bitcoind to 28.1/27.2 (#5893)

    πŸ— Build

    πŸš€ We now publish our SNAPSHOT release to central sonatype. For more information please read here

    πŸ— ab8d294 build: Remove sonatype build settings as it doesn't fix redirect loop (#6014)
    πŸ”§ 7bc7a77 Explicitly state the publishTo configuration to whatever sonatype says (#6013)
    πŸš€ 0d08342 Try specifiy explicit sonatype endpoint to publish jars to to be compatible with the changes in sbt ci release 1.11.x (#6012)

    chain

    cli

    clightning rpc

    Core

    πŸš€ This release improves support and fixes bugs for handling Taproot transactions.
    🐎 It also improves performance of core.

    2a8b465 core: Add a type to the taproot annex (#5999)
    βœ… c0a1219 core: Add support for testnet4 (#5945)
    2dd140a core: Add TxSigComponent.spendingOutputs (#5957)
    πŸ”¨ c999084 refactor: Rename TxSigComponent.output -> TxSigComponent.fundingOutput (#5956)
    fb49548 core: Fix TapscriptControlBlock bugs (#5955)
    6d240d5 core: Add TaprootWitness.sigVersion (#5954)
    6287e41 core: Change type from Byte -> LeafVersion in TapscriptControlBlock (#5953)
    32eaf31 core: Add ADT for LeafVersion (#5952)
    aeca55f core: Fix type annotation on TapscriptControlBlock.apply() (#5951)
    ed66937 core: Fix bug when converting OP_0 to long (#5948)
    959993b core: Add Address descriptors from BIP385 (#5935)
    ⚑️ 62252da core: Optimize base58 serialization and deserialization (#5934)
    πŸ“œ 124451f core: Add carveout for parsing 'nonstandard' string to ScriptType.NONSTANDARD (#5933)
    0c8f865 core: Tighthen ScriptFactory.isValidAsm() checks (#5929)
    12c1bdf core: Tighten MultiSignatureScriptPubKey.isValidAsm() check (#5928)
    πŸ“œ b291e6d core: Use splitAt() rather than duplicitvely slicing in ScriptParser.sliceConstant() (#5927)
    🚚 31fbada core: Remove ParsingHelper inside of ScriptParser (#5926)
    πŸ“œ adfeb7f core: Use ByteVector.concat in RawTransactionInputParser.write() (#5925)
    πŸ“œ 2a0b2e6 core: Use ArrayBuffer instead of Vector inside of ScriptParser.parse() (#5922)
    πŸ“œ 3c148eb core: Don't unnecessarily encode to hex when parsing pushdata ops (#5923)
    ec00e22 crypto: Add buffer size calculation to efficiently use memory (#5919)
    ⚑️ a1dc9fb core: Optimize Int64.fromBytes(), add invariant that WitnessTransaction.fromBytes must have at least 4 bytes left over for the locktime (#5914)
    8954e24 core: Check maxPushSize limit inside of P2SHScriptSignature.isValidAsm() (#5921)
    16e2ea2 core: Check if P2SHScriptSignature is push only when type checking (#5920)
    ⚑️ c96df6a core: Optimize WitnessCommitment.isValidAsm() (#5918)
    db06873 crypto: Cache ECPublicKeyApi.isFullyValid (#5916)
    618338b core: Use ByteVector.concat() to create transaction serialization (#5910)
    752a758 core: Make BytesUtil.writeCmpctSizeUInt() faster by avoiding BigInt allocations in CompactSizeUInt (#5909)
    ⚑️ 4547052 core: Optimize writing of block headers to avoid unncessay array copies (#5908)
    6f9efaf core: Add ScriptNumber check in P2SHScriptSignature.isRedeemScript() (#5900)
    ⚑️ 73cf14d core: Optimize ScriptParser.parseOperationByte() (#5899)

    Crypto

    πŸš€ This release removes the requirement that data being signed be 32 bytes in length.
    Arbitrary data lengths can now be signed in accordance to BIP340.

    🚚 45fbbd9 2025 03 15 Remove data.length == 32 requirement from secp256k1jni (#5961)
    74d8b59 crypto: Avoid recomputing ECPublicKey by caching it (#5915)

    db commons

    DLC node

    DLC Oracle

    DLC Server

    DLC wallet

    Eclair rpc

    ⬆️ cda49a1 Upgrade eclair to 0.11.0 (#5894)

    gui

    fee rate

    keymanager

    Lnd rpc

    ⬆️ 8331c6d lndRpc: Upgrade lnd to 0.18.4 (#5895)

    Lnurl

    🚚 6511add lnUrl: Remove LnUrl module (#5917)

    node

    c2f957b node: Fix bug where we were circumventing bitcoin-s.node.enable-peer-discovery (#5962)
    🌲 c6d8319 node: Log receiving control messages (#5947)
    🌲 f6820d1 node: Log sending version message (#5946)

    wallet

    scripts

    6d7f53d scripts: Rework scanBitcoind() to take a Sink parameter to stream scan results to (#5981)
    ⚑️ bf3fc65 scripts: Update logback.xml (#5898)

    βœ… testkit-core

    βœ… testkit

    tor

    Website / Deps

    ⚑️ 97d2eb2 Update metrics-core to 5.0.4 (#6057)
    ⚑️ e3d7b54 Update metrics-core, metrics-healthchecks, ... to 4.2.36 (#6056)
    ⚑️ 47b9a17 Update pekko-actor, pekko-discovery, ... to 1.2.0 (#6058)
    ⚑️ 0d049f6 Update sbt, scripted-plugin to 1.11.5 (#6053)
    ⚑️ 4cc6e8c Update metrics-core, metrics-healthchecks, ... to 4.2.34 (#6052)
    ⚑️ edbe2cd Update scalapb-runtime to 0.11.20 (#6051)
    ⚑️ 09e716c Update sbt-unidoc to 0.6.0 (#6050)
    ⚑️ cbc4a44 Update sbt-native-packager to 1.11.3 (#6049)
    5eddf19 Add 1.9.11 website version (#6046)
    ⚑️ c378cfd docs: Update website deps (#6045)
    πŸ“š 88740c8 docs: Update datadir location for macOS in documentation (#6044)
    πŸ“š d614de7 Fix typos and spelling errors in documentation (#6025)
    πŸ“š 8827c37 Fix typos and spelling errors in documentation (#5990)
    πŸ“š 7f84944 fix: typos in documentation files (#5913)
    ⚑️ 349f78f Update metrics-core to 5.0.2 (#6047)
    πŸš€ d900150 Update sbt-ci-release to 1.11.2 (#6042)
    ⚑️ 6b3c510 Update scalamock to 7.4.1 (#6040)
    ⚑️ 4d71d83 Update sbt-bloop to 2.0.13 (#6039)
    ⚑️ 79a8877 Update sbt, scripted-plugin to 1.11.4 (#6036)
    ⚑️ 66efeae Update sbt-bloop to 2.0.12 (#6034)
    ⚑️ f3ddc79 Update pekko-actor, pekko-discovery, ... to 1.1.5 (#6030)
    ⚑️ 9329546 Update sqlite-jdbc to 3.50.3.0 (#6031)
    ...

  • v1.9.10 Changes

    January 25, 2025

    1.9.10

    πŸš€ This release is backwards compatible with the 1.9.x series of bitcoin-s

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

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

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

    Executive Summary

    πŸš€ This release adds taproot keypath signing support. You can enable this with bitcoin-s.wallet.purpose=taproot in your bitcoin-s.conf.
    πŸš€ This release improves wallet performance and reliability and fixes various deadlocking issuese in the node/ module.

    βš™ Running bitcoin-s

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

    You can then unzip the bitcoin-s-cli-1.9.10.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 Sat 25 Jan 2025 10:19:29 AM CST
    gpg: using RSA key 9234F4D6AF47C71B741A390F8976CA0AF71A7A2A
    gpg: Good signature from "Chris Stewart <stewart.chris1234@gmail.com>" [ultimate]
    
    shasum -c SHA256SUMS.stripped
    bitcoin-s-cli-linux-1.9.10.zip: OK
    bitcoin-s-cli-mac-1.9.10.zip: OK
    bitcoin-s-cli-windows-1.9.10.zip: OK
    bitcoin-s-oracle-server-linux-1.9.10.zip: OK
    bitcoin-s-oracle-server-mac-1.9.10.zip: OK
    bitcoin-s-oracle-server-windows-1.9.10.zip: OK
    bitcoin-s-server-linux-1.9.10.zip: OK
    bitcoin-s-server-mac-1.9.10.zip: OK
    bitcoin-s-server-windows-1.9.10.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

    0️⃣ 90203b2 Use default play-json json serialization macros for bitcoind json classes that cause issues with scala3 (#5718)
    🚚 4471f74 Add error field toImportDescriptorResult, move BitcoindException to app-commons (#5705)
    6b12bb5 Rework NativeProcessFactory.cmd to be Vector[String] (#5623)

    App server

    Also renames listreservedutxos RPC endpoint to getreservedutxos (43b75cc)
    0️⃣ The app server no longer runs on tor by default.

    0️⃣ 2315f50 appServer: Disable tor by default (#5876)
    βͺ 6ef926b appServer: Revert logback.xml (#5857)
    πŸ”¨ 788b99c refactor: Improve bitcoind wallet polling logic (#5834)
    βœ… 1423f2c appServer: Add missing server.stop() in BitcoinSServerMainBitcoindTest (#5831)
    βœ… f280f35 Replace Future[Wallet] -> Wallet parameter in {BitcoinSWalletTest, BitcoindRpcBackendUtil} (#5796)
    πŸ”¨ ba8dd75 refactor: DRY for DLCWalletLoaderApi.loadWallet() (#5787)
    βœ… 835c98e Fix race condition in WebsocketTests (#5748)
    βœ… 9feabc1 Make WebsocketTests rescan test more robust (#5661)
    πŸ”¨ 35003ca refactor: Change interval param of BitcoindRpcBackendUtil.startBitcoindBlockPolling (#5640)
    πŸ”¨ 2021f1f 2024 08 13 walletholder appserver refactor (#5639)
    41fab3d 2024 08 07 createnewaccount rpc (#5638)
    458f3cb 2024 07 29 rm tx bitcoind callbacks (#5632)
    🚚 bc09757 Remove WalletHolder parameter from DLCWalletLoaderApi.loadWallet() (#5628)

    bitcoind rpc

    βž• Add support for v28 of bitcoind.

    πŸ‘ f85953e 2024 10 13 rm bitcoind v25 support (#5707)
    38f0f4d 2024 10 07 v28 bitcoind (#5696)
    38850d2 2024 07 31 bitcoind callbacks (#5631)
    πŸ‘ dad7e1c Add support for bitcoind 27.1 (#5609)

    πŸ— Build

    We are now source compatible with scala3.

    ⬆️ e55e832 2025 01 16 Upgrade download/upload artifact to v4 (#5864)
    πŸ‘· ba4d21c Try pinning CI image to ubuntu 22.04 for now as a workaround until setup-java supports sbt installation (#5843)
    πŸ— 30663fe Remove scala version speicfic build code (#5737)
    πŸ‘• 29f10d0 Turn on -Xlint (#5728)
    🚚 88125a3 Remove .jvmopts file comments, they do not work on ubuntu (#5730)
    28001af Add .jvmopts, conslidate JVM options there (#5729)
    βœ… 7c07aa0 Pull over simple syntax changes for {cli,oracleServer,bench,dlcNode,dlcOracle,dlcOracleTest,eclairRpc,lndRpc,lndRpcTest} from #5713 (#5721)
    6027251 Pull over simple syntax changes for scala3 pt2 (#5720)
    ab6d3f5 Pull over simple syntax changes for scala3 libraries (#5719)
    46d6256 Switch distrubution to temurin, use full semver (21.0.4) (#5704)
    πŸ— 48462d4 add checkout action to electron build (#5604)
    πŸ— 1b109e7 Add previous tag to electron build steps (#5599)
    4885bdb Add -Xsource:3 to lnd-rpc (#5595)

    chain

    βͺ 84aba7e Remove test case specific fixture setup in chainTest, revert to just using test suite specific fixtures (#5712)

    cli

    🌲 841762b cli: Fix log output for bitcoin-s-cli (#5664)

    clightning rpc

    Core

    βž• Add support for taproot keypath signing.
    βž• Add the ability to generate digital signatures with a specific hash type.
    Modify collection types used in core from Seq -> Vector.

    πŸ›° 07270ba core: Rework NetworkPayload traits to use Vector instead of Seq for methods (#5845)
    βœ… d1618a2 Add unit test for RescanState to test recursive rescans correctly (#5786)
    fb318ef core: Fix bug where we weren't checking for valid hash types in TaprootKeyPath.isValid() (#5780)
    b6cc97a 2024 11 20 prevoutmap ordering (#5776)
    67bb3ce 2024 10 31 taproot signing (#5767)
    80be2f5 2024 11 15 partialsig typeparam (#5770)
    bb0e40f 2024 11 16 rm isdummysig (#5771)
    fc4802d core: Implement BIP86 (#5768)
    c5d57de core: Fix divergence in behavior between TransactionSignatureSerializer.hashForSignature() methods (#5765)
    4e8d5ec Add Sign.{signWithHashType(),signLowRWithHashType} (#5757)
    5187eee core: Terminate rescan early when RescanStarted.stop() is called rather than wait for the rescan to complete (#5749)
    e419b18 2024 10 23 merkle vector (#5734)
    07f17cf Rework Block and Transaction data structures to use Vector rather than Seq (#5733)
    dca2146 2024 10 19 rm generic btree (#5725)
    5f47fbe Use BinaryTreeDoubleSha256Digest inside of Merkle.scala rather than BinaryTree[DoubleSha256Digest] (#5724)
    1939e9f core: Fix bug in RescanStarted.entireRescanDoneF (#5654)

    Crypto

    cccaa58 Add Sign.{schnorrSign(),schnorrSignWithNonce()} to Sign interface (#5754)
    17f965f 2024 11 09 schnorrsig hashtype (#5764)
    e69e1e5 2024 10 31 digitalsignature (#5752)

    db commons

    🚚 00b1c85 Remove TableAutoInc[T] type parameter, its unnecessary and causes issues (#5711)

    DLC node

    DLC Oracle

    DLC Server

    DLC wallet

    52c0625 2024 09 30 dlcwallet has a wallet (#5692)
    πŸ”¨ 7d8dd2b refactor: Provide DLCWalletUtil.verifyProperlySetTxIds() with the contractId (#5657)
    🚚 feeb261 Move DLCDAOs to src (#5652)

    Eclair rpc

    gui

    fee rate

    πŸ‘€ 3925098 feeProvider: Ignore bitcoiner.live as site seems to be down (#5854)

    keymanager

    Lnd rpc

    bbac259 Bump to lnd 18.x (#5695)

    Lnurl

    node

    πŸ›  Fix various deadlock scenarios in node.
    πŸš€ This release also significantly improves startup performance of the node.

    52040da node: Fix bug where we we could have more connections than allowed by bitcoin-s.node.maxConnectedPeers (#5885)
    6a51b7c node: Limit initial stack push in PeerFinder.start() to maxSearchCount^2 (#5882)
    baa4ddf 2025 01 23 issue 5878 (#5883)
    40fef6e node: Add invariant we have peerServices when we cann PeerManager.handleConnect() (#5880)
    ⚑️ fa4c286 node: Update hardcoded-peers.txt with whats in bitcoin/contrib/seeds/nodes_main.txt (#5877)
    πŸ‘€ 9adbd88 node: Only query p2p seeds if we have no peers in our database (#5875)
    3bf7e6a node: Use approprate ServiceIdentifer throughout node/ module (#5874)
    85cc536 node: Rename PeerData.stop() -> PeerData.disconnect() (#5867)
    4f0c3da node: Fix bug where we were dropping cached outbound messages on the floor (#5853)
    βœ… a94fc3a node: Add PeerStackTest, fix bug where we could have the same ip address multiple times in PeerStack (#5848)
    🚚 4d9c52c node: Move killswitch downstream to avoid queue deadlocks (#5819)
    ⚑️ 812f735 node: Update DNS seeds, optimize PeerFinder.start() to start querying… (#5807)
    eb6edab Add NodeState.NoPeers, cache network messages (#5800)
    βœ… dbe1e7b tests: Make NeutrinoNodeWalletTest more robust against spurious failures (#5784)
    4befe4e Fix potential deadlock when offering to queue in managePeerAfterInitialization() (#5667)
    πŸ”€ cbccecf Add caveat for ConnectPeer logic to only attempt to sync from a peer when a query is timed out (#5666)
    πŸ›° 490e021 Add payload to query timeout log (#5660)

    wallet

    βž• Add taproot...

  • v1.9.9 Changes

    May 16, 2024

    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.

    0️⃣ 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)
    0️⃣ 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)
    0️⃣ 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)

  • v1.9.8 Changes

    March 25, 2024

    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)
    0️⃣ 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 (#...

  • v1.9.7 Changes

    November 15, 2022

    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

    0️⃣ 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.

    0️⃣ 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)

  • v1.9.6 Changes

    October 09, 2022

    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)

  • v1.9.5 Changes

    October 03, 2022

    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)

  • v1.9.4 Changes

    September 14, 2022

    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

    0️⃣ 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)

  • v1.9.3 Changes

    September 02, 2022

    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)
    0️⃣ 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...