{"id":18379,"date":"2026-08-07T14:28:10","date_gmt":"2026-08-07T21:28:10","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=18379"},"modified":"2026-08-07T14:28:55","modified_gmt":"2026-08-07T21:28:55","slug":"bitcoin-knots-v29-4-knots20260508-with-bip-110","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/08\/07\/bitcoin-knots-v29-4-knots20260508-with-bip-110\/","title":{"rendered":"Bitcoin Knots v29.4.knots20260508 with BIP-110"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">New version of Bitcoin Knots, and I&#8217;ve compiled and installed it on my nodes. One interesting thing I&#8217;ve noticed is it will connect out to more nodes until more inbound nodes connect. The older code would limit to 10 or 11 outbound node connections. And when first fired up it had 17 outbound connections at one point. And it&#8217;s best to be updated before tomorrow when the soft fork activates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/bitcoinknots\/bitcoin\/releases\/tag\/v29.4.knots20260508\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/bitcoinknots\/bitcoin\/releases\/tag\/v29.4.knots20260508<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_c0bb03e3-773a-43c5-a4ca-901101fa6faa\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"200\" src=\"https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/08\/image-20.png\" alt=\"\" class=\"wp-image-18382\" srcset=\"https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/08\/image-20.png 200w, https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/08\/image-20-150x150.png 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/avatars.githubusercontent.com\/u\/1095675?s=40&amp;v=4\" alt=\"@luke-jr\" height=\"20\" width=\"20\"><a href=\"https:\/\/github.com\/luke-jr\">luke-jr<\/a> released this 16 hours ago<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/bitcoinknots\/bitcoin\/tree\/v29.4.knots20260508\">v29.4.knots20260508<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/bitcoinknots\/bitcoin\/commit\/2d531eaf4b0801278b3e928cf9df3b3852001d0a\"><code>2d531ea<\/code><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bitcoin Knots version 29.4.knots20260508 is now available from:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bitcoinknots.org\/files\/29.x\/29.4.knots20260508\">https:\/\/bitcoinknots.org\/files\/29.x\/29.4.knots20260508<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This release includes various bug fixes, performance improvements, and extra safeguards. There are no critical fixes, so updating is not urgent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please report bugs using the issue tracker at GitHub:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/bitcoinknots\/bitcoin\/issues\">https:\/\/github.com\/bitcoinknots\/bitcoin\/issues<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To receive security and update notifications, please subscribe to:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bitcoinknots.org\/list\/announcements\/join\">https:\/\/bitcoinknots.org\/list\/announcements\/join<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">How to Upgrade<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over <code>\/Applications\/Bitcoin-Qt<\/code> (on macOS) or <code>bitcoind<\/code>\/<code>bitcoin-qt<\/code> (on Linux).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Upgrading directly from very old versions of Bitcoin Core or Knots is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Knots are generally supported.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Compatibility<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bitcoin Knots is supported on operating systems using the Linux kernel, macOS 13+, and Windows 10+. It is not recommended to use Bitcoin Knots on unsupported systems.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Known Bugs<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In various locations, including the GUI&#8217;s transaction details dialog and the <code>\"vsize\"<\/code> result in many RPC results, transaction virtual sizes may not account for an unusually high number of sigops (ie, as determined by the <code>-bytespersigop<\/code> policy) or datacarrier penalties (ie, <code>-datacarriercost<\/code>). This could result in reporting a lower virtual size than is actually used for mempool or mining purposes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Due to disruption of the shared Bitcoin Transifex repository, this release still does not include updated translations, and Bitcoin Knots may be unable to do so until\/unless that is resolved.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Notable changes<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This release fixes an issue where the chainstate database would repeatedly rewrite large portions of itself, causing excessive disk reads and writes during normal operation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It also checks for corruption that may be caused by running old node software after BIP110 has entered mandatory signaling. Running old node software, including the latest version of Bitcoin Core (since it has still not yet been updated), will no longer be a fully validating node or safe beginning approximately 2026 August 7th. That can cause the chain-state to become corrupted in some scenarios. This version of Knots will detect and recover from this kind of corruption.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35070\">bitcoin#35070<\/a> validation: prevent FindMostWorkChain from causing UB<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35168\">bitcoin#35168<\/a> validation: Don&#8217;t add pruned blocks to <code>m_blocks_unlinked<\/code> on startup<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35465\">bitcoin#35465<\/a> coins: compact chainstate regularly<\/li>\n\n\n\n<li>knots#323 validation: keep script cache enabled when RDTS deployment inactive<\/li>\n\n\n\n<li>knots#350 validation: correct inherited RDTS-invalid blocks at startup<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Leveldb<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoinknots\/bitcoin\/issues\/61\">#61<\/a>(bitcoin-core\/leveldb): Disable seek compaction<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Net<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/30951\">bitcoin#30951<\/a> Misc v2onlyclearnet updates<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/34028\">bitcoin#34028<\/a> p2p: Saturate LocalServiceInfo::nScore updates at INT_MAX<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35117\">bitcoin#35117<\/a> i2p: Don&#8217;t log raw SAM replies<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35825\">bitcoin#35825<\/a> net: only count connections in AddConnection when the type has a limit<\/li>\n\n\n\n<li>knots#348 net: Update mainnet seeds and scripts<\/li>\n\n\n\n<li>knots#352 Fix spawning Tor subprocess when datadir contains spaces<\/li>\n\n\n\n<li>net: tolerate stale BIP-110 outbound peers as additional connections<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Wallet<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35228\">bitcoin#35228<\/a> wallet: use outpoint when estimating input size<\/li>\n\n\n\n<li>knots#320 descriptor: reject OP_IF\/OP_NOTIF in Taproot miniscript under reduced-data<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">GUI<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>knots#301 GUI: Show warnings on all tabs<\/li>\n\n\n\n<li>knots#330 GUI\/NetWatch: Fix heap corruption from off-thread model mutation<\/li>\n\n\n\n<li>knots#332 GUI: Don&#8217;t assert on translated field labels in ReceiveRequestDialog<\/li>\n\n\n\n<li>knots#336 GUI: Use locale-aware GUIUtil::dateTimeStr for datetime fields<\/li>\n\n\n\n<li>knots#344 GUI: Keep the RPC console on the wallet it is set to<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">RPC<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>policy: don&#8217;t let ignore_rejects relax reduced-data consensus flags<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Build<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/34228\">bitcoin#34228<\/a> depends: Unset SOURCE_DATE_EPOCH in gen_id script<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/34848\">bitcoin#34848<\/a> cmake: Migrate away from deprecated SQLite3 target<\/li>\n\n\n\n<li>knots#309 Bugfix: Build fails to enable ARM CPU crypto extensions<\/li>\n\n\n\n<li>knots#339 cmake: Check PIE link support for C<\/li>\n\n\n\n<li>knots#345 depends: update libevent to 2.1.13-stable<\/li>\n\n\n\n<li>depends: Qt 5.15.19<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Test<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/27052\">bitcoin#27052<\/a> QA: p2p_block_times: test behaviour of a stale block in block announcement time tracking<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/34918\">bitcoin#34918<\/a> fuzz: [refactor] Remove unused g_setup pointers<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35164\">bitcoin#35164<\/a> test: cover P2SH sigop counting in test_witness_sigops<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Doc<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/34510\">bitcoin#34510<\/a> doc: fix broken bpftrace installation link<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/34671\">bitcoin#34671<\/a> doc: Update Guix install for Debian\/Ubuntu<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35283\">bitcoin#35283<\/a> doc: mention -DWITH_ZMQ=ON in BSD build guides<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CI<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35202\">bitcoin#35202<\/a> ci: restore sockets in i686, no IPC job<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35378\">bitcoin#35378<\/a> ci: switch runners from cirrus to warpbuild<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35408\">bitcoin#35408<\/a> ci: 35378 followups<\/li>\n\n\n\n<li>knots#328 ci: install librsvg2-bin and imagemagick for test each commit<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Misc<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/pull\/35384\">bitcoin#35384<\/a> util: Check write failures before renaming settings.json<\/li>\n\n\n\n<li>knots#329 contrib: don&#8217;t use the default datadir in gen-bitcoin-conf.sh<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Credits<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks to everyone who directly contributed to this release:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/dev\/fd0<\/li>\n\n\n\n<li>andrewtoth<\/li>\n\n\n\n<li>codeabysss<\/li>\n\n\n\n<li>Daniel Pfeifer<\/li>\n\n\n\n<li>darosior<\/li>\n\n\n\n<li>fanquake<\/li>\n\n\n\n<li>Hennadii Stepanov<\/li>\n\n\n\n<li>jayvaliya<\/li>\n\n\n\n<li>junbyjun1238<\/li>\n\n\n\n<li>Kyle Santiago<\/li>\n\n\n\n<li>L\u00e9o Haf<\/li>\n\n\n\n<li>L\u0151rinc<\/li>\n\n\n\n<li>Luke Dashjr<\/li>\n\n\n\n<li>Marco De Leon<\/li>\n\n\n\n<li>MarcoFalke<\/li>\n\n\n\n<li>Maxime<\/li>\n\n\n\n<li>Musa Haruna<\/li>\n\n\n\n<li>naiyoma<\/li>\n\n\n\n<li>Philip D&#8217;Ath<\/li>\n\n\n\n<li>Shrey<\/li>\n\n\n\n<li>stratospher<\/li>\n\n\n\n<li>takeshikurosawaa<\/li>\n\n\n\n<li>ToRyVand<\/li>\n\n\n\n<li>willcl-ark<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>New version of Bitcoin Knots, and I&#8217;ve compiled and installed it on my nodes. One interesting thing I&#8217;ve noticed is it will connect out to more nodes until more inbound nodes connect. The older code would limit to 10 or 11 outbound node connections. And when first fired up it had 17 outbound connections at [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-18379","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=18379"}],"version-history":[{"count":3,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18379\/revisions"}],"predecessor-version":[{"id":18383,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18379\/revisions\/18383"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=18379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=18379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=18379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}