<p>My understanding is that it can operate as a method for warning people about security breaches. Thereby instructing people to patch/update their client.</p>

<p>I'm sure there are other potential uses for it, but my primary interest is in its use as a warning system.</p>

CC BY-SA 3.0
2011-09-05T12:50:57.433Z
2011-09-05T12:50:57.433Z
Alex Waters
<p>TL;DR:</p>

<blockquote>
  <p>As @Alex Waters has stated, it's a centralised alert system to allow
  people to shutdown their clients in response to a threat to the
  overall Bitcoin network, pending a client patch to resolve the issue.
  This was intended as a short term measure to counter-act perceived
  problems in growing the software.</p>
</blockquote>

<p><a href="https://bitcointalk.org/index.php?PHPSESSID=342a726ec7a810dc9e661a8bdc31a057&amp;topic=2958.msg41070#msg41070" rel="noreferrer">This thread on the forum</a> has some interesting information about it (I've fixed the links to cover the moved forum):</p>

<blockquote>
  <p>Yes, it appeared in version 3.11. Here's the thread discussing it:</p>
  
  <p>"Development of alert system"
  <a href="https://bitcointalk.org/index.php?topic=898.0;all" rel="noreferrer">https://bitcointalk.org/index.php?topic=898.0;all</a> </p>
  
  <p>But I think Satoshi took it out of recent builds, to avoid accusations
  that he was a point of central control (because his key would be used
  to sign the alert). If I can find the reference to that announcement,
  I'll post it.</p>
  
  <p>edit: here's the announcement about the removal of "safe mode". It's
  not clear to me whether the alert itself was removed, or whether the
  ability to have the alert shut down transaction processing was
  removed:</p>
  
  <p>Removed safe mode (0.3.19)
  <a href="https://bitcointalk.org/smf/index.php?topic=2228" rel="noreferrer">https://bitcointalk.org/smf/index.php?topic=2228</a></p>
</blockquote>

<p>Clearly, Satoshi intended it to be a centralised mechanism to issue alerts that would result in clients stopping transactions (not block generation). This would act as an effective mechanism to cause clients to upgrade as a result of a bug, but a naive interpretation is that it is also a good way to shutdown an economy. </p>

<p>Anyone can build a standard client and replace the key requirement with one of their own, thus negating the efficacy of a system-wide shutdown due to a compromised key. Essentially, this would cause a fragmentation of the standard client as nodes seek to protect themselves from external compromise.</p>

<p>Satoshi notes this himself in <a href="https://bitcointalk.org/index.php?topic=898.msg11150#msg11150" rel="noreferrer">this comment</a>:</p>

<blockquote>
  <p>It can't do arbitrary actions remotely.  Maybe some of you are
  responding to other posters who suggested the alert system should do
  more?</p>
  
  <p>If there is an alert, the following json-rpc methods return an error:
  sendtoaddress getbalance getreceivedbyaddress getreceivedbylabel
  listreceivedbyaddress listreceivedbylabel</p>
  
  <p>The remaining 14 methods function as normal.</p>
  
  <p>I believe the safer option should be enabled by default.  If you want
  your server to keep trading and ignore an alert saying the money its
  receiving might be like the money from the overflow bug, then you can
  use the switch and not blame anyone else if you lose your money.</p>
  
  <p>Worst case if you leave alerts enabled, your site stops trading until
  you upgrade or add the -disablesafemode switch.</p>
  
  <p>Getting surprised by some temporary down time when your node would
  otherwise be at risk is better than getting surprised by a thief
  draining all your inventory.</p>
  
  <p>Someday when we haven't found any new bugs for a long time and it has
  been thoroughly security reviewed without finding anything, this can
  be scaled back.  I'm not arguing that this is the permanent way of
  things forever.  It's still beta software.</p>
</blockquote>

<p>Given the ongoing backlash of misunderstanding over the concept, it appears that it was decided to <a href="https://bitcointalk.org/index.php?topic=2228.msg29479#msg29479" rel="noreferrer">remove the feature</a> and rely instead on detecting a dodgy blockchain that is longer than the longest valid one:</p>

<blockquote>
  <ul>
  <li>Removed "safe mode" alerts "safe mode" alerts was a temporary
  measure after the 0.3.9 overflow bug.  We can say all we want that
  users can just run with "-disablesafemode", but it's better just not
  to have it for the sake of appearances.  It was never intended as a
  long term feature.  Safe mode can still be triggered by seeing a
  longer (greater total PoW) invalid block chain.</li>
  </ul>
  
  <p>Builds:
  <a href="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/" rel="noreferrer">http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/</a></p>
</blockquote>

CC BY-SA 3.0
2011-09-05T19:55:38.237Z
So, now it's definitely not in the client?
ripper234
CC BY-SA 3.0
2011-09-06T05:48:34.503Z
Well, I had a quick rootle through the source code of 0.3.24 and there is a reference to it in rpc.cpp so that the JSON API continues to enter safe mode. Also in main.cpp and main.h there are classes that reference the alert mechanism. This is just the result of a quick skim over the code, my initial thought is that it would benefit from a CPP developer more familiar with the standard client to look it over more thoroughly to give a definitive answer.
Gary
CC BY-SA 3.0
2011-09-06T06:11:20.977Z
Turned this into a real question: http://bitcoin.stackexchange.com/questions/636/is-the-alert-system-still-in-the-main-clients-code-will-it-be-removed
ripper234
CC BY-SA 3.0
2011-09-05T17:51:50.293Z
2011-09-05T17:51:50.293Z
Gary
<p>I understand Bitcoin has an alert system. Can someone explain what it is, how does it work, and what was it designed for?</p>

<protocol>
What is the Alert system in the bitcoin protocol? How does it work?
ripper234
# What is the Alert system in the bitcoin protocol? How does it work?

(Asked by: username_0 on 2011-09-05)

I understand Bitcoin has an alert system. Can someone explain what it is, how does it work, and what was it designed for?

**Tags:** protocol


---

## 2 answers

### Answer by username_2 on 2011-09-05. Score: 10 | Accepted answer

TL;DR:

> As @username_1 has stated, it's a centralised alert system to allow
> people to shutdown their clients in response to a threat to the
> overall Bitcoin network, pending a client patch to resolve the issue.
> This was intended as a short term measure to counter-act perceived
> problems in growing the software.

[This thread on the forum](https://bitcointalk.org/index.php?PHPSESSID=342a726ec7a810dc9e661a8bdc31a057&topic=2958.msg41070#msg41070) has some interesting information about it (I've fixed the links to cover the moved forum):

> Yes, it appeared in version 3.11. Here's the thread discussing it:
>
> "Development of alert system"
> <https://bitcointalk.org/index.php?topic=898.0;all>
>
> But I think Satoshi took it out of recent builds, to avoid accusations
> that he was a point of central control (because his key would be used
> to sign the alert). If I can find the reference to that announcement,
> I'll post it.
>
> edit: here's the announcement about the removal of "safe mode". It's
> not clear to me whether the alert itself was removed, or whether the
> ability to have the alert shut down transaction processing was
> removed:
>
> Removed safe mode (0.3.19)
> <https://bitcointalk.org/smf/index.php?topic=2228>

Clearly, Satoshi intended it to be a centralised mechanism to issue alerts that would result in clients stopping transactions (not block generation). This would act as an effective mechanism to cause clients to upgrade as a result of a bug, but a naive interpretation is that it is also a good way to shutdown an economy.

Anyone can build a standard client and replace the key requirement with one of their own, thus negating the efficacy of a system-wide shutdown due to a compromised key. Essentially, this would cause a fragmentation of the standard client as nodes seek to protect themselves from external compromise.

Satoshi notes this himself in [this comment](https://bitcointalk.org/index.php?topic=898.msg11150#msg11150):

> It can't do arbitrary actions remotely. Maybe some of you are
> responding to other posters who suggested the alert system should do
> more?
>
> If there is an alert, the following json-rpc methods return an error:
> sendtoaddress getbalance getreceivedbyaddress getreceivedbylabel
> listreceivedbyaddress listreceivedbylabel
>
> The remaining 14 methods function as normal.
>
> I believe the safer option should be enabled by default. If you want
> your server to keep trading and ignore an alert saying the money its
> receiving might be like the money from the overflow bug, then you can
> use the switch and not blame anyone else if you lose your money.
>
> Worst case if you leave alerts enabled, your site stops trading until
> you upgrade or add the -disablesafemode switch.
>
> Getting surprised by some temporary down time when your node would
> otherwise be at risk is better than getting surprised by a thief
> draining all your inventory.
>
> Someday when we haven't found any new bugs for a long time and it has
> been thoroughly security reviewed without finding anything, this can
> be scaled back. I'm not arguing that this is the permanent way of
> things forever. It's still beta software.

Given the ongoing backlash of misunderstanding over the concept, it appears that it was decided to [remove the feature](https://bitcointalk.org/index.php?topic=2228.msg29479#msg29479) and rely instead on detecting a dodgy blockchain that is longer than the longest valid one:

> * Removed "safe mode" alerts "safe mode" alerts was a temporary
>   measure after the 0.3.9 overflow bug. We can say all we want that
>   users can just run with "-disablesafemode", but it's better just not
>   to have it for the sake of appearances. It was never intended as a
>   long term feature. Safe mode can still be triggered by seeing a
>   longer (greater total PoW) invalid block chain.
>
> Builds:
> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/>

> **Comments:**
> **username_0**: So, now it's definitely not in the client?  
> **username_2**: Well, I had a quick rootle through the source code of 0.3.24 and there is a reference to it in rpc.cpp so that the JSON API continues to enter safe mode. Also in main.cpp and main.h there are classes that reference the alert mechanism. This is just the result of a quick skim over the code, my initial thought is that it would benefit from a CPP developer more familiar with the standard client to look it over more thoroughly to give a definitive answer.  
> **username_0**: Turned this into a real question: http://bitcoin.stackexchange.com/questions/636/is-the-alert-system-still-in-the-main-clients-code-will-it-be-removed  

---

### Answer by username_1 on 2011-09-05. Score: 1

My understanding is that it can operate as a method for warning people about security breaches. Thereby instructing people to patch/update their client.

I'm sure there are other potential uses for it, but my primary interest is in its use as a warning system.


---

