Re: いくつかの提案

Quote from: madhatter2 on December 10, 2009, 02:00:17 PM

最近のP2PソフトウェアはほとんどがデフォルトでUPnPを試行する。もちろん、(通常は)オプションで無効にできる。

うーん、俺もそれについて考えていた。最初のアイデアがおそらく最善だろう。そうすればサーバーデーモンを「ヘッドレス」で動かし、フロントエンドを自由に選べる。(フロントエンドの一つは、好みのウェブサーバーで動くPHP [またはC++ CGI] プログラムにもできる)。

これにより、フロントエンドとバックエンドを別々のマシンで実行することも可能になる。(例:静的IPを持つLinuxサーバーでヘッドレスで動かして受け取りを容易にし [IPモードでの支払い]、管理用のフロントエンドクライアントはWindows/Mac/その他で実行する)。フロントエンドは携帯電話のようなCPUパワーの低いクライアントでも実行できる。nudge nudge Wink

もう一つ考えていることがある。シーディングだ。アプリはダウンロード前にプリシードしておくことができる。毎日プリシード済みの新しいアーカイブを準備できる。そうすればIRC接続は不要になる。(あるいはフォールバックとして使うこともできるだろう。IRC接続のコードはまだ監査していない。いくつかのエクスプロイトを思いついたが、実際に存在するか確認するまでは言及したくない。)プリシーディングはTOR+IRC問題も解決する。このシステムをI2P+TOR上で動かしたい人が出てくるのは分かっている。Tongue

また、ブロックもプリシードしておけば、初回起動時にダウンロードする必要がなくなる。(28,000ブロックを低速ADSLでダウンロードするのは永遠にかかる。数百万ブロックになったらどれほどの時間がかかるか想像もつかない――一生かかるだろう。)

CVSアクセスか何かをもらえないだろうか?(無理なら、パッチを送ることはできるか?)手伝いたい。俺は主にLinux/BSDの人間で、その分野の専門知識を提供したい。

Cheers! Smiley

Quote from: satoshi on December 09, 2009, 06:45:10 PM

参考になる提案だ、ありがとう。

Quote from: madhatter on December 09, 2009, 05:34:46 AM

  • Bitcoinソフトウェアがピア(クライアントTCPソケット)と接続を確立する際に、クライアントからハンドシェイク文字列を送信させるべきだ。現在はサーバー(サーバーTCPソケット)がハンドシェイクを送っている。理由はもちろん匿名性だ。ISPがクライアントをポートスキャンしてこのプログラムの実行を検知するのはあまりにも簡単だ。

良いアイデアだ。接続を受け入れる側は、有効なハンドシェイクを受信するまで何も送信しなければよい。どのようなポートスキャンでも、自発的に身元を明かさない無反応な接続しか得られないことになる。

すべての接続をSSL化することは考えた。DPIに対してはSSL以外のものは無意味だと思う。おそらくより良い直近の解決策は、TOR経由で接続することで、これは0.2で可能になる。

0.2以降の主な課題の一つだ。

ええ、常に同じポート番号だと、他のステルス機能もかなり無意味になる。

UPnPを試してみるのが楽しみだ。ほとんどのP2PクライアントはUPnPをデフォルトで有効にしているのだろうか?

管理インターフェースの最適な構成をまだ検討中だ。コマンドラインからバックグラウンドデーモンに通信して、受信トランザクションの照会や送金の開始を行う方法がよいかもしれない。その方が自動化に適している。あるいは80以外のポートでHTTPインターフェースを提供して、ブラウザで管理する方法はどうだろうか?

これはモバイル向けの良いアプローチだ。PHP(任意の言語)が使用するプログラマティックAPIでWeb UIを提示すれば、リモート管理、モバイル、その他常時オンラインで静的IPを持てないあらゆるクライアントに対応できる。ウェブメールのようなものだ。ソフトウェアをインストールする必要がなく、ウェブサイトでアカウントを作成するだけで済むなら、新規ユーザーが始めやすくなるだろう。

引用:「アプリはダウンロード前にプリシードできます。プリシードすればTOR+IRC問題も解決します。人々がI2P+TOR上でこのシステムを使いたがることは分かっています。」 ええ、十分な数の静的ノードができてシードリストをプリプログラムできるようになれば、IRCを段階的に廃止できる。一度シードされれば、IRCは必要ない。

引用:「また、ブロックをプリシードしておけば、初回起動時にダウンロードする必要がなくなります。(遅いADSLで28,000ブロックをダウンロードするのは永遠にかかります。ブロックが数百万になったときにどれだけかかるか想像もできません──一生かかるでしょう)。」 0.1.5では初回ブロックダウンロードが停滞する問題がいくつかあった。0.2にはスムーズに進むようにするコードが含まれている。1時間もかからないはずだと思う。0.2のリリースを急がないといけない。

ブロックは線形的に増加するので、数百万になるのは数十年先だ。理論的には、ブロックダウンロード時間は今から8ヶ月後にピークに達するはずだ。その頃にはムーアの法則がブロックチェーンよりも速く成長しているだろう。

引用:「CVSアクセスか何かをいただけますか?(無理なら、パッチを送ってもいいですか?)お手伝いしたいです。」 SourceForge上のSVNだ。PMまたはメールでSourceForgeのアカウントを教えてもらえれば、アクセス権を付与する。

引用:「私は主にLinux/BSDの人間なので、その分野の専門知識を提供したいと思います。」 それは素晴らしい。私はその分野の専門知識が少ないからだ。例えば、Linuxで「システム起動時にBitcoinを開始する」機能を実装する最善の方法をまだ調べていない。Windowsでは、このオプションはスタートアップフォルダにアイコンを追加/削除する。