Re: アラートシステムの開発

参加者: Macho

Quote from: mizerydearia on August 25, 2010, 09:14:31 AM

Quote from: Macho on August 25, 2010, 03:03:03 AM

Quote from: satoshi on August 24, 2010, 11:51:12 PM

これについてヒステリックになるほど心配性なのであれば、ステータスバーに警告メッセージが表示されたらウェブサイトとフォーラムを確認するくらい心配性なはずだ。

オーバーフローバグのような別のバグが発生した場合、自動化されたウェブサイトが管理者が何が起きているか確認して対応を決定できるまで取引を停止することが重要だと思う。誤報だと判断してリスクを取りたい場合は、「-disablesafemode」スイッチを使える。

分散型の匿名取引システムを作り、信頼に依存せず強力な暗号技術を使うサトシが、我々を心配性と呼んでいる(笑)

自分のPCで動いているソフトウェアへのリモート操作を望まないのは、心配性ではなく常識だと思う。もちろん良いアイデアではあるが、ユーザーが明示的に要求した場合にのみ有効にすべきだ。オプトアウトではなくオプトインにすべきだ。この2つには大きな違いがある(Facebookに聞いてみるとよい)。デフォルトで有効になっていると、多くの人がその存在に気づかないことを前提とした、悪用可能な・悪意ある機能として認識されるだろう。そして、そうした懸念は正当化されないとは言えない……あなたがコミュニティの最善の利益を心に持っていることは確かだが、このシステムはいかなる中央の信頼にも依存しないよう設計されたものであり、その原則を破るべきではない。

この機能を有効にするために、-disablesafemodeでユーザーに無効化を期待するのではなく、-enablesafetyを使うのはどうか?自分のソフトウェアがリモートアラートに応答するようにしたいなら、明示的に有効にすべきであり、そうすれば自分が何をしているか認識し、自分の意思で行っていることが保証される。デフォルトで有効になっていると、多くの人はこの「機能」が有効であることに気づかず、リモートによる無効化を信頼の裏切りと受け取るかもしれない……もしこの可能性を知らずにソフトウェアが突然動かなくなり、許可を与えていない誰かによってリモートで無効にされたことを発見したら、自分なら確実にそう感じる。

この提案を検討してもらえると嬉しい……ありがとう

同意するが、ソースからコンパイルする場合、

rpc.cpp Code:!mapArgs.count(“-disablesafemode”) を Code:mapArgs.count(“-safemode”) に変更するだけで

Code:// Observe lockdown throw runtime_error(strWarning); となる。 コードはこちらで確認できる:http://bitcoin.svn.sourceforge.net/viewvc/bitcoin/trunk/rpc.cpp?revision=142&view=markup

-enablesafetyを使ったときだけエラーを表示するのは少し奇妙だ。これが起きると安全でない、あるいはセキュリティ上問題があるのだろうか?

http://www.bitcoin.org/wiki/doku.php?id=api

コードを理解した限りでは、getinfo、help、stop、getgenerate、setgenerate以外の http://www.bitcoin.org/wiki/doku.php?id=api のメソッドを使用する際、かつ警告がある場合:

-disablesafemodeが実行中のプロセスに渡されていれば、警告は表示されない -disablesafemodeが実行中のプロセスに渡されていなければ、警告が表示される

http://www.cplusplus.com/reference/std/stdexcept/runtime_error/

それはポイントではない。ソースコードを変更するほど勤勉なら、-disablesafetyスイッチを適用するほど勤勉でもあるだろう。はるかに簡単だ。ここでの問題は公式クライアントのデフォルト動作だ。多くの人はただ新しいバージョンがあることに気づき、ダウンロードしてインストールするだけで、この新しいリモートコントロールが挿入されたことに気づかない。

ソースコードを調べたりフォーラムで公然と議論されたと言うのは、Facebookが「でもアカウント削除オプションがあります。利用規約のセクション76、346行目、so-appalling-that-nobody-would-ever-click-itという名前のリンクの下にあります。ページ2でキャプチャを解いて、ダイアログを確認してください。それでアカウントが無効になり、1週間ログインしなければ削除されます」と言うようなものだ。要するに…実際には誰もやらない…それがバッドウェアの振る舞いであり、Bitcoinにバッドウェアになってほしくない。

リモートセーフティ無効化機能がある場合、それを有効にしているすべてのユーザーは、それが何をするか知った上で意識的に有効にすべきだ。GUIクライアントでは有効化を促すダイアログを表示し、何をするか説明すればいい。デーモンの場合は同じ目的を果たす警告を表示すればいい。シンプルで効率的で全員が満足する。ユーザーを尊重し、ユーザーのために働くソフトウェアはそうあるべきだ。ほとんどの人は何をするか理解すれば有効にするだろう…しかしユーザーが望んでいることを確認せずにこの機能をこっそり入れるのは、ユーザーのために決定を下すことであり、私は自分のために決定を下されるのが好きではない Wink

これについて知っているのはフォーラムを読んでいるからだが、将来はどうか?(そしてフォーラムを読まない人はどうか)別の「機能」が挿入されて、通知もされず、何をするか説明もされず、望むかどうか聞かれないのか?それは好きではない…自分のCPU上のソフトウェアが何をしているか知りたいし、合理的な努力で情報を提供し、動作を認識していることを保証してくれなければ、バッドウェアと見なす。

少なくともそれが私の視点だ…そして修正は極めて簡単だ Wink