Skip to content

Releases: knots-dev/bitcoin

Bitcoin Knots 29.4.3.knots20260508rc5 (community test build)

Choose a tag to compare

@kwsantiago kwsantiago released this 24 Oct 15:18
v29.4.3.knots20260508rc5

Community test build of a proposed Bitcoin Knots 29.4.3rc5. Not an official release. For test nodes only.

Spec: knots-29.4.3.knots20260508rc5.spec (luke-jr/tmp#9)

Changes since rc4

knots#468 moves to 8a4ca1b. Consensus rules are unchanged from rc4 and rc2.

  • getdeploymentinfo reports the rule from block 973440 (maturity 6480, height_end 979919) until block 979919, then the 180-day rule (0237da5)
  • The wallet no longer takes the chain lock to check old coinbase rewards; results are unchanged (8a4ca1b)
  • feature_dbcrash.py resubmits a block a crash kept from being delivered; test only (c414307)
  • Release notes updated for the getdeploymentinfo change

All 23 Guix outputs (every host, including Windows and macOS) match between kwsantiago and bitcoinmechanic. Only the Linux binaries are published here; macOS signing is Luke's.

Full release notes: doc/release-notes.md in the tagged source.

Coinbase maturity

This release extends the long coinbase maturity softfork deployed in 29.4.2. Bitcoins generated by block 979919 or any later block do not mature until 25920 blocks (about 180 days) later. This applies to every block mined before RDTS expires (a parent median time past of 2027 September 1st 00:00 UTC); bitcoins generated after that need only the original maturity of 100 blocks. Bitcoins generated by blocks 973440 to 979918 keep the maturity deployed in 29.4.2. Versions 29.4.2 and earlier do not enforce the 180-day maturity.

Upgrading

Upgrade before block 979919 (expected around October 31). From rc2 or rc4 the consensus code is the same, so no recheck is expected. A node still running rc3 when block 979920 arrives marks it invalid and stays stuck after upgrading; run bitcoin-cli reconsiderblock <hash of block 979920> and wait for the next block, or restart once with -reindex. A 29.4.2 node that upgrades after block 979919 rechecks the blocks from 979919 at its first start; a pruned node may need to re-sync.

Verify

Signed by A47D 99B6 DB0D 715D 40C5 9A20 23AE 8A8E A7E2 4E38, signing subkey 1004 97C5 8727 107D 9B9D A0FA F160 CC14 F64F 8EF8 (key).

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

StartOS

Installing a .s9pk switches the existing Bitcoin service to this build and keeps its chain data. Switching back is supported. Each package ships the Guix binary above, verified against SHA256SUMS.asc at build time (source).

ae03d2d62c6111197f57d309bdf837a2bbd3204b2837e69523889bc64327fa2f  bitcoind_x86_64.s9pk
34ab048895e2a458e65443929a7ebf3d6579b680543976b64258ce22ad4c8acf  bitcoind_aarch64.s9pk
875879325e260e86c22b7b116b6e31ea3c4cac7207f8491387d997ab01d22bcb  bitcoind_riscv64.s9pk

Umbrel

Leo Haf's Bitcoin Knots app can switch to this build without a resync. In Community App Stores, replace https://github.com/Horizon-btc/Bitcoin-store with https://github.com/knots-dev/Bitcoin-store, then update Bitcoin Knots. Swap back the same way. The image (ghcr.io/knots-dev/umbrel-bitcoin:1.2.20-knotsdev.rc5) ships the Guix binaries above, checked against SHA256SUMS.asc at build time.

Bitcoin Knots 29.4.3.knots20260508rc4 (community test build)

Choose a tag to compare

@kwsantiago kwsantiago released this 23 Oct 16:55
v29.4.3.knots20260508rc4

Community test build of a proposed Bitcoin Knots 29.4.3rc4. Not an official release. For test nodes only.

Spec: knots-29.4.3.knots20260508rc4.spec (luke-jr/tmp#8)

Changes since rc3

Validation

  • knots#468: bitcoins generated by block 979919 or any later block mined before RDTS expires do not mature until 25920 blocks (about 180 days) later. Bitcoins generated by blocks 973440 to 979918 keep the maturity deployed in 29.4.2. This replaces knots#429 from rc3. The code is the same as in rc2 (knots#468 at 24cbd56, which reverted the knots#477 addition)
  • knots#441: post-IBD chainstate fix, carried inside knots#468 again, as in rc2
  • knots#459: testnet4 RDTS expiry extension, back to its knots#468 revalidation test

The regenerated mainnet fixed seeds from rc3 (knots#394) are unchanged. Apart from the version number, the source differs from rc2 only in those seeds.

Full release notes: doc/release-notes.md in the tagged source.

Upgrading from rc3

Upgrade before block 979919 (expected around October 31). An rc3 node that upgrades later checks the blocks from 979919 again at its first start; a pruned node may need to re-sync.

Verify

Signed by A47D 99B6 DB0D 715D 40C5 9A20 23AE 8A8E A7E2 4E38, signing subkey 1004 97C5 8727 107D 9B9D A0FA F160 CC14 F64F 8EF8 (key).

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

StartOS

Installing a .s9pk switches the existing Bitcoin service to this build and keeps its chain data. Switching back is supported. Each package ships the Guix binary above, verified against SHA256SUMS.asc at build time (source).

59d29bb38962b06786ef5df918fd39f0071b233bc887a14313fa63bbe62901f2  bitcoind_x86_64.s9pk
086d6155d567cd5558a2083f72e1e5802e2772f191055b7d4c0df01581ae5550  bitcoind_aarch64.s9pk
c991e9848b3941c1437ab8be490274586a004ca3046b844d5135376caf1f8e6f  bitcoind_riscv64.s9pk

Bitcoin Knots 29.4.3.knots20260508rc3 (community test build)

Choose a tag to compare

@kwsantiago kwsantiago released this 23 Oct 03:03
v29.4.3.knots20260508rc3

Community test build of a proposed Bitcoin Knots 29.4.3rc3. Not an official release. For test nodes only.

Spec: knots-29.4.3.knots20260508rc3.spec (luke-jr/tmp#7)

Changes since rc2

Validation

  • knots#429: bitcoins generated by block 973440 or any later block do not mature until RDTS expires (2027 September 1st), as in rc1. This replaces the 180-day rolling maturity of knots#468 from rc2
  • knots#441: post-IBD chainstate fix, now merged on its own (rc2 carried it inside knots#468)
  • knots#459: testnet4 RDTS expiry extension, with its revalidation test adapted to knots#429

Net

  • knots#394: regenerated mainnet fixed seeds (626 seeds, with a duplicate fix)

Full release notes: doc/release-notes.md in the tagged source.

Upgrading from rc2

Upgrade before block 979920 (expected around October 31). rc2 and rc3 treat bitcoins generated by blocks 973440 to 979918 differently from that block on. An rc2 node that upgrades later checks the blocks from 979920 again at its first start; a pruned node may need to re-sync.

Verify

Signed by A47D 99B6 DB0D 715D 40C5 9A20 23AE 8A8E A7E2 4E38, signing subkey 1004 97C5 8727 107D 9B9D A0FA F160 CC14 F64F 8EF8 (key).

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

StartOS

Installing a .s9pk switches the existing Bitcoin service to this build and keeps its chain data. Switching back is supported. A node on the rc2 package updates to rc3 in place. Each package ships the Guix binary above, verified against SHA256SUMS.asc at build time (source).

8268118738173e0cbf333c87d68b2162db63dfed08260a01a4ca09b8191d643a  bitcoind_x86_64.s9pk
b5c79647f4462fa01bed4484dc5bf95611311f7390ad29d594467f51fc8cd868  bitcoind_aarch64.s9pk
bba858942228556e274d4cbbd9d65a3a6c66f6c5c07d5a687893ba5924ada1f6  bitcoind_riscv64.s9pk

Bitcoin Knots 29.4.3.knots20260508rc2 (community test build)

Choose a tag to compare

@kwsantiago kwsantiago released this 22 Oct 05:03
v29.4.3.knots20260508rc2

Community test build of a proposed Bitcoin Knots 29.4.3rc2. Not an official release. For test nodes only.

Spec: knots-29.4.3.knots20260508rc2.spec (luke-jr/tmp#6)

Changes since rc1

Validation

  • knots#468: 180-day rolling coinbase maturity from block 979919 until RDTS expiry (softfork), replacing knots#429 from rc1. Includes knots#441's post-IBD chainstate fix
  • knots#459: testnet4 RDTS expiry extended to 2027-04-01
  • knots#444: assumeutxo snapshot at height 976000
  • Core 35652: fix a reindex deadlock on interrupt

Net

  • knots#454: check an assumed onion inbound's source address under -v2onlyclearnet
  • knots#462, knots#464: stop a launched Tor process cleanly on shutdown
  • Core 35691: remove a retired DNS seed

RPC

  • knots#471: fix named-only options after a positional and a named parameter
  • knots#472: fix bitcoin-cli dumptxoutset type handling
  • Core 33477: dumptxoutset rollback without invalidating blocks
  • Core 35498: fix an RPC assert crash in getblockfrompeer

Mempool policy

  • knots#319, knots#400, knots#422, knots#463: count more hidden data as datacarrier bytes (data envelopes, dead branches, unprovable pubkeys, BPUB), with new -rejectdeadbranches and -rejectbpub options (default on)
  • knots#438: allow negative modified fees for ephemeral dust
  • knots#457: report datacarrier rejections as non-standard
  • knots#465: saturate the transaction weight sum
  • knots#446: apply -blockmintxfee to coin-age priority selection

Other

  • knots#341: -help and -version no longer touch the datadir
  • Core 32977, 35989: wallet migration and importdescriptors crash fixes
  • Core 36218: avoid pipe2 on Darwin
  • knots#428, Core 32624: test fixes and a wallet migration fuzz target

Full release notes: doc/release-notes.md in the tagged source.

Verify

Signed by A47D 99B6 DB0D 715D 40C5 9A20 23AE 8A8E A7E2 4E38, signing subkey 1004 97C5 8727 107D 9B9D A0FA F160 CC14 F64F 8EF8 (key). Refresh the key if you imported it for rc1; the subkey is new.

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

StartOS

Installing a .s9pk switches the existing Bitcoin service to this build and keeps its chain data. Switching back is supported. A node on the rc1 package updates to rc2 in place. Tested on a live x86_64 StartOS node switching from rc1. Each package ships the Guix binary above, verified against SHA256SUMS.asc at build time (source).

00979e9bd72587ceb50b7e14585aca4a15906a37e774232774f37689002e8f63  bitcoind_x86_64.s9pk
1b1ecab71dc07ef77282781b90f3e5a094313fbd515228d8fdd90794639dc6ea  bitcoind_aarch64.s9pk
529928edf67c6a864bf6aca6f58599ee1810def62d62c9a6cb31c79bb537443c  bitcoind_riscv64.s9pk

Bitcoin Knots 29.4.3.knots20260508rc1 (community test build)

Choose a tag to compare

@kwsantiago kwsantiago released this 06 Oct 13:48
v29.4.3.knots20260508rc1

Community test build of a proposed Bitcoin Knots 29.4.3rc1. Not an official release. For test nodes only.

Spec: knots-29.4.3.knots20260508rc1.spec

Changes over 29.4.2

  • knots#429: long coinbase maturity extended until RDTS expiry (softfork, effective at block 979920)
  • knots#430: warn when the node is held back by a block marked invalid (backport of Core 33553)
  • knots#425: avoid header sync from stale nodes for BLAKE2b blocks, plus a fix so signet, testnet3 and regtest still sync from Core peers
  • knots#398: prefer NODE_BLAKE2B for every outbound slot
  • knots#394: regenerated mainnet fixed seeds, plus a fix that keeps the cjdns and testnet4 seeds
  • knots#437: add seed.thelionpool.org to the mainnet DNS seeds

Verify

Signed by A47D 99B6 DB0D 715D 40C5 9A20 23AE 8A8E A7E2 4E38 (key).

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

StartOS

Installing a .s9pk switches the existing Bitcoin service to this build and keeps its chain data. Switching back is supported. Tested on a live x86_64 StartOS node switching from 29.4.2.

Known issues

  • If the node crashes while writing its chainstate at the end of initial sync, it needs -reindex-chainstate to restart. This also affects 29.4.2.

Bitcoin Knots 29.3.knots20260717.lts

Choose a tag to compare

@kwsantiago kwsantiago released this 17 Jul 05:19
v29.3.knots20260717.lts
c9c7b75

First point release of the Bitcoin Knots 29.x LTS line, adding reviewed bug fixes on top of the v29.3.knots20260508 baseline. Fixes only; no features, no policy changes.

Fixes

  • knots#309: build: enable ARM CPU crypto extensions correctly (clang pragma fix)
  • knots#298: check bounds of bytespersigop[strict], maxscriptsize, and limit{ancestor,descendant}size params
    • includes a follow-up (582024cc1e5) naming the options type in template args: the bare braced-init-list breaks Apple clang; reported upstream on the PR
  • knots#330: GUI/NetWatch: fix heap corruption from off-thread model mutation
  • knots#331: GUI: sync RPC console wallet selector with main window selector
  • knots#329: contrib: don't use the default datadir in gen-bitcoin-conf.sh
  • knots#328: ci: install librsvg2-bin and imagemagick for the test-each-commit job

Provenance

Assembled per knots-lts-29.spec (queue entries carry review provenance inline). Each merged head matches the commit hash that was ACK'd on the corresponding PR.

Bitcoin Knots 29.3.knots20260508 LTS

Choose a tag to compare

Bitcoin Knots 29.x LTS baseline, marking the 29.3.knots20260508 release as the starting point of the 29.x long-term support line.

What this is

LTS policy

The 29.x LTS line receives critical bug fixes and security fixes only. No new features, no policy changes, no non-fix backports.

Cutting a point release

  1. Append fix lines to the appropriate section of knots-lts-29.spec
  2. Set a new timestamp and update the bump_version line (knots<YYYYMMDD>.lts)
  3. Reassemble with assemble-knots.pl and fast-forward 29.x-knots-lts

Reassembly prerequisites

The spec references sub-branches (29.x-syslibs, 29.x-knotsfixes) and many PR branches hosted across the bitcoinknots and contributor remotes. All commits it pins are reachable in this fork's history, but assemble-knots.pl resolves branches by name, so reassembling requires the same git remotes configured as the upstream Knots workflow (bitcoinknots/bitcoin and the contributor forks named in the spec). This fork is a baseline snapshot, not yet a self-sufficient assembly environment.