SHiNE-server/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/test-device/README.md
AidarKC 42dcf6970d homeserver: рендейм subserver→homeserver, документ деривации ключей, запрет пустого пароля
Основное (наша работа в этой сессии):
- Переименование «subserver» → «homeserver» по всему проекту: основной ESP32-скетч
  (папка shine_subserver_ui → shine_homeserver_ui, .ino, flash-скрипт, режим burn.sh
  homeserver-ui), скетч lvgl_nav_minimal_test (ключ homeserver.key:<имя>), spec-доки
  reference/*, формат PDA (терминология session_type=100 «Homeserver пользователя»),
  константа SESSION_TYPE_HOMESERVER в JS и Rust (значение 100 не менялось, формат не затронут),
  pending/future доки, AGENTS.md, DAO-док. Сохранены отдельный lvgl_subserver_touch_test и
  историческая пометка о рендейме в DERIVATION.md.
- Новый источник истины по деривации ключей: Dev_Docs/Keys/DERIVATION.md (Argon2id-секрет из
  пароля, формула Ed25519(SHA-256(base64(secret)|suffix)), суффиксы root/bch/dev/homeserver.key,
  Solana-ключ = dev.key). Уточнены роли root (главный/master) и dev (пополняемый кошелёк) в
  Dev_Docs/Keys/README.md.
- UI: убран легаси-путь пустого пароля (derivePasswordSeed и др.), deriveMasterSecretFromPassword
  бросает ошибку на пустом пароле, register-view блокирует пустой пароль; экран пополнения
  переведён на канонический device-адрес из preGeneratedKeyBundle (удалён расходящийся
  deriveWalletFromPassword).

Включены также параллельные правки Solana-аудита №3 (были в рабочем дереве, переплетены в lib.rs):
- shine_users: defense-in-depth «строгий список аккаунтов» (require!(it.next().is_none()))
  в init/update economy config и create/update user PDA, плюс описание в doc/programs/shine_users.md;
- Dev_Docs/audit/Solana-audit-3-by-Claude-12июня2026.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 21:16:12 +04:00

3.8 KiB
Raw Blame History

Test Device

Скрипт заливает официальные Arduino-примеры для быстрой проверки платы. burn.sh теперь:

  • сам пытается найти USB-порт ESP32;
  • сначала делает быструю инкрементальную сборку;
  • если быстрая сборка не удалась, автоматически повторяет полную clean-сборку.

Для режимов widgets, audio и hello рядом должен лежать локальный checkout official-demo/ из официального репозитория Waveshare. В основной git он не добавляется, потому что это большой внешний набор примеров, библиотек, прошивок и артефактов.

Режимы:

  • widgets — экран + touch + IMU (пример 05_LVGL_Widgets)
  • audio — динамик/аудио-кодек (пример 07_ES8311)
  • hello — базовый тест экрана (пример 01_HelloWorld)
  • simple — простой кастомный тест: экран + touch + запись/проигрывание + наклон (IMU)
  • argon2 — генерация masterSecret через Argon2id с SD-картой как памятью (тест скорости)
  • homeserver-ui — основной UI-прототип homeserver SHiNE: NVS, PIN, Wi-Fi, серверы, кошелёк, QR, запросы
  • text-test — диагностический экран рендера текста: default font, U8g2 ASCII, U8g2 кириллица, кнопки с подписями
  • gfx-text-test — тот же тест рендера текста, но уже внутри новой папки test_sketches/
  • gfx-layout-test — тест геометрии и нижних рядов кнопок
  • lvgl-basic-test — минимальный экран на LVGL с текстом и кнопками
  • lvgl-interaction-test — экран на LVGL с большим числом кнопок и сообщением о нажатой кнопке
  • lvgl-touch-debug-test — точечная диагностика touch: сырые координаты, маркер точки и большая тест-кнопка LVGL
  • lvgl-official-based-test — наш минимальный экран, но на максимально близкой к официальному LVGL_Widgets инициализации
  • lvgl-subserver-touch-test — гибрид: LVGL-интерфейс, но display/touch init и raw touch-read взяты из shine_homeserver_ui; подтверждено на устройстве, touch работает, зелёных линий по краям нет
  • lvgl-russian-font-test — тест кастомного LVGL-шрифта с кириллицей: русские кнопки, длинные подписи и статусы
  • lvgl-nav-minimal-test — новый минимальный UI-каркас homeserver: HOME, SETTINGS_MENU, Wi-Fi, Server, Account, свайпы, крупные кнопки и реальная настройка Wi-Fi с сохранением в NVS

Запуск:

  • ./burn.sh widgets
  • ./burn.sh audio
  • ./burn.sh hello
  • ./burn.sh simple
  • ./burn.sh homeserver-ui
  • ./burn.sh text-test
  • ./burn.sh gfx-text-test
  • ./burn.sh gfx-layout-test
  • ./burn.sh lvgl-basic-test
  • ./burn.sh lvgl-interaction-test
  • ./burn.sh lvgl-touch-debug-test
  • ./burn.sh lvgl-official-based-test
  • ./burn.sh lvgl-subserver-touch-test
  • ./burn.sh lvgl-russian-font-test
  • ./burn.sh lvgl-nav-minimal-test
  • ./flash_shine_homeserver_ui.sh - автоматически находит USB-порт и заливает shine_homeserver_ui