i2pdをI2PネットワークのC++実装として読む
I2P: エンドツーエンドの暗号化された匿名インターネット。 I2P を使用すると、世界中の人々が制限なく通信し、情報を共有できます。
ひと目でわかる
- これは何?
- PurpleI2P/i2pdのREADMEから匿名ネットワークの役割と導入条件を整理します。
- 誰に向いている?
- i2pdはI2P上の匿名通信を自分で構築したい人に向きます。一般のインターネット全体を匿名化する製品と考える人には向きません。
- 商用利用できる?
- できます。BSD-3-Clause は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。直近 1 日以内に新しいコミットがあります。
- 何の言語で書かれている?
- 主に C++ です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
i2pdが担うネットワーク層
READMEはi2pdをI2P Daemon、I2PクライアントのC++実装と説明しています。I2Pは匿名ネットワーク層で、通信をエンドツーエンドで暗号化し、参加者が実IPアドレスを公開しない設計です。これはREADMEの説明範囲であり、あらゆる環境で匿名性が保証されるという意味ではありません。
用途として匿名P2Pのファイル共有や暗号資産、ウェブサイト、メッセンジャー、チャットサーバーが挙げられます。一般のTCPサービスをそのまま匿名化すると決めつけず、I2P向けの宛先とアプリケーションの対応を分けて確認します。
READMEが掲げる機能の読み方
機能欄には分散型匿名ネットワーク、エンドツーエンド暗号化、小さなフットプリント、単純な依存関係、速い性能、開発者向けAPIが並びます。「速い」は作者の説明であり、帯域や遅延の数値ではありません。負荷条件や性能基準はREADMEから確認できないため、導入判断に数値保証を加えられません。
secure applications向けのAPIがあるとも記されていますが、API一覧や互換性表はREADMEにありません。組み込み時はgeti2p.net/specと公式ドキュメントを読み、使うAPIの入力、戻り値、エラー時の挙動を個別に記録します。
配布物とOS別ビルド
導入の入口はGitHub Releasesの事前ビルドです。ソースから作る場合はbuilding/unix、building/windows、building/ios、building/androidの文書を参照します。対応システムにはGNU/Linux、CentOS系、Alpine、ArchLinux、Windows、macOS、Docker、Snap、FreeBSD、Android、iOSが列挙されていますが、同じ機能が全環境で同じとは限りません。
Android版はi2pd-android、Qt GUI版はi2pd-qt、macOS GUIはgui-i2pdとして別リポジトリです。本体とGUIを一つの成果物とせず、各リポジトリの版、設定、配布元を別々に管理します。
contrib/i2pd.confで初回確認
実行方法はuser-guide/run、設定例はcontrib/i2pd.confに分かれています。初回は取得したリリース版と設定例のコミットを保存し、変更したキーを明記します。I2P宛先へ接続できるか、ログの警告、想定外の外向き接続、停止後の残留プロセスを別々に観察します。
READMEは匿名通信の仕組みを説明しますが、OS、ファイアウォール、利用アプリが情報を漏らさない条件までは説明しません。個人情報を含まない宛先で試し、通常経路とI2P経路のDNS、接続先、停止後の状態を記録します。
BSD 3-Clauseでの再配布
素材のメタデータはBSD-3-Clauseを示しています。製品へ組み込む場合は、PurpleI2P/i2pdのLICENSEにある著作権表示、条件、免責事項を配布物へ反映します。これは通信の安全性を認定する情報ではなく、i2pdを含む成果物の再配布条件です。
リリース版で実行し、contrib/i2pd.confの変更を戻せること、i2pd-qtやi2pd-androidを別版として管理できることを確認できる利用者に適します。GUIや匿名性の保証だけを求める場合はREADMEの範囲を超えるため、仕様とログの追加検証が必要です。
i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。 i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。
i2pdではI2P宛先と通常のインターネット接続を混同しないことが重要です。`contrib/i2pd.conf`で変更したキー、`user-guide/run`の手順、2.61.0の起動ログを保存し、Androidのi2pd-androidやQt版の結果とは分けて評価します。
編集部の結論
i2pdはI2P上の匿名通信を自分で構築したい人に向きます。一般のインターネット全体を匿名化する製品と考える人には向きません。採用前にリリース版、contrib/i2pd.conf、user-guide/runの手順を固定し、実際の宛先、ログ、通信経路を確認してください。
コミュニティノート