Here’s some context that you may find useful:

It’s not exactly a kill switch, though it could be viewed as similar.

If the node runner does not update the Knots software for a number of years (five years, I believe) it displays a dialogue that asks the user if they would like to continue running the old software. If the user answers no or does not respond, Knots automatically shuts down.

This timer resets when the node runner updates the software. So most people never see it.

The reason this is in the Knots software is because—at some point—outdated software becomes a security issue (to be clear: not a security issue for the Bitcoin network, but for the node operator).

Additionally, if the user has not updated their node software in a number of years, it’s probably a node they left running in their basement or something and forgot about.

So Knots turns off once it becomes outdated, unless the node runner explicitly tells it to keep running.

Not making an argument for or against any node implementation or telling anyone what to do. Just a better explanation of how the function works in practice and my understanding of why it’s in the Knots software.

Reply to this note

Please Login to reply.

Discussion

huh.

sounds…. weird. like the explanation makes sense in theory, but it feels weird.

Fair enough.

For more context, it’s estimated that outdated software is responsible for about 60% of data breaches (https://www.ninjaone.com/blog/it-horror-stories-why-unpatched-software-hurts-business/), because it’s relatively easy to target known vulnerabilities once they are discovered.

The Knots approach may or may not be the best solution, but—to me—it seems fair to at least make an effort to add an automated way to close the security hole caused by outdated software.

interesting. so there are really some sound reasons behind whats being tried. and the trying something different is what has all the culty bros mad?

Took a quick look through the code and I didn't find anything regarding user input (y/n keep running): https://github.com/bitcoinknots/bitcoin/blob/5f8256608fc41c7b72a01a54e9a06ba509a61c8f/src/validation.cpp#L4458

Related issue: https://github.com/bitcoinknots/bitcoin/issues/29

Looks like it does stop validating blocks if it's expired, which probably seems odd, but might be useful to a clueless node runner?

nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s has expired iOS software so he understands it well!

You are correct.

The override is manually applied to the configuration. The dialogue only states the software is out of date. Good correction.