Arquitetura P2P

Os clientes Drexu se conectam diretamente uns aos outros usando WebRTC DataChannels. O servidor central só faz quatro coisas:

  1. Descoberta: troca de SDP/ICE para o WebRTC subir.
  2. STUN/TURN: travessia de NAT/CGNAT via coturn.
  3. Relay opaco: quando WebRTC não passa, o servidor repassa pacotes JÁ cifrados (não decifra).
  4. Push wakeup: avisa o aparelho que há conexão pendente.

Identidade

Cada aparelho gera localmente um par de chaves Ed25519 (assinatura) e X25519 (ECDH). Se houver SIM ativo, o ID público é o número (E.164). Caso contrário, é um +P2P-XXXXXXXX.

Eventos

Tudo é evento assinado. Exemplo de exclusão global:

{
  "id": "uuid",
  "type": "message.delete",
  "ts": 1789212312,
  "author": "<pubkey-base64>",
  "scope": { "kind": "dm", "id": "+5521999999999" },
  "payload": { "target_message_id": "550e8400-e29b-41d4" },
  "sig": "<ed25519-sig>"
}

← voltar