Добавить SendSignal и remote AddBlock через homeserver

This commit is contained in:
AidarKC
2026-06-28 11:20:51 +04:00
parent c397c28acb
commit aa02e92e4d
19 changed files with 1329 additions and 224 deletions
@@ -0,0 +1,33 @@
# Remote AddBlock через homeserver
- Статус: `pending`
- Дата: `2026-06-28 13:30`
## Что сделано
Добавлен общий серверный API `SendSignal` и первый сценарий его использования:
- клиент без локального `blockchain.key` выбирает `homeserver`-сессию (`sessionType = 100`);
- клиент отправляет в неё `remote_addblock_request` через `SendSignal`;
- запрос подписывается `session key` и `client key`;
- ESP32/homeserver автоматически подписывает настоящий `AddBlock` своим `blockchain key` и сам отправляет его на сервер;
- результат возвращается назад сигналом `remote_addblock_result`.
## Что проверить вручную
1. На клиенте без локального `blockchain.key` открыть настройки и выбрать активную `homeserver`-сессию для remote AddBlock.
2. Выполнить любое действие UI, которое приводит к `AddBlock`.
3. Убедиться, что клиент не падает в ошибку отсутствия `blockchain.key`, а отправляет `SendSignal`.
4. Убедиться, что ESP32/homeserver получает `IncomingSignal` с `remote_addblock_request`.
5. Убедиться, что homeserver отправляет обычный `AddBlock` на сервер.
6. Убедиться, что клиент получает `remote_addblock_result` и завершает исходную операцию как успешную.
7. Проверить негативный сценарий:
- homeserver-сессия не выбрана;
- homeserver офлайн;
- homeserver возвращает ошибку `AddBlock`.
## Ожидаемый результат
- При наличии локального `blockchain.key` клиент продолжает работать по старому локальному пути.
- При отсутствии локального `blockchain.key` и выбранной `homeserver`-сессии `AddBlock` проходит через удалённую подпись и удалённую отправку.
- В ошибочных сценариях пользователь получает понятную ошибку без скрытого fallback.