Skip to content

去中心化社交

核心功能 | 状态: ✅ 生产就绪 | DID 身份 | Signal 端到端加密 | P2P 无服务器通信

ChainlessChain 内置的去中心化社交功能,让你在完全掌控数据的前提下与朋友交流。

系统架构

┌─────────────────────────────────────────────────┐
│                  社交功能层                        │
│  ┌──────────┐  ┌──────────┐  ┌───────────────┐ │
│  │ 好友管理  │  │ 私密消息  │  │ 动态/时间线   │ │
│  └─────┬────┘  └─────┬────┘  └───────┬───────┘ │
│        └─────────────┼───────────────┘          │
│                      ▼                          │
│  ┌─────────────────────────────────────────┐    │
│  │         P2P 通信层 (libp2p)              │    │
│  │  WebRTC DataChannel │ WebSocket 信令     │    │
│  └─────────────────────────────────────────┘    │
│                      │                          │
│  ┌──────────┐  ┌─────┴─────┐  ┌──────────────┐│
│  │ DID 身份  │  │Signal 加密│  │ 信誉系统      ││
│  │ (Ed25519) │  │(端到端)   │  │ (链上评价)    ││
│  └──────────┘  └───────────┘  └──────────────┘│
└─────────────────────────────────────────────────┘

核心模块

模块技术说明
DID 身份W3C DID + Ed25519去中心化身份标识
P2P 通信libp2p + WebRTC点对点无服务器通信
端到端加密Signal 协议消息前向保密
信令服务WebSocket (9001)NAT 穿透和连接建立
好友管理DID + 信任网络添加/验证/分组
动态发布CRDT + Gossip去中心化时间线

核心特性

  • 🆔 DID身份: 基于W3C标准的去中心化身份
  • 🔐 端到端加密: Signal协议保障通信隐私
  • 🌐 无服务器: 点对点通信,不依赖中心平台
  • 📱 跨设备: PC和手机无缝同步
  • 🔓 数据自主: 完全掌控社交数据

创建你的DID身份

什么是DID?

DID (Decentralized Identifier) 是去中心化标识符,是一种全新的身份系统:

  • 自主权: 由你自己创建和管理
  • 可验证: 通过密码学证明身份
  • 隐私保护: 无需透露真实信息
  • 全球唯一: 永久有效,不会被撤销

创建DID

首次使用时,系统会自动为你创建DID:

1. 打开社交模块
2. 系统检测到无DID
3. 自动生成密钥对(使用U盾/SIMKey)
4. 创建DID: did:chainlesschain:QmXXXXXX
5. 设置个人资料(昵称、头像、简介)
6. 完成!

DID格式

did:chainlesschain:QmXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
│   │            │
│   │            └─ 公钥哈希(Base58编码)
│   └────────────── DID方法名
└────────────────── DID前缀

添加好友

扫码添加

最简单的方式是扫描好友的二维码:

1. 点击"添加好友"
2. 选择"扫描二维码"
3. 扫描对方的DID二维码
4. 查看对方资料
5. 发送好友请求(可附加验证消息)
6. 等待对方同意

通过DID添加

如果对方发送了DID给你:

1. 点击"添加好友"
2. 选择"输入DID"
3. 粘贴对方的DID
4. 系统从DHT网络获取对方的DID文档
5. 验证签名
6. 发送好友请求

附近的人

利用本地网络发现功能:

1. 开启"附近的人"
2. 系统通过mDNS扫描局域网
3. 显示附近的ChainlessChain用户
4. 点击添加

TIP

"附近的人"功能使用本地网络广播,不会泄露位置信息到互联网

好友管理

好友分组

创建分组更好地管理好友:

typescript
// 创建分组
groups = [
  { name: "家人", color: "#FF6B6B" },
  { name: "同事", color: "#4ECDC4" },
  { name: "朋友", color: "#95E1D3" },
];

设置备注

为好友设置备注和标签:

右键好友 → 设置备注
- 备注名: 张三(高中同学)
- 标签: #高中 #同学 #篮球

信任评分

系统会根据互动历史自动计算信任评分(0-1):

  • 交流频率
  • 交易历史
  • 共同好友
  • 信誉背书

信任评分越高,在交易等场景下越安全。

发布动态

动态类型

支持多种类型的动态:

  1. 文字动态: 最多5000字
  2. 图文动态: 文字 + 最多9张图片
  3. 长文章: Markdown格式,无字数限制
  4. 投票: 发起话题投票

发布动态

1. 点击"发布动态"
2. 编辑内容
3. 添加图片/视频(可选)
4. 选择可见性:
   - 公开: 所有人可见,发布到IPFS
   - 好友可见: 仅好友可见,端到端加密
   - 私密: 仅自己可见
5. 发布

可见性控制

公开动态:

  • 发布到IPFS网络
  • 任何人都可以查看
  • 永久存储,无法删除(可撤回引用)

好友可见:

  • 使用好友公钥加密
  • 只有好友能解密查看
  • 通过P2P网络传输

私密动态:

  • 仅存储在本地
  • 可作为私人日记

私密消息

一对一聊天

1. 点击好友头像
2. 进入聊天界面
3. 输入消息
4. 发送

消息自动使用Signal协议加密:

  • ✅ 端到端加密
  • ✅ 前向安全
  • ✅ 未来安全
  • ✅ 可验证送达

群组聊天

创建加密群组:

1. 点击"创建群组"
2. 选择成员(最多500人)
3. 设置群名称和头像
4. 完成

群组消息使用对称密钥加密,所有成员共享群密钥。

消息状态

  • ✓ 已发送
  • ✓✓ 已送达
  • ✓✓ 已读(需对方开启已读回执)

离线消息

如果好友离线,消息会:

  1. 存储在中继节点(加密)
  2. 好友上线时自动推送
  3. 最长保留7天

时间线

查看动态

时间线显示好友的动态:

[时间线]
├─ 按时间排序(默认)
├─ 按热度排序
└─ 按AI推荐排序

AI推荐算法

本地AI会根据你的兴趣推荐内容:

  • 分析你点赞/评论的内容
  • 识别你的兴趣标签
  • 推荐相似内容
  • 完全本地运行,不上传数据

内容过滤

自定义过滤规则:

json
{
  "filters": {
    "keywords": ["广告", "营销"],
    "hideReposts": false,
    "showOnlyMedia": false
  }
}

P2P通信

连接流程

用户A想联系用户B

查询B的DID文档获取节点地址

尝试直接P2P连接
    ├─ 成功: 直接通信
    └─ 失败: NAT无法穿透

    使用中继节点转发

    建立加密通道

NAT穿透

系统自动尝试多种NAT穿透技术:

  1. STUN: 获取公网IP和端口
  2. ICE: 协商最佳连接路径
  3. TURN: 实在不行就用中继

中继节点

官方提供的免费中继节点:

relay1.chainlesschain.com:4001
relay2.chainlesschain.com:4001
relay3.chainlesschain.com:4001

你也可以运行自己的中继节点:

bash
docker run -p 4001:4001 chainlesschain/relay-node

信任网络

Web of Trust

去中心化信任网络,无需中心化认证机构:

你 ──信任─→ 张三 ──信任─→ 李四

          信任传递

你对李四的信任度 = 你对张三的信任 × 张三对李四的信任

信誉背书

为好友的技能和品质背书:

1. 进入好友资料
2. 点击"背书"
3. 选择背书类型:
   - 技能: 编程、设计、写作...
   - 品质: 诚信、守时、专业...
4. 撰写评价(可选)
5. 签名发布

背书会记录在区块链上,公开透明。

举报和屏蔽

遇到不良用户可以:

屏蔽:

  • 不再看到对方动态
  • 对方无法给你发消息
  • 仅在本地生效

举报:

  • 向社区仲裁员举报
  • 提交证据
  • 等待仲裁结果
  • 恶意用户可能被全网屏蔽

隐私设置

个人资料可见性

资料项         │ 公开 │ 好友 │ 私密
───────────────┼──────┼──────┼─────
昵称           │  ✓   │  ✓   │  ✓
头像           │  ✓   │  ✓   │  ✓
简介           │  ✓   │  ✓   │  ✓
DID           │  ✓   │  ✓   │  ✓
真实姓名       │  ✗   │  ?   │  ✓
手机号         │  ✗   │  ✗   │  ✓
位置信息       │  ✗   │  ?   │  ✓

在线状态

可以隐藏在线状态:

在线状态显示:
○ 显示实时状态
○ 仅显示给好友
● 永远显示为离线(隐身)

动态可见性默认值

新动态默认可见性:
○ 公开
● 好友可见
○ 私密

数据导出

导出个人数据

随时导出所有社交数据:

设置 → 数据管理 → 导出数据

导出内容包括:

  • DID文档
  • 好友列表
  • 聊天记录(已解密)
  • 发布的动态
  • 图片和文件

格式: JSON / CSV / Markdown

账号注销

如果想要删除账号:

1. 导出数据备份
2. 发布DID撤销声明
3. 删除本地所有数据
4. (可选)从区块链注册表移除DID

WARNING

DID撤销后无法恢复,请谨慎操作

故障排查

无法连接好友

检查清单:

  • [ ] 双方都在线
  • [ ] 网络连接正常
  • [ ] 防火墙未阻止P2P端口
  • [ ] 中继节点可访问

解决方案:

bash
# 测试中继节点连接
ping relay1.chainlesschain.com

# 检查P2P端口
netstat -an | grep 4001

# 重启P2P服务
设置 高级 重启P2P网络

消息发送失败

可能原因:

  1. 对方离线且中继节点故障
  2. 对方屏蔽了你
  3. 网络连接问题

查看详细错误:

右键消息 → 查看发送状态

同步问题

如果多设备间消息不同步:

bash
# 强制同步
设置 数据同步 立即同步

# 检查Git仓库状态
设置 数据同步 查看同步日志

最佳实践

保护隐私

  1. ✅ 谨慎设置个人资料可见性
  2. ✅ 不要在公开动态中透露敏感信息
  3. ✅ 定期检查好友列表,移除不认识的人
  4. ✅ 使用强密码保护U盾/SIMKey

安全社交

  1. ✅ 验证对方身份后再添加好友
  2. ✅ 重要事项使用私密消息,不要公开动态
  3. ✅ 遇到可疑用户及时举报
  4. ✅ 不要点击可疑链接

优化体验

  1. ✅ 合理使用分组管理好友
  2. ✅ 善用AI推荐发现感兴趣的内容
  3. ✅ 定期备份聊天记录
  4. ✅ 关闭不必要的通知

扩展社交功能

以下功能已在 v1.0.0 中全部实现,所有功能均遵循去中心化和隐私优先的设计原则。


语音/视频通话(P2P WebRTC)

已实现: 完全去中心化的实时音视频通话,无需中心服务器中转媒体流。

架构设计

发起方                                        接收方
  │                                             │
  ├─ 创建RTCPeerConnection                      │
  ├─ 添加本地媒体流(音频/视频)                    │
  ├─ 创建Offer (SDP)                            │
  ├─ 通过P2P信令通道发送Offer ──────────────────→ │
  │                                             ├─ 设置RemoteDescription
  │                                             ├─ 添加本地媒体流
  │                                             ├─ 创建Answer (SDP)
  │ ←─────────────────────────── 返回Answer ────┤
  ├─ 设置RemoteDescription                      │
  │                                             │
  ├─ ICE候选交换 ←──────────────────────────────→ ├─ ICE候选交换
  │                                             │
  ╰═══════════ 媒体流直连 (DTLS-SRTP) ═══════════╯

核心功能

  • [x] 一对一语音通话(Opus编码,48kHz)
  • [x] 一对一视频通话(VP8/VP9/H.264自适应)
  • [x] 通话中文字消息
  • [x] 屏幕共享(桌面端)
  • [x] 通话录音/录像(本地存储)
  • [x] 通话质量自适应(带宽检测、分辨率调整)
  • [x] 来电通知与响铃
  • [x] 静音/扬声器/摄像头切换

多人通话

支持最多8人的群组通话:

SFU模式(推荐):
                ┌─────────┐
    用户A ──────┤         ├────── 用户C
                │ 中继SFU  │
    用户B ──────┤ (可选)   ├────── 用户D
                └─────────┘

Mesh模式(小规模):
    用户A ←───→ 用户B
      ↕    ╲  ╱    ↕
    用户D ←───→ 用户C
  • 2-4人: Mesh全连接模式,无需服务器
  • 5-8人: SFU模式,需要中继节点辅助
  • 加密: 每条媒体流独立DTLS-SRTP加密

安全机制

  • SRTP加密: 所有媒体流使用DTLS-SRTP加密
  • 信令加密: Offer/Answer/ICE通过已有的Signal加密通道传输
  • 身份验证: 通过DID验证通话双方身份
  • 安全指示器: 通话界面显示加密状态和对方DID验证状态

配置示例

json
{
  "call": {
    "video": {
      "defaultResolution": "720p",
      "maxResolution": "1080p",
      "frameRate": 30,
      "codec": "VP9"
    },
    "audio": {
      "echoCancellation": true,
      "noiseSuppression": true,
      "autoGainControl": true,
      "codec": "opus"
    },
    "ice": {
      "stunServers": ["stun:stun.chainlesschain.com:3478"],
      "turnServers": ["turn:turn.chainlesschain.com:3478"]
    },
    "recording": {
      "autoSave": false,
      "format": "webm",
      "storagePath": "data/recordings/"
    }
  }
}

关键文件

文件职责
src/main/p2p/call-manager.js通话管理器,生命周期控制
src/main/p2p/media-engine.js媒体引擎,音视频采集/编码
src/main/p2p/call-signaling.js通话信令,Offer/Answer/ICE
src/main/p2p/sfu-relay.jsSFU中继节点(多人通话)
src/main/social/call-ipc.js通话IPC处理器
src/renderer/components/social/CallPanel.vue通话UI面板
src/renderer/components/social/IncomingCall.vue来电通知组件
src/renderer/stores/call.ts通话状态管理

共享相册

已实现: 好友间创建共享加密相册,支持协作上传、评论和隐私分级管理。

功能概览

共享相册
├─ 创建相册
│   ├─ 设置名称、封面、描述
│   ├─ 邀请成员(从好友列表选择)
│   └─ 设置权限(查看/上传/管理)
├─ 上传照片
│   ├─ 本地选择(支持批量)
│   ├─ 自动生成缩略图
│   ├─ EXIF信息提取(可选剥离隐私数据)
│   └─ 加密后分发给成员
├─ 浏览与互动
│   ├─ 时间线/网格视图切换
│   ├─ 照片评论(加密)
│   ├─ 点赞/收藏
│   └─ AI智能分类(人物/地点/事件)
└─ 存储管理
    ├─ P2P分布式存储(成员节点间冗余)
    ├─ IPFS固定(可选,公开相册)
    └─ 本地缓存策略(LRU淘汰)

核心功能

  • [x] 创建/删除/编辑共享相册
  • [x] 邀请好友加入相册(权限分级:查看者/贡献者/管理员)
  • [x] 批量上传照片/视频(自动压缩)
  • [x] 照片评论和点赞(端到端加密)
  • [x] AI自动分类和人脸识别(完全本地处理)
  • [x] 照片EXIF隐私剥离(移除GPS、设备信息)
  • [x] 分布式冗余存储(至少2个节点保存副本)
  • [x] 离线缓存与增量同步
  • [x] 相册二维码分享

加密方案

相册加密流程:
1. 创建相册时生成相册密钥 (AES-256)
2. 用每个成员的公钥加密相册密钥
3. 上传照片时用相册密钥加密
4. 成员用自己的私钥解密相册密钥
5. 用相册密钥解密照片

密钥分发:
    创建者 ──┬── encrypt(albumKey, 成员A.pubKey) → 成员A
             ├── encrypt(albumKey, 成员B.pubKey) → 成员B
             └── encrypt(albumKey, 成员C.pubKey) → 成员C

存储策略

相册类型存储方式冗余度可用性
私密相册仅本地1份仅本机
好友共享P2P成员节点2-3份成员在线时
公开相册IPFS + 本地多份永久

关键文件

文件职责
src/main/social/shared-album-manager.js相册CRUD与权限管理
src/main/social/photo-encryptor.js照片加密/解密
src/main/social/photo-sync.jsP2P照片同步引擎
src/main/social/exif-stripper.jsEXIF隐私数据剥离
src/main/social/album-ipc.js相册IPC处理器
src/renderer/pages/SharedAlbumsPage.vue相册浏览页
src/renderer/components/social/PhotoViewer.vue照片查看器
src/renderer/stores/albums.ts相册状态管理

协作编辑文档

已实现: 去中心化的实时协作文档编辑,支持多人同时编辑同一文档,基于CRDT实现无冲突合并。

架构设计

协作编辑架构 (CRDT-based):

    用户A (编辑)                      用户B (编辑)
        │                                │
        ▼                                ▼
    本地CRDT文档                     本地CRDT文档
        │                                │
        ├── 生成操作 (Insert/Delete)       ├── 生成操作
        │                                │
        ▼                                ▼
    操作日志 (OpLog)                  操作日志 (OpLog)
        │                                │
        └──── P2P同步操作 ←──────────────→┘


              自动合并 (无冲突)

核心功能

  • [x] 富文本编辑器(Markdown + WYSIWYG双模式)
  • [x] 实时协作编辑(基于Yjs CRDT引擎)
  • [x] 光标位置和选区实时同步
  • [x] 操作历史与版本回溯
  • [x] 评论与批注(锚定到文档位置)
  • [x] 离线编辑与自动合并
  • [x] 文档权限管理(所有者/编辑者/评论者/查看者)
  • [x] 导出为Markdown/PDF/DOCX

协作协议

操作同步流程:

1. 用户编辑 → 生成CRDT操作
2. 操作附加到本地OpLog
3. 通过P2P DataChannel广播操作
4. 远端接收操作 → 应用到本地CRDT
5. CRDT自动解决冲突 → 视图更新

冲突解决示例:
  用户A: 在位置5插入 "Hello"
  用户B: 在位置5插入 "World"
  CRDT结果: "HelloWorld" 或 "WorldHello" (由逻辑时钟决定,所有节点一致)

文档类型支持

文档类型格式协作支持说明
笔记Markdown实时协作基础文本协作
表格结构化数据实时协作类似在线表格
白板Canvas实时协作自由绘图和便签
思维导图树形结构实时协作节点可独立编辑

关键文件

文件职责
src/main/social/collab-engine.jsCRDT协作引擎(基于Yjs)
src/main/social/collab-sync.jsP2P操作同步
src/main/social/collab-awareness.js协作者感知(光标/选区)
src/main/social/doc-version-manager.js版本历史管理
src/main/social/collab-social-ipc.js协作社交IPC处理器
src/renderer/pages/CollabEditorPage.vue协作编辑器页面
src/renderer/components/social/CursorOverlay.vue远端光标显示
src/renderer/stores/socialCollab.ts协作状态管理

社区/频道功能

已实现: 去中心化的主题社区和订阅频道,支持公开讨论、内容聚合和社区自治。

社区架构

社区结构:
    社区 (Community)
    ├─ 元数据
    │   ├─ 名称、描述、图标
    │   ├─ 创建者DID
    │   ├─ 规则文档 (Markdown)
    │   └─ 成员上限
    ├─ 频道 (Channels)
    │   ├─ #综合讨论 (默认)
    │   ├─ #技术分享
    │   ├─ #资源推荐
    │   └─ #公告 (仅管理员发布)
    ├─ 角色 (Roles)
    │   ├─ 创建者 (Owner)
    │   ├─ 管理员 (Admin)
    │   ├─ 版主 (Moderator)
    │   └─ 成员 (Member)
    └─ 治理 (Governance)
        ├─ 投票系统
        ├─ 提案机制
        └─ 仲裁流程

核心功能

  • [x] 创建/加入/退出社区
  • [x] 社区内多频道(文字/图片/文件/公告)
  • [x] 角色与权限管理(创建者/管理员/版主/成员)
  • [x] 社区规则文档(Markdown,加入时必读)
  • [x] 帖子排序(最新/最热/精华/AI推荐)
  • [x] 内容审核(AI辅助 + 人工仲裁)
  • [x] 社区投票与提案
  • [x] 跨社区内容分享
  • [x] 社区搜索与发现
  • [x] 订阅频道(单向内容推送)

去中心化治理

提案流程:
    成员发起提案 → 社区公示(48h) → 投票(72h) → 结果执行

                                      ├─ 赞成 > 66%: 通过
                                      ├─ 赞成 50-66%: 延长讨论
                                      └─ 赞成 < 50%: 否决

可投票事项:
  - 修改社区规则
  - 任命/罢免版主
  - 封禁违规用户
  - 社区名称/图标变更
  - 新增/删除频道

投票权重:
  创建者: 3票
  管理员: 2票
  普通成员: 1票

消息分发机制

Gossip协议分发:

    发帖者

      ├──→ 在线成员A ──→ 成员D
      ├──→ 在线成员B ──→ 成员E
      └──→ 在线成员C ──→ 成员F
                              └──→ 成员G

  特性:
  - 消息通过Gossip协议在成员间扩散
  - 每个节点最多转发给3个Peer
  - 消息去重(基于消息ID哈希)
  - 离线成员上线后从邻居节点同步

频道类型

频道类型权限消息类型用途
公告频道仅管理员发布文字/图片社区通知
讨论频道所有成员文字/图片/文件日常讨论
只读频道仅查看任意资源存档
订阅频道发布者推送文字/图片内容订阅

关键文件

文件职责
src/main/social/community-manager.js社区CRUD与成员管理
src/main/social/channel-manager.js频道管理与消息路由
src/main/social/governance-engine.js投票、提案、仲裁
src/main/social/gossip-protocol.jsGossip消息分发
src/main/social/content-moderator.jsAI辅助内容审核
src/main/social/community-ipc.js社区IPC处理器
src/renderer/pages/CommunityPage.vue社区主页
src/renderer/pages/ChannelPage.vue频道详情页
src/renderer/stores/community.ts社区状态管理

朋友圈时光机

已实现: 回顾历史社交动态,AI生成社交回忆摘要,提供时间线可视化浏览。

功能概览

时光机功能:
├─ 时间线浏览
│   ├─ 年度视图: 每月精选动态
│   ├─ 月度视图: 每日动态概览
│   ├─ 日视图: 当日所有动态
│   └─ 事件视图: 按事件/话题聚合
├─ AI回忆生成
│   ├─ "N年前的今天" 每日推送
│   ├─ 年度社交报告
│   ├─ 友谊里程碑(认识100天等)
│   └─ 情感趋势分析
├─ 互动回顾
│   ├─ 与某好友的完整互动历史
│   ├─ 共同话题词云
│   └─ 互动频率热力图
└─ 导出与分享
    ├─ 生成精美回忆卡片
    ├─ 导出为PDF回忆录
    └─ 分享给好友(加密)

核心功能

  • [x] 时间线浏览器(年/月/日/事件多维度)
  • [x] "N年前的今天" 每日回忆推送
  • [x] AI年度社交报告生成
  • [x] 好友互动历史回顾
  • [x] 情感趋势分析(基于动态文本)
  • [x] 友谊里程碑提醒
  • [x] 回忆卡片生成(可分享)
  • [x] 话题词云可视化
  • [x] 互动频率热力图
  • [x] 回忆录PDF导出

AI回忆分析

分析维度:

1. 情感趋势
   ┌────────────────────────────────┐
   │ 😊                        😊   │
   │    ╲  😐          😊  ╱       │
   │     ╲╱  ╲    ╱╲╱           │
   │          😔╱                   │
   │ 1月  3月  5月  7月  9月  11月  │
   └────────────────────────────────┘

2. 社交活跃度
   1月 ████████████████ 45条
   2月 ████████████ 32条
   3月 ██████████████████ 51条
   ...

3. 话题分布
   技术 ███████ 35%
   生活 █████ 25%
   旅行 ████ 20%
   美食 ███ 15%
   其他 █ 5%

隐私保护

  • 所有分析完全在本地进行,不上传任何数据
  • AI模型使用本地Ollama运行
  • 回忆卡片分享时自动加密,仅接收者可查看
  • 可设置"遗忘":永久删除某段时间的动态

关键文件

文件职责
src/main/social/time-machine.js时光机核心引擎
src/main/social/memory-generator.jsAI回忆生成
src/main/social/sentiment-analyzer.js情感趋势分析
src/main/social/social-stats.js社交统计与可视化数据
src/main/social/time-machine-ipc.js时光机IPC处理器
src/renderer/pages/TimeMachinePage.vue时光机主页
src/renderer/components/social/MemoryCard.vue回忆卡片组件
src/renderer/stores/timeMachine.ts时光机状态管理

去中心化直播

已实现: 基于P2P网络的实时直播功能,支持小规模社区直播和互动。

核心功能

  • [x] P2P直播推流(WebRTC + SFU混合架构)
  • [x] 实时弹幕(加密DataChannel传输)
  • [x] 直播回放(本地录制存储)
  • [x] 观众互动(点赞、礼物、投票)
  • [x] 屏幕共享直播(技术分享场景)
  • [x] 多人连麦(最多4人)
  • [x] 直播预告与订阅通知
  • [x] 直播间访问控制(公开/好友/密码/邀请码)

分发架构

主播节点

   ├──→ SFU中继节点1 ──→ 观众A, B, C
   ├──→ SFU中继节点2 ──→ 观众D, E, F
   └──→ 直连观众G (低延迟)

  分发策略:
  - <10人: P2P Mesh直连
  - 10-100人: SFU中继分发
  - >100人: 多级SFU级联

关键文件

文件职责
src/main/social/livestream-manager.js直播管理器(推流/录制)
src/main/social/danmaku-engine.js弹幕引擎(加密传输)
src/main/social/livestream-ipc.js直播IPC处理器
src/renderer/pages/LivestreamPage.vue直播主页
src/renderer/components/social/DanmakuOverlay.vue弹幕显示层
src/renderer/stores/livestream.ts直播状态管理

高级社交特性

已实现: 多种高级去中心化社交功能,全部集成于 v1.0.0。

  • 匿名社交模式: 零知识证明验证身份,完全匿名发帖/评论
  • 跨平台桥接: 桥接到 Mastodon/Nostr 等去中心化社交网络
  • 社交代币: 社区发行治理代币(social-token.js),激励优质内容
  • AI社交助手: 智能回复建议、话题推荐、社交破冰(ai-social-assistant.js
  • 去中心化存储市场: 用代币购买社区成员的存储空间(storage-market.js
  • 离线Mesh社交: P2P Mesh 网络离线社交(mesh-social.js

功能总览

功能核心技术关键文件状态
语音/视频通话WebRTC, SRTP, SFUcall-manager.js, media-engine.js✅ 已实现
共享相册AES-256加密, P2P存储shared-album-manager.js, photo-encryptor.js✅ 已实现
协作编辑文档Yjs CRDT, P2P同步collab-engine.js, collab-sync.js✅ 已实现
社区/频道Gossip协议, 治理投票community-manager.js, governance-engine.js✅ 已实现
朋友圈时光机本地AI分析, 情感识别time-machine.js, memory-generator.js✅ 已实现
去中心化直播WebRTC SFU, 弹幕livestream-manager.js, danmaku-engine.js✅ 已实现
匿名/桥接/代币ZKP, ActivityPubanonymous-mode.js, social-token.js✅ 已实现

使用示例

CLI 社交操作

bash
# 创建 DID 身份
chainlesschain did create

# 查看已有 DID
chainlesschain did list

# 使用 DID 签名消息
chainlesschain did sign "Hello, this is my signed message"

# 查看 P2P 对等节点
chainlesschain p2p peers

# 发送加密消息
chainlesschain p2p send did:chainlesschain:QmXXXX "你好,收到请回复"

# 配对新设备
chainlesschain p2p pair "My Android Phone"

桌面端常用操作

1. 社交模块 → 添加好友 → 扫描二维码或输入 DID
2. 好友列表 → 点击头像 → 进入加密聊天
3. 发布动态 → 选择可见性(公开/好友/私密)
4. 社区 → 加入/创建 → 多频道讨论
5. 时光机 → 查看历史动态和 AI 回忆摘要

安全考虑

身份安全

  • DID 私钥由 U 盾/SIMKey 硬件保护,永不导出到软件层
  • DID 文档使用 Ed25519 签名,支持离线验证,防伪造
  • 撤销的 DID 通过链上声明永久标记,无法被重新激活

通信安全

  • 所有私密消息使用 Signal 协议 端到端加密,具备前向安全和未来安全
  • P2P 连接通过 Noise Protocol 建立加密通道,中继节点无法读取内容
  • 群组消息使用对称密钥加密,成员退出后自动更新群密钥

数据隐私

  • 本地 AI 推荐算法完全在设备上运行,不上传任何行为数据
  • 动态发布支持三级可见性控制,私密动态仅存储在本地
  • 社交数据随时可导出,支持 JSON/CSV/Markdown 格式完整备份

防滥用机制

  • 社区治理基于 DAO 投票,恶意用户可被全网屏蔽
  • 匿名社交使用零知识证明验证身份,防止匿名滥用
  • 内容审核结合 AI 辅助检测和人工仲裁双重机制

关键文件

  • desktop-app-vue/src/main/p2p/ — P2P 通信核心
  • desktop-app-vue/src/main/did/ — DID 身份管理
  • desktop-app-vue/src/main/p2p/signaling-handlers.js — 信令服务
  • desktop-app-vue/src/renderer/pages/social/ — 社交前端页面

相关文档

基于 MIT 许可发布