Document authenticated media admission and revocation boundaries
This commit is contained in:
1 parent
eac0163b69
commit
4a34b174c5
2 files changed
+17
No files matched your search
@@ -95,9 +95,21 @@ DEBUG etcp_route показывает candidate/nonce, repeat, возраст и
|
||||
## Подтверждение и пауза потребителя
|
||||
|
||||
DATA проходят crypto policy и verify/decrypt до изменения reorder/rx_seq.
|
||||
Если сервис требует SIGNED, подпись обязательна также для HELLO/CHALLENGE/CONFIRM, ACK/BUSY и CLOSE.
|
||||
Пустые управляющие пакеты подписываются без шифрования; ENCRYPTED применяется к сервисному payload.
|
||||
Сервис получает `[svc:1][src:8][dst:8][rx_flags:1][group:8][payload]`, всего 26 байт заголовка.
|
||||
Его callback владеет entry, ACK продвигается после успешной передачи callback.
|
||||
|
||||
Сервис может установить `authorize(inst, group, peer)` после включения обязательного SIGNED.
|
||||
Только результат 1 разрешает доступ. На входе peer — проверенный подписью конечный отправитель;
|
||||
сосед ETCP может быть посредником. Предикат читает состояние допуска, не вызывает callbacks и не меняет router.
|
||||
Он проверяется перед открытием канала, приёмом, каждой доставкой из reorder, отправкой и ретрансмитом.
|
||||
Транзитный узел пересылает пакет без применения политики конечного сервиса.
|
||||
|
||||
После commit изменения членства `etcp_router_revalidate_group` закрывает запрещённые каналы,
|
||||
очищает их очереди и уведомляет сервис. Общий ETCP и разрешённые каналы соседних групп сохраняются.
|
||||
Байты, уже переданные нижнему транспорту, отозвать нельзя; дальнейшая отправка через router запрещена.
|
||||
|
||||
ACK подтверждает только диапазон до tx_sent, в модульном порядке uint32.
|
||||
При продвижении снимаются существующие inflight-записи и один раз учитываются исходные payload bytes.
|
||||
|
||||
@@ -137,6 +149,7 @@ resume_receive планирует продолжение. Управляющий
|
||||
|
||||
Self-доставка через etcp_route_send синхронна и не создаёт канал. Она обходит сетевые crypto policy
|
||||
и receive_ready, выдаёт rx_flags=0; режим проверяется на допустимые биты.
|
||||
Предикат authorize применяется и к self-доставке.
|
||||
Payload должен быть непустым и помещаться вместе с 26-байтным заголовком в uint16 длину.
|
||||
Нет обработчика, переполнение размера или отказ памяти возвращают -1.
|
||||
Отдельный синтетический conn каждого вызова сохраняет контекст при вложенных доставках разных ядер.
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
/* media_delivery_proto — wire-структуры и подкоманды доставки блоков медиа CHAT-группы.
|
||||
* Описывает запросы держателей, чанки, подтверждения наличия и репликацию между суперузлами.
|
||||
* Это формат payload сервиса router, без группового маршрутизационного заголовка; обработчики — media_delivery/download.
|
||||
* Сетевые данные требуют SIGNED|ENCRYPTED, control — SIGNED. Локальный узел и конечный peer должны быть
|
||||
* активными членами CHAT-группы (source=0, deleted=0, admitted=1); наличие общего ETCP не даёт доступа.
|
||||
* QUERY и передача блоков доступны обычным участникам; HAVE_BLOCK/PROCESSING принимает суперузел,
|
||||
* SYNC/CHANGED требуют роли суперузла с обеих сторон. Повторённый group_id должен совпадать с router.
|
||||
* Числа SYNC кодируются little endian; остальные packed-поля — native byte order текущего формата.
|
||||
* SERVE_REG/LEAVE меняют только вспомогательный served_nodes; текущий загрузчик их не посылает.
|
||||
* SERVE_ACK сейчас не отправляется, входящие SERVE_ACK/HAVE_BLOCK_ACK игнорируются; ожидания ACK и его retry нет. */
|
||||
|
||||
Reference in new issue
Block a user