Перейти к содержанию

Узлы‑почтовики (Mailbox Node)

Узел‑почтовик хранит зашифрованные конверты «входящих» по ключу получателя и отдаёт их по запросу.

Назначение стаи ретрансляторов (swarm)

  • swarm = k узлов на основе консистентного хеша hash(PubKey).
  • Отправитель кладёт конверт на все k узлов (или m из n при кодировании стирания).
  • Получатель периодически выполняет GET к своей стае ретрансляторов и удаляет конверты через ACK (подписанный).

HTTP API

POST /node/put

Кладёт конверт.

{
  "to": "bob",
  "message_id": "550e8400-e29b-41d4-a716-446655440000",
  "header_b64": "...",
  "nonce_b64": "...",
  "cipher_b64": "...",
  "ttl_seconds": 1209600
}

GET /node/get?to=<user>

Возвращает список конвертов (до PENDING_BATCH).

POST /node/ack

Удаляет по message_id. Рекомендуется подписывать:

{
  "message_id": "550e8400-e29b-41d4-a716-446655440000",
  "pubkey_b64": "<ed25519-pub>",
  "sig_b64": "<ed25519-sign('ack:'+message_id)>"
}

Репликация и соседние узлы

  • После put узел может реплицировать на NODE_PEERS (best‑effort).
  • Удаление по ACK происходит на всех репликах.