From 14e2cdc23d65c86eceac12422a4aec28db29b318 Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 13 Oct 2026 10:18:44 +0200 Subject: [PATCH] Document supernode stream assistance and completed validation --- doc/stream.txt | 6 ++++-- doc/tasks.md | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/stream.txt b/doc/stream.txt index 53afce3c..543ec6f2 100644 --- a/doc/stream.txt +++ b/doc/stream.txt @@ -902,7 +902,8 @@ READY будит selector и снимает старый backoff данного После первой действующей выдачи запрос становится BOUND; дальнейшую потребность подтверждают обычные RENEW/аренда. Если помощь не даёт прогресса потребителя 15 секунд и набор по-прежнему недостаточен, её выдачи закрываются, selector пробует другого суперузла. Запросы/ответы не продлевают аренду raw-выдач. -Состояние закрытого запроса сохраняется 60 секунд; оно также ограничивает частоту повторных попыток к тому же суперузлу. +Состояние закрытого запроса сохраняется 60 секунд. Неуспех имеет такой же cooldown для этого суперузла; +после обычного закрытия успешной помощи новый nonce допускается сразу. Один внутренний owner/экземпляр на точную эпоху обслуживает всех получателей. У него обычные buffer/FEC/selector, но нет player и пользовательских callbacks, пока нет публичного viewer. Добавление viewer делит тот же буфер. @@ -925,4 +926,5 @@ Relay-only экземпляр не запрашивает новую помощ test_stream_service проверяет отсутствие помощи при прямом успехе/паузе источника, автоматический fallback, раздачу нескольким зрителям, общий owner с локальным viewer, остановку при уходе последнего, -поздний повтор запроса, исключение relay-only кандидатов и передачу пустого подписанного END. +поздний повтор запроса до/после удаления tombstone, CANCEL до REQUEST, истечение READY без SUBSCRIBE, +откат неуспешного добавления viewer, исключение relay-only кандидатов и передачу пустого подписанного END. diff --git a/doc/tasks.md b/doc/tasks.md index 406f680d..1634090d 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -4,6 +4,16 @@ ## Текущие задачи +[+] **Стриминг: помощь суперузлов по запросу** — 13.10.2026: автоматический запрос + при невозможности получения k субпотоков, внутреннее владение точной эпохой, + общий буфер со зрителями, аренды и остановка без downstream. Relay-only + экземпляры не удерживают друг друга. Подписанное управление с подтверждением + поколения, таймаут READY, защита от поздних запросов и пустой END. + Routed ID перенесён на 0x3C из-за конфликта с MEMBER_FILES; wire v4. + Исправлено владение CM handles репликации медиа при смене роли суперузла. + Контракт: `doc/stream.txt`, раздел 21. 148 тестов прошли, 1 пропущен; + `test_stream_service` и отдельный `--relay-only` завершились без утечек. + [ ] **Android: отмена асинхронного запуска до готовности ядра** — при проверке мониторинга 12.10.2026 обнаружено: `NativeLib.stop()` пропускает native stop, если `isReady()==false`, а `instance_lite_stop()` возвращается при `g_inst==NULL`.