•
4 min read

Upgrading an Umbrel node to Knots 29.4.2

Table of Contents

First time on BLAKE2b? The August 30 guide is the full path: Knots, the wallet, DATUM. This post is only the upgrade, for a node already on the chain.

Why now

Knots 29.4.2.knots20260508 was published September 21 at 06:02 UTC. It carries PR #419, the 45-day coinbase maturity: coins mined from block 973,440 on cannot be spent before 979,920. A node on 29.4.1 validates those blocks but does not enforce the rule. Post fourteen has the rule and its history. Ours was on rc4 from August 30 until this morning.

The path

Umbrel’s own store still lists the “Bitcoin Knots” app at 1.2.13, which is 29.4 without BLAKE2b. Léo’s four pull requests to update it were closed unmerged and the fifth, #6108, is open, so the update never appears on its own. The shortcut is the one from August 30: point the box’s copy of the store at Léo’s repository, switch to the branch carrying 1.2.18, and click Update before Umbrel’s re-sync deletes the branch. Same app id, same data directory, same wallet; only the image changes.

The way back, before you start: the same command ending in git switch rc4 puts 1.2.14, the rc4 image, in the same dialog.

  1. Open a second tab at http://umbrel.local/app-store?dialog=updates and leave it there.
  2. Settings (the sliders icon) > Advanced settings > Terminal > umbrelOS. Paste:
cd umbrel/app-stores/getumbrel-umbrel-apps-github-* && git remote add leo https://github.com/Retropex/umbrel-apps.git; git fetch --all && git switch v29.4.2.knots20260508

The ; after the remote lets the line run twice if the re-sync beats you.

  1. When it prints Switched to a new branch, reload the updates tab until Bitcoin Knots 1.2.18 appears.

The Umbrel updates dialog offering Bitcoin Knots 1.2.18, "Update to Bitcoin Knots v29.4.2.knots20260508", above DATUM (blake2b) v0.4.1-beta-7

Click Update on the top one only. The DATUM update below it is a separate step; its own note says to re-select the Knots node in the gateway’s settings afterward. We have not done it yet.

  1. Click Update. Ours was down 22 seconds, 10:50:24 to 10:50:46 UTC.

What the node said

Before, by RPC: getnetworkinfo subversion /Satoshi:29.4.1/Knots:20260508rc4/, height 973,374, wallet loaded.

After: subversion /Satoshi:29.4.2/Knots:20260508/, back at 973,375, wallet loaded, and one new line in the log, “Revalidating blocks…”, before the usual check of the last six. getdeploymentinfo lists the rule:

"long_coinbase_maturity": {"type": "flagday", "height": 973440, "height_end": 979919, "coinbase_start_height": 973440, "maturity": 6480, "active": false}

DATUM asked for a new template eleven seconds after the node came up. Nothing on the miner changed.

The store re-synced to master within minutes, and the dialog offers Bitcoin Knots 1.2.13 as an “update” again. That is the downgrade to 29.4 without BLAKE2b. Never click it; it disappears when Umbrel merges.

One catch

29.4.2 replaces the difficulty field with difficulty_blake2b, a different unit (2^32 + 65,537 times the old number), and removes getdifficulty. SpectrGen warned on September 20 that electrs, mempool-backend and the like would need updates. As of 11:14 UTC the official mempool app on our box (3.3.1) is stuck at 973,371, seven blocks behind the node: its backend reports the new core version and its blocks endpoint answers “Failed to get blocks.” Nothing depends on it. DATUM, the wallet and this site read the node directly. Léo’s store carries a mempool app with the new field, which needs his electrs; that is its own step, later. Our own ledger tool read the old field and now derives the same number from bits, so every difficulty on this site stays in the unit it has used since August 30.

Where that leaves things

The node enforces the rule from 973,440, about 18:00 UTC today at 434 seconds a block. The first coinbase inside the window will sit immature in a 29.4.2 wallet for 6,480 blocks; we will read it when it lands. Read at 18:00 UTC: block 973,440 landed at 17:49:53, coinbase 3.12665716 XBT, and the node reports long_coinbase_maturity active at 973,442; post fourteen has the line. We ran this once, on one box. If it drifts, say so on X and this post gets fixed and dated.

Discuss this post on X

Saved you an hour? Tip the node and the clankers.