permissionlesstech/bitchat
摘要
BitChat 是一款去中心化点对点消息应用,利用蓝牙网状网络实现离线通信,并采用 Nostr 协议进行基于互联网的全球消息传递,注重隐私,无需账户,无中心服务器。
蓝牙网状网络聊天,IRC 氛围
查看缓存全文
缓存时间: 2026/07/25 11:05
permissionlesstech/bitchat 来源:https://github.com/permissionlesstech/bitchat ## bitchat 一款去中心化点对点消息应用,采用双传输架构:本地蓝牙Mesh网络用于离线通信,互联网Nostr协议用于全球覆盖。无需账户,无需手机号,无需中心服务器。就是那个侧群聊。 bitchat.free (http://bitchat.free) 📲 App Store (https://apps.apple.com/us/app/bitchat-mesh/id6748219622) ## 许可证 本项目已发布到公共领域。详情见 LICENSE 文件。 ## 功能特性 - 双传输架构:蓝牙Mesh用于离线 + Nostr协议用于互联网消息 - 基于位置的频道:使用地理哈希坐标在全球Nostr中继上创建地理聊天室 - 智能消息路由:自动选择最佳传输方式(蓝牙优先,Nostr作为后备) - 去中心化Mesh网络:自动发现对等节点,通过低功耗蓝牙实现多跳消息中继 - 隐私优先:无账户、无手机号、无持久标识符 - 私信端到端加密:Mesh使用Noise协议 (https://noiseprotocol.org),Nostr使用NIP-17 - IRC风格命令:熟悉的 /slap、/msg、/who 界面 - 通用应用:原生支持iOS和macOS - 紧急擦除:三次点击即可立即清除所有数据 - 性能优化:LZ4消息压缩、自适应电池模式、优化的网络连接 ## 技术架构 (https://deepwiki.com/permissionlesstech/bitchat) BitChat 采用混合消息架构,包含两个互补的传输层: ### 蓝牙Mesh网络(离线) - 本地通信:蓝牙范围内的直接点对点通信 - 多跳中继:消息通过附近设备路由(最多7跳) - 无需互联网:在灾难场景中完全离线工作 - Noise协议加密:端到端加密,具备前向安全性 - 二进制协议:针对低功耗蓝牙限制优化的紧凑数据包格式 - 自动发现:对等节点发现与连接管理 - 自适应功耗:针对电池优化的占空比循环 ### Nostr协议(互联网) - 全球覆盖:通过互联网中继与全球用户连接 - 位置频道:使用地理哈希坐标创建的地理聊天室 - 290+中继网络:分布全球,确保可靠性 - NIP-17加密:为互联网隐私提供礼物包装的私密消息 - 临时密钥:每个地理哈希区域生成全新的加密身份 ### 频道类型 #### mesh #bluetooth - 传输方式:低功耗蓝牙Mesh网络 - 覆盖范围:多跳范围内的本地设备 - 互联网:不需要 - 使用场景:离线通信、抗议、灾难、偏远地区 #### 位置频道(block #dr5rsj、neighborhood #dr5rs、country #dr) - 传输方式:基于互联网的Nostr协议 - 覆盖范围:由地理哈希精度定义的地理区域 - block(7个字符):街区级别 - neighborhood(6个字符):社区/街区 - city(5个字符):城市级别 - province(4个字符):州/省 - region(2个字符):国家/大区域 - 互联网:需要(连接到Nostr中继) - 使用场景:基于位置的社区聊天、本地活动、区域讨论 ### 私信路由 私密消息采用智能传输选择: 1. 蓝牙优先(可用时首选) - 通过已建立的Noise会话直接连接 - 最快、最隐私的选项 2. Nostr后备(蓝牙不可用时) - 使用接收方的Nostr公钥 - NIP-17礼物包装确保隐私 - 通过全球中继网络路由 3. 智能队列(两者均不可用时) - 消息排队,直到传输可用 - 连接建立后自动投递 详细协议文档见技术白皮书。 ## 设置 ### 选项1:使用Xcode bash cd bitchat open bitchat.xcodeproj 要在设备上运行,需完成以下步骤: - 克隆本地配置:cp Configs/Local.xcconfig.example Configs/Local.xcconfig - 将开发者团队ID添加到新创建的 Configs/Local.xcconfig 中 - Bundle ID 将设置为 chat.bitchat.(除非你修改为其他值) - 需手动更新授权文件(TODO:自动化): - 搜索并替换 group.chat.bitchat 为 group.(例如 group.chat.bitchat.ABC123) ### 选项2:使用 just bash 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 编译检查本地化更新。
相似文章
permissionlesstech/bitchat-android
Bitchat 是一款安全、去中心化的点对点消息应用,适用于 Android,通过蓝牙网状网络运行,无需互联网或电话号码,具有端到端加密,并与 iOS 跨平台兼容。
@IndieDevHailey: 亿万富翁 Jack Dorsey 开源的神级项目 Bitchat ,简直是现代黑科技! 完全不需要互联网,用蓝牙就能收发 #Bitcoin + 聊天!!! - 飞机上、演唱会、地铁、荒郊野外、断网灾区……信号全无也能实时通讯 + 转账 -…
Jack Dorsey 开源了 Bitchat 项目,这是一个无需互联网、利用蓝牙 Mesh 网络实现离线通讯和比特币转账的工具,支持多跳中继、Cashu eCash 离线转账和双重加密,适用于断网、监控等场景。
@jack: 酷
bitchat 现在可以在无需互联网的情况下将自身发送到另一台 Android 手机,实现离线点对点通信。
Bitchat 现已登陆 Radicle
Bitchat,一款聊天应用,现已登陆去中心化代码协作平台 Radicle。
Bitsocial:面向社交应用的开源P2P网络
Bitsocial是一个开源的点对点网络,用于构建去中心化社交应用,让社区可以在树莓派等低成本硬件上运行,无需服务器依赖,并提供可定制的反垃圾挑战。