返回更新列表
新发布Aug 1, 2026

bitchat v1.7.1

蓝牙网状聊天,IRC氛围

分享
icon_128x128@2x

bitchat

一款去中心化的点对点消息应用,采用双传输架构:本地蓝牙网状网络用于离线通信,基于互联网的 Nostr 协议实现全球覆盖。无需账户、无需手机号、无需中央服务器。这就是侧群聊。

bitchat.free

📲 App Store

许可证

本项目已发布到公共领域。详情见 LICENSE 文件。

功能特性

  • 双传输架构:蓝牙网状网络(离线)+ Nostr 协议(基于互联网的消息传输)
  • 基于位置的频道:通过全球 Nostr 中继使用地理哈希坐标的地理聊天室
  • 智能消息路由:自动选择最佳传输方式(蓝牙优先,Nostr 回退)
  • 去中心化网状网络:通过蓝牙低功耗自动发现对等节点并进行多跳消息中继
  • 隐私优先:无需账户、无需手机号、无持久标识符
  • 私密消息端到端加密:网状网络使用 Noise 协议,Nostr 使用 NIP-17
  • IRC 风格命令:熟悉的 /slap/msg/who 风格界面
  • 通用应用:原生支持 iOS 和 macOS
  • 紧急擦除:三次轻触即可立即清除所有数据
  • 性能优化:LZ4 消息压缩、自适应电池模式以及优化的网络通信

技术架构

BitChat 采用混合消息传递架构,包含两个互补的传输层:

蓝牙网状网络(离线)

  • 本地通信:蓝牙范围内的直接点对点通信
  • 多跳中继:消息通过附近设备路由(最多 7 跳)
  • 无需互联网:在灾难场景下完全离线工作
  • Noise 协议加密:具有前向保密的端到端加密
  • 二进制协议:针对蓝牙低功耗限制优化的紧凑数据包格式
  • 自动发现:对等节点发现和连接管理
  • 自适应电源:电池优化的占空比循环

Nostr 协议(互联网)

  • 全球覆盖:通过互联网中继与全球用户连接
  • 位置频道:使用地理哈希坐标的地理聊天室
  • 290+ 中继网络:分布全球,确保可靠性
  • NIP-17 加密:互联网隐私的礼物包装式私密消息
  • 临时密钥:每个地理哈希区域生成全新的加密身份

频道类型

mesh #bluetooth

  • 传输方式:蓝牙低功耗网状网络
  • 范围:多跳范围内的本地设备
  • 互联网:不需要
  • 使用场景:离线通信、抗议、灾难、偏远地区

位置频道(block #dr5rsj7neighborhood #dr5rscountry #dr

  • 传输方式:Nostr 协议(通过互联网)
  • 范围:由地理哈希精度定义的地理区域
    • block(7 个字符):城市街区级别
    • neighborhood(6 个字符):区/社区
    • city(5 个字符):城市级别
    • province(4 个字符):州/省
    • region(2 个字符):国家/大区域
  • 互联网:需要(连接到 Nostr 中继)
  • 使用场景:基于位置的社区聊天、本地活动、区域讨论

直接消息路由

私密消息采用智能传输选择

  1. 优先蓝牙(可用时首选)

    • 具有已建立的 Noise 会话的直接连接
    • 最快且最隐私的选项
  2. Nostr 回退(蓝牙不可用时)

    • 使用接收方的 Nostr 公钥
    • NIP-17 礼物包装以保护隐私
    • 通过全球中继网络路由
  3. 智能排队(两者均不可用时)

    • 消息排队等待,直到传输方式可用
    • 当连接建立时自动送达

有关详细的协议文档,请参阅技术白皮书

设置

选项 1:使用 Xcode

cd bitchat
open bitchat.xcodeproj

要在设备上运行,需执行几个准备步骤:

  • 克隆本地配置:cp Configs/Local.xcconfig.example Configs/Local.xcconfig
  • 将你的开发者团队 ID 添加到新创建的 Configs/Local.xcconfig
    • Bundle ID 将设置为 chat.bitchat.<team_id>(除非你修改为其他值)
  • 需要手动更新授权文件(TODO:自动化):
    • 搜索并将 group.chat.bitchat 替换为 group.<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
  • Share 扩展的字符串独立存放于 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 编译检查本地化更新。

分类