======================================= BNBTベータ7.1(C++BitTorrentトラッカー) ======================================= http://bnbt.go-dedicated.com/ BNBTの作者はトレヴォー・ホーガンです。 BNBTは、ネットワークコミュニケーション用のデータ記憶および基礎的なネットワークソケット用にSTLを使用して C++へのオリジナルのパイソンBitTorrentトラッカーの完全なポートです。 BNBTは速く効率的で、カスタマイズ可能で使用することが容易で、強力でポータブルです。 BNBTは、GNU 劣等一般公衆利用許諾(LGPL)の下で保護されています。 このトラッカーを使用する前にオリジナルのPYTHON BitTorrentトラッカーのドキュメントを読んで理解しておくべきです。 ============= WINDOWS STUFF ウインドウズ資料 ============= BNBTは、コンソールウィンドウとしてではなくむしろNTサービスとして動作することができます。 NTサービスとBNBTを実行するために、正確なコマンドラインオプションをBNBTへ渡さなければならないでしょう。 まずコマンドプロンプト(つまり、スタートメニューからクリックして実行、またはファイル名「cmd」と打って実行)を開いてください。 そしてBNBTのフォルダー(「cd¥bnbt」)に移動して、下記コマンドラインオプションのうちの1つをBNBTで実行してください。 bnbt -i: NTサービスとBNBTをインストールします。 サービスを始める前にこれをしなければなりません。 bnbt -start: BNBTサービスを始めます。BNBTサービスが既にインストールされてなければならない。 bnbt -stop: BNBTサービスを止めます。BNBTサービスが既にインストールされスタートされてなければならない。 これは安全にするでしょう、シャットダウンBNBT(adminパネルがそれを行うのと同じ方法)、したがって、ある程度の時間はBNBTが完全な停止に来るためにかかるかもしれません。 bnbt -u: BNBTサービスをアンインストールします。 ================================ コンパイル(マイクロソフトVisual C++) ================================ bnbtxxxx.zipを解凍してbnbt/srcフォルダーを開いて、bnbt.dsw workspaceを開いてください。 BNBTがbnbt.dsw workspaceの一部であるzlibを要求するので、bnbt.dspプロジェクトを直接開かないでください。 ================== コンパイル(DEV-C++) =================== bnbtxxxx.zipを解凍してbnbt/srcフォルダーを開いて、bnbt.devプロジェクトを開いてください。 あなたがzlibを自分自身でコンパイルについて心配しないように、プリコンパイルされたzlibライブラリーを提供しました。 =========================== コンパイル(他のすべて) =========================== BNBTはLinux、Unix、OS x、FreeBSDおよびSUN Solaris(そして恐らく他のも)の上にコンパイルするべきです。 GCCの最近のバージョンを必要とするでしょう。GCCバージョン3以降を備えたBNBTをコンパイルしなければなりません。 より古いバージョンでは動かないでしょう。最後に、さらにGNU互換性をもつ「形」を必要とするでしょう。 BSDシステムにおいては通常「gmake」です。 1.bnbtxxxx.zipを解凍してください。bnbtのディレクトリーが作成されます。 2.まだzlibライブラリーを持っていなければ、それを作らなければならないでしょう。bnbt/src/zlib-1.1.4を開き「make install」か「gmake install」を実行。 このコマンドを実行するために恐らくログインしなければならないでしょう。しかし、それは一度単独で行わなければなりません。 3.bnbt/srcを開いて、'make' or 'gmake'を実行してください。これは、要求されたライブラリーに対してBNBTをダイナミックにコンパイルするでしょう。 'make clean' (or 'gmake clean')編集中に作成されたファイルをすべて削除するでしょう。 ====== CONFIG 設定 ====== BNBTはコマンドライン配置オプション(だけどNTサービスを動作するために少しとりますが)をとりません 代わりに、最初に起動する時にconfigファイル(bnbt.cfg)を作成します。 それは、オリジナルのBitTorrentトラッカー、およびBNBTに特有の少数の新しいものからのほとんどの輪郭をとることができるオプションに対するデフォルト値を含むでしょう。 どんなオプション(ポートのように、BNBTは聞き続けるでしょう)も変更したければ、好きなテキストエディターでこのファイルを編集することができます。 "C:¥Torrents¥"あるいは"password"のような引用符でどの値も囲まないでください。 要するに""(ダブルコーテーション)で囲むなってことです。囲むと設定が機能しなくなります。 このconfigはデフォルトでは作成されません。 allowed_dir bind bnbt_style_sheet bnbt_comments_file bnbt_upload_dir bnbt_force_announce_url bnbt_error_log bnbt_access_log_dir bnbt_file_dir bnbt_tagx(つまりbnbt_tag1、bnbt_tag2、bnbt_tag3) bnbt_external_torrent_dir bnbt_static_header bnbt_static_footer image_bar_fill image_bar_trans bnbt_dump_xml_file 「bnbt_debug」キーは、ゼロでない値がセットされた時、BNBTはデバッグメッセージがコンソールに強制的に出力されます。 「bnbt_allow_search」キーは、ゼロ以外の値がセットされた時、ユーザがあなたのトラッカーが現在追跡(tracking)しているファイルを探索することを可能にするでしょう。 "allowed_dir"がセットされたときだけ動く。 「bnbt_allow_sort」:ゼロ以外の値にセットされた時、ユーザがあなたのトラッカーが現在追跡しているファイルをソートすることが可能にするでしょう。 「bnbt_per_page」:1ページ当たり表示されるファイルの数を指定します。この値が0の場合はファイルはすべて同じのページに表示されます。 「bnbt_show_info_hash」:ゼロ以外の値にセットされた時、トラッカーウェブページに各ファイルの情報ハッシュを表示するでしょう。 「bnbt_style_sheet」:トラッカーウェブページを上に含めるためにCSSスタイルシートの**online**位置を指定します。 「bnbt_show_added」:0以外の値にセットされた時、トラッカーウェブページ(これは通常ファイルが加えられた時です)に各ファイルの修正タイムを表示するでしょう。 「allowed_dir」がセットされてる場合にこれは動作する。 「bnbt_show_size」:0以外の値にセットされた時、トラッカーウェブページに各ファイルの実際のサイズ(.torrentサイズではなくダウンロードされたサイズ)を表示するでしょう。 「allowed_dir」がセットされてる場合にこれは動作する。 「bnbt_display_all」:0以外の値にセットされた時、downloadersにかかわらず、トラッカーウェブページにallowed_dirの中のすべてのファイルを表示するでしょう。 「allowed_dir」がセットされてる場合にこれは動作する。 「bnbt_show_stats」:0以外の値にセットされた時、ユーザがあなたのトラッカーで現在追跡しているファイルのファイル統計を検索することを可能にするでしょう。 「allowed_dir」がセットされ、統計リンクが「名前」カラムで表示されるので、「show_names」が非ゼロの場合にこれは動くでしょう。 「bnbt_show_num_files」:0以外の値にセットされた時、トラッカーウェブページに各ファイルの「ファイルの数」を表示するでしょう。 「allowed_dir」がセットされてる場合にこれは動作する。 「bnbt_show_file_contents」:0以外の値にセットされた時、統計ウェブページにmultiファイルtorrentのためのファイル内容のテーブルを表示するでしょう。 「allowed_dir」「bnbt_show_stats」がセットされている場合にこれは動作する。WARNING警告! 活発な場合、このキーは統計ページが見られるごとに、要求されたトレントを解析することをBNBTに強いるでしょう。 「bnbt_allow_comments」:0以外の値にセットされた時、ユーザがあなたのトラッカーが現在追跡しているファイルに関するコメントを見て記入することを可能にします。 活発な場合、コメントへのこのカラム中の数がページをつけるので、BNBTはさらにトラッカーウェブページに'number of comments'カラムを表示するでしょう。 「allowed_dir」がセットされてる場合にこれは動作する。 「bnbt_comments_file」:コメントを中へ格納するためにファイルを指定します。この値が指定されない場合、トラッカーがシャットダウンである場合コメントがすべて失われるでしょう。あなたはできる(安全に)シャットダウン、あなたのトラッカー、またあなたのトラッカーからコメントをすべて取り除くためにこのファイルを削除します。 「bnbt_delete_invalid」:0以外の値にセットされた時、それがallowed_dirを構文解析(パーシング)する間に見つける、すべての無効なtorrentを削除することをBNBTに強いるでしょう。 「allowed_dir」がセットされてる場合にこれは動作する。 「bnbt_upload_dir」:ファイルuploaderがアップロードされたファイルをコピーするべきディレクトリーを指定します。この値が指定されない場合、ファイルuploaderは無効になるでしょう。 「bnbt_force_announce_url」:各アップロードされたファイルに使用することを強いるためにannounce URLを指定します。 「bnbt_show_file_comment」:0以外の値にセットされた時、統計ウェブページにファイルコメント(MakeTorrentで作成されたtorrentのための)を表示するでしょう。 「bnbt_max_hops」:トラッカーネットワークの中でこのトラッカーと任意の他のものの間のホップ(ノード?)の最大の数を指定します。この値はできるだけ低くすることを勧めます。 「bnbt_error_log」:BNBTがエラーを記録し、情報をデバッグするファイルの位置を指定します。 「bnbt_access_log_dir」:BNBTがアクセスlogを格納するディレクトリーを指定します。新しいlogは毎日真夜中に作成されるでしょう。 「bnbt_flush_interval」:logファイルに洗いながす前にメモリにどれだけのlogメッセージを格納するのか。 「bnbt_compression_level」:サーバー応答を圧縮する時、zlibの圧縮レベルを使用するということを明示します。1(最も速い圧縮)〜9(最良の圧縮)もしくは完全に圧縮を止めるにはこれを0にセットします。 「bnbt_max_torrents」:使用する時BNBTが追跡するtorrentの最大の数を指定します、そのファイルuploaderに構築されました。少なくともこの多くのtorrentがallowed_dirに存在する時、BNBTはファイルuploaderを不能にするでしょう。 「bnbt_file_dir」:ファイルdownloaderがファイルを読むべきディレクトリーを指定します。例えば、ユーザが「/ファイル/image.jpg」にアクセスする場合、あなたがそのとき「C:¥hello¥」にbnbt_file_dirをセットすれば、BNBTはそのユーザに「C:¥hello¥image.jpg」ファイルを送るでしょう。この値が指定されない場合、ファイルdownloaderは無効になるでしょう。 「bnbt_file_expires」:ファイルがファイルdownloaderからダウンロードした分の数が再びダウンロードされる前に貯えられることを明示します。これはユーザのブラウザーへの提案で、続くかもしれないし続かないかもしれません。 「bnbt_allow_torrent_downloads」:0以外の値にセットされた時、ユーザがあなたのトラッカー上でリストされたtorrentをダウンロードすることを可能にするでしょう。torrentはすべて、わずかにファイルdownloaderの修正版を使用してダウンロードされるでしょう。(注意:ファイルdownloaderはこのために働くことができる必要がないしその逆も正しい。) 「allowed_dir」がセットの場合に動きます。 「bnbt_show_average_left」:0以外の値にセットされた時、トラッカーウェブページを上にダウンロードするために(そのファイルのためのすべての接続している仲間間に平均した)残されたファイルの平均パーセンテージを表示するでしょう。 「bnbt_show_min_left」:0以外の値にセットされた時、トラッカーウェブページ上にダウンロードするために(bnbt_show_average_leftに似ている)残されたファイルのminパーセンテージを表示する。 「bnbt_show_max_left」:0以外の値にセットされた時、トラッカーウェブページ上にダウンロードするために(bnbt_show_average_leftに似ている)残されたファイルのmaxパーセンテージを表示する。 「bnbt_show_left_as_progress」:0以外の値にセットされた時、「平均/min/max」進行(つまり100 左)と値を残された「平均/min/max」を表示するでしょう。BNBTが進行を計算するためにファイルサイズを知る必要があるので、「allowed_dir」がセットされる場合、これは働くでしょう。 「bnbt_tag_file」:ファイルタグおよび他のトレント情報を中へ格納するためにファイルを指定します。 「bnbt_tagx」:あなたのトラッカーで利用可能なファイルタグを指定します。 タグは1からスタートして、順番に指定されるに違いないし、オプションのイメージurlを含むことができます、限界を定められた、その「|」文字。あなたのトラッカーは望むのと同数のタグを持つことができます。 例えば、 bnbt_tag1、デフォルトTag|/file.html?file=tag1.gif bnbt_tag2=タグ1|/file.html?file=tag2.gif bnbt_tag3=タグ2|/file.html?file=tag3.gif、 bnbt_tag4=は3(No Image イメージはない) 「bnbt_count_unique_peers」:0以外の値にセットされた時、トラッカーウェブページにユニークな仲間(仲間の合計の数と同様に)の数を表示するでしょう。 警告!この特徴は余分なメモリおよび処理力を要求します;あなたのトラッカーが過負荷をかけられる場合、この特徴を不能にしたいと思うかもしれません。 「bnbt_external_torrent_dir」:あなたの許可されたdirの中でtorrentの**online**位置を指定します。もしセットされれば、あなたのトラッカーウェブページ上のトレントダウンロードリンクはすべて内部トレントdownloaderではなくこの位置に参照を付けるでしょう。 例えば、ファイルサーバーへの許可されたdirを映すことができ、「http://myfileserver/torrents/」にこの値をセットしました。 「bnbt_allow_torrent_downloads」がセットされる場合(したがって「allowed_dir」)、これは働くでしょう。 「bnbt_allow_scrape」:0以外の値にセットされた時、ユーザがあなたのトラッカーの/scrape特徴にアクセスすることを可能にするでしょう。 「bnbt_static_header」:トラッカーウェブページの一番上に含める**local**HTMLドキュメントを指定します。 「bnbt_static_footer」:トラッカーウェブページの下に含める**local**HTMLドキュメントを指定します。 「bnbt_refresh_static_interval」:静止のヘッダーおよびフッタの各リフレッシュ間に待つために分の数を指定します。少なくとも1分にこれをセットしたことが勧められます。 「image_bar_fill」:使用されるイメージの**online**位置を指定します、その「満たされた」進行棒の部分。固体の人種差別を望む場合は、これを1x1イメージにしてください。 「image_bar_fill」および「image_bar_trans」の両方は、進行棒が表示されるべき準備ができているに違いありません。 「image_bar_trans」:進行棒の「透明な」部分と使用されるイメージの**online**位置を指定します。 固体の人種差別を望む場合は、これを1x1イメージにしてください。 「image_bar_fill」および「image_bar_trans」の両方は、進行棒が表示されるべき準備ができているに違いありません。 「bnbt_max_conns」:BNBTが許可する同時接続の最大の数を指定します。接続は、通常数秒の内に終わります。したがって、64のデフォルト値はほとんどのトラッカー(2500人以上までの仲間さえ)にとって十分であるべきです。あなたのオペレーティングシステムは多くの同時の接続をサポートしないかもしれません。 この値を変更する前にオペレーティングシステムのソケット限界を研究することが勧められます。 「bnbt_show_completed」:0以外の値にセットされた時、トラッカーウェブページに各ファイルの完成したダウンロードの合計を表示するでしょう。 「bnbt_show_transferred」:0以外の値にセットされた時、トラッカーウェブページ上で転送された各ファイルのバイトの合計を表示するでしょう。バイトの合計は移りました、等しい、に「達する、完成した、ダウンロードされた」ファイルサイズを掛けられました。 ファイルサイズを知る必要があるので、「allowed_dir」がセットされる場合、これは働くでしょう。 「bnbt_guest_access」:ゲスト(ログインされないユーザ)のためのデフォルトアクセスレベルを指定します。アクセスレベルぐらいもっと見つけ出すusers.txtファイルを読んでください。 「bnbt_member_access」:メンバー(signupページによって参加したユーザ)のためのデフォルトアクセスレベルを指定します。アクセスレベルぐらいもっと見つけ出すusers.txtファイルを読んでください。 「bnbt_show_uploader」:0以外の値にセットされた時、トラッカーウェブサイトに各ファイルのuploaderを表示するでしょう。 ファイルが、ゲスト(つまりbnbt_guest_accessはゲストがアップロードすることを可能にする準備ができている場合)によってアップロードされる場合、uploaderは空(ブランク)でしょう。 「bnbt_parse_on_upload」:0以外の値にセットされた時、それがアップロードされる場合に、各トレントを解析することをBNBTに強いるでしょう。一般に、parse_allowed_intervalが0にセットされてる場合に役立ちます parse_allowed_intervalが0にセットされない場合、許可されたdirが解析されている間に、トレントがアップロードされる場合、ある変な挙動が生じるかもしれません。 「bnbt_dump_xml_file」:トラッカーが追跡しているすべてのtorrentおよびpeersのXMLドキュメントをダンプするためのファイルを指定します。もし別のウェブサーバにBNBTを統合することを計画していなければ、これを無視してください。 「bnbt_dump_xml_interval」:XMLファイルの各ダンプ間に待つため秒数を指定します。 =========== スタイル・シート =========== cells containing を含んでいるセル - 「|」はフィルタ間の文字はと指定する。 - ダウンロードリンクはclass="download"と指定する。 - ソートリンクはclass="sort"と指定する。 - 半端な列はclass="odd"と指定する。 - 規則正しいセルはclass="even"と指定する。 - ファイル統計リンクはclass="stats"と指定する。 - 情報ハッシュを含んでいるセルは、class="hash"と指定する。 - トレント名を含んでいるセルは、class="name"と指定する。 - 日時を含んでいるセルは、class="date"と指定する - バイト(つまり5.00 MB)のサイズを含んでいるセルはclass="bytes"と指定する。 - 番号を含んでいるセルは、class="number"と指定する。 - 「bat」番号を含んでいるセルはclass="number_red"と指定する。 - 「medium」番号を含んでいるセルは、class="number_yellow"と指定する。 - 「good」番号を含んでいるセルは、class="number_green"と指定する。 - 割合を含んでいるセルは、class="percent"と指定する。 - IPアドレスを含んでいるセルは、class="ip"と指定する。 - 接続している時間を含んでいるセルはclass="connected"と指定する。 - パスを含んでいるセルは、class="path"と指定する。 - コメントヘッダーを含んでいるセルは、class="com_header"と指定する。 - コメントボディーを含んでいるセルは、class="com_body"と指定する。 - セルヘッダーはセルと同じ方法で指定する。 - ログインメッセージは

と指定される - アクセス拒否メッセージは

と指定される。 見本のスタイルシートはbnbt.go-dedicated.comでゲットできます。 ===== 注 ===== NATチェックはまだ実行されません。 ========= CHANGELOG ========= Beta 7.1 - クライアントによって送られた有効なipアドレスが拒否される場合のバグを直しました。 - FreeBSDでのコンパイルエラーを修正しました。 - いくつかのものを固定した、警告をコンパイルする - 内部データ・ベース(数回より効率的)への極端な最適化 - bdecodersへの極端な最適化(さらに数回もっと、効率的) - bencodedストリング(つまりtorrent、dfileなど)の解析は著しくより速くあるべきです。 - peer cacheの処理のバグを直しました。 - Pragmaの追加:ログインページのキャッシュをブラウザで保存するのを防ぐ - すべてのページでContent-Lengthを追加した - Keep-Aliveコネクションをサポートした - いくつかのHTML問題を解決した。しかし、BNBTの前のバージョンで記入されたコメントは正確に表示できないかもしれない。 - adminパネルに「save stealers」と「load stealers」付け加えた。 - Ctrl-Cは、adminパネルのようなシャットダウンをトラッカーにもたらします。(ウインドウズのみ) - エラーログメッセージはタイムスタンプです。 - ipusersとnfoのディレクトリと関係する未使用のコードを削除しました。 - config値に「bnbt_dump_xml_file」を加えました - config値に「bnbt_dump_xml_interval」を加えました Beta 7.0 - ファイル「added times」はGMTではなくローカル時間を表示します。 - コメントページにいくつかの分類されたスクリプト(主に長さチェック)を加えました。 - bnbt_per_pageがゼロの場合、ファイルはすべて単一のページに表示されます。 - parse_allowed_intervalがゼロである場合、許可されたdirは解析が作動するでしょう。 - 「bnbt_parse_on_upload」configを加えました。 - ウインドウズシステム以外で備えたいくつかのスレッドを解決しました。 - bnbt_max_connsが到達した時、奇妙な振る舞いを固定しました。 - 1024GBより大きなサイズはすべてTB(テラバイト)と示します。また、1024TBより大きなサイズはすべてPB(ぺタバイト)と示します。 - 利用可能な場合さえ、BNBTがサーバーソケットを拘束しないところで、バグを直しました。 - 盗人のメモリーリークを直しました。 - ウインドウズでコード化する大きな整数を備えたバグを直しました。 - 「bnbt_header_mode」configを削除しました。 - 「bnbt_admin_pass」configを削除しました。 - ユーザーページを追加しました(users.html) - トラッカーinfoページを追加しました(info.html) - サインアップページを追加しました(signup.html) - adminパネルを書き直しました - 「bnbt_guest_access」configを加えました。 - 「bnbt_member_access」configを加えました。 - 「bnbt_show_uploader」configを加えました。 - 「bnbt_log」コンフィグを「bnbt_error_log」にリネームしました。 - 「bnbt_access_log_dir」configを加えました。 - NCSA common logフォーマットを共通に記録することを追加。 - ファイルdownloaderは、他のウェブサーバのように働きます。(i.e.つまり /files/image.gif) - 凝視する/announceへのパラメーターが数字を含むことができるとともに、ipは渡されます そして'.' - peer ipは /announceのパラメータが'.'を含む数字の場合のみ渡されます?? - changelogを削除しました。 ======= クレジット ======= BNBT: Trevor Hogan(トレヴォー・ホーガン) Base64アルゴリズム:Jan Raddatz SHA1ハッシュアルゴリズム: Dominik Reichl BitTorrent: Bram Cohen(ブラム・コーエン) ***** BNBTの特にzlibを備えた支援のための高度な特徴、NTサービスおよびユーザの多くを備えた支援用のConfusedFishへの多大な感謝! ***** スペシャルサンクス - Richard Stanway: Linux/Unixポートの支援 (www.r1ch.net) - Scott Casey: テストおよび最初のBNBTトラッカーを常に実行 - Shawn Holwegner: OS Xのポートの支援 (shawn@holwegner.com) - Paul Kehrer: bnbt_delete_invalidのコード - Dariusz A.Prugar: 厳密なテスト(http://www.torrentskickass.com/)