アップデート一覧に戻る
New releaseAug 1, 2026

bitchat v1.7.1

Bluetoothメッシュチャット、IRCの雰囲気

共有
icon_128x128@2x

bitchat

分散型ピアツーピアメッセージングアプリ。デュアルトランスポートアーキテクチャを採用:ローカルのBluetoothメッシュネットワークによるオフライン通信と、インターネットベースのNostrプロトコルによるグローバル通信。アカウントも電話番号も中央サーバーも不要。サイドグループチャットのようなものです。

bitchat.free

📲 App Store

ライセンス

このプロジェクトはパブリックドメインに公開されています。詳細はLICENSEファイルをご覧ください。

特徴

  • デュアルトランスポートアーキテクチャ: Bluetoothメッシュ(オフライン)+ Nostrプロトコル(インターネット経由のメッセージング)
  • 位置情報ベースのチャンネル: グローバルなNostrリレー上の地理ハッシュ座標を使用した地理的チャットルーム
  • インテリジェントメッセージルーティング: 最適なトランスポートを自動選択(Bluetooth → Nostrフォールバック)
  • 分散型メッシュネットワーク: Bluetooth LEによる自動ピア発見とマルチホップメッセージリレー
  • プライバシーファースト: アカウント不要、電話番号不要、永続的な識別子不要
  • プライベートメッセージのエンドツーエンド暗号化: メッシュにはNoise Protocol、NostrにはNIP-17
  • IRCスタイルのコマンド: おなじみの/slap/msg/whoスタイルのインターフェース
  • ユニバーサルアプリ: iOSとmacOSをネイティブサポート
  • 緊急ワイプ: トリプルタップで即座に全データ消去
  • パフォーマンス最適化: LZ4メッセージ圧縮、アダプティブバッテリーモード、最適化されたネットワーキング

技術アーキテクチャ

BitChatはハイブリッドメッセージングアーキテクチャを採用し、2つの相補的なトランスポート層を持ちます:

Bluetoothメッシュネットワーク(オフライン)

  • ローカル通信: Bluetooth範囲内の直接ピアツーピア
  • マルチホップリレー: 近くのデバイスを経由してメッセージを転送(最大7ホップ)
  • インターネット不要: 災害シナリオで完全オフライン動作可能
  • Noise Protocol暗号化: 前方秘匿性を備えたエンドツーエンド暗号化
  • バイナリプロトコル: Bluetooth LEの制約に最適化されたコンパクトなパケット形式
  • 自動発見: ピア発見と接続管理
  • アダプティブ電力: バッテリー最適化されたデューティサイクル

Nostrプロトコル(インターネット)

  • グローバルリーチ: インターネットリレーを介して世界中のユーザーと接続
  • 位置チャンネル: 地理ハッシュ座標を使用した地理的チャットルーム
  • 290以上のリレーネットワーク: 信頼性のために世界中に分散
  • NIP-17暗号化: インターネット上のプライバシーのためのギフトラップされたプライベートメッセージ
  • 一時鍵: 地理ハッシュ領域ごとに新しい暗号化アイデンティティ

チャンネルタイプ

mesh #bluetooth

  • トランスポート: Bluetooth Low Energyメッシュネットワーク
  • スコープ: マルチホップ範囲内のローカルデバイス
  • インターネット: 不要
  • 用途: オフライン通信、抗議活動、災害時、遠隔地

位置チャンネル(block #dr5rsjneighborhood #dr5rscountry #dr

  • トランスポート: インターネット上のNostrプロトコル
  • スコープ: 地理ハッシュ精度で定義された地理的エリア
    • block(7文字):街区レベル
    • neighborhood(6文字):地区・近隣
    • city(5文字):都市レベル
    • province(4文字):都道府県/州
    • region(2文字):国/大規模地域
  • インターネット: 必要(Nostrリレーに接続)
  • 用途: 位置情報ベースのコミュニティチャット、ローカルイベント、地域ディスカッション

ダイレクトメッセージルーティング

プライベートメッセージはインテリジェントトランスポート選択を使用します:

  1. Bluetooth優先(利用可能な場合に推奨)

    • 確立されたNoiseセッションによる直接接続
    • 最速かつ最もプライベートなオプション
  2. Nostrフォールバック(Bluetoothが利用不可の場合)

    • 受信者のNostr公開鍵を使用
    • プライバシーのためのNIP-17ギフトラッピング
    • グローバルリレーネットワークを経由
  3. スマートキューイング(どちらも利用不可の場合)

    • トランスポートが利用可能になるまでメッセージをキューイング
    • 接続確立時に自動配信

詳細なプロトコルドキュメントについては、技術ホワイトペーパーをご覧ください。

セットアップ

オプション1: Xcodeを使用

cd bitchat
open bitchat.xcodeproj

デバイス上で実行するには、コードを準備するためのいくつかの手順があります:

  • ローカル設定をクローン:cp Configs/Local.xcconfig.example Configs/Local.xcconfig
  • 新しく作成したConfigs/Local.xcconfigにあなたのDeveloper Team IDを追加
    • Bundle IDはchat.bitchat.<team_id>に設定されます(別の値に設定しない限り)
  • エンタイトルメントは手動で更新する必要があります(TODO: 自動化):
    • group.chat.bitchatgroup.<your_bundle_id>に検索して置換(例:group.chat.bitchat.ABC123

オプション2: justを使用

brew install just

macOSで試す場合:just runでセットアップしてソースから実行します。 その後、モバイルアプリのビルドと開発のために元の状態に戻すにはjust cleanを実行してください。

ローカライゼーション

  • ベースアプリのリソースはbitchat/Localization/Base.lproj/にあります。新しいコピーはLocalizable.stringsに、複数形ルールはLocalizable.stringsdictに追加してください。
  • 共有拡張の文字列は別途bitchatShareExtension/Localization/Base.lproj/Localizable.stringsにあります。
  • キーは意図を説明するもの(app_info.features.offline.titleなど)を優先し、可能な限り既存のものを再利用してください。
  • 次のコマンドを実行してローカライゼーションの更新をコンパイルチェックしてください:xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -configuration Debug CODE_SIGNING_ALLOWED=NO build

カテゴリ