On Tue, Oct 29, 2013 at 10:32 PM, Mike Hearn <mike@plan99.net> wrote:
Yes, exactly. That's the point. As you well know I think the whole soft-fork mechanism is wrong and should not be used. If the rules change, your node is *supposed* to end up on a chain fork and trigger an alert to you, that's pretty much the whole purpose of Bitcoin's design. Undermining that security model is problematic.

But if you are getting soft-forked recent versions of the reference implementation WILL alert you; see this code in main.cpp:

        if (nUpgraded > 100/2)
            strMiscWarning = _("Warning: This version is obsolete, upgrade required!");

That is, if more than half of the last 100 blocks are up-version, warn.  block.version is part of the block header, so SPV clients can (and probably should) do the same.

There are also warnings if you are forked, and, most recently, warnings if there is a high-work alternative fork.

--
--
Gavin Andresen