Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Отчёт для нейросети: Развёртывание и использование Nanoboard на Android (Termux)
- ## 1. Краткое описание проекта
- Nanoboard — экспериментальная децентрализованная имиджборда, в которой посты хранятся внутри PNG‑файлов с использованием стеганографии. Обмен данными происходит путём публикации этих PNG‑контейнеров на любых публичных хостингах картинок (обычных имиджбордах) и последующего скачивания их другими пользователями. Официальный репозиторий: `https://github.com/nanoboard/nanoboard`. Проект не обновлялся с ~2017 года, представляет собой сервер на .NET (Mono) и клиентский веб‑интерфейс.
- ## 2. Технический стек и архитектура
- - **Сервер**: C#, .NET Framework, запускается через Mono (`nanodb.exe`). Исходный код включён в релиз.
- - **Хранение**: Посты сохраняются в подпапке `containers/` в виде PNG‑файлов с криптографической подписью (Ed25519, NaCl). Каждый файл — отдельный пост или тред.
- - **Транспорт**: Пользователи вручную загружают PNG‑контейнеры на сторонние борды (например, 2ch.hk, imageboards), а Nanoboard периодически скачивает их по указанным URL.
- - **Клиент**: Статический веб‑интерфейс (HTML+JS), доступный после запуска сервера по адресу `http://127.0.0.1:7346`.
- - **Зависимости**: Mono (или .NET Framework), библиотеки Chaos.NaCl, Newtonsoft.Json.
- ## 3. Установка и запуск на телефоне с Termux
- ### Проблема:
- Прямая установка Mono в Termux невозможна (пакет отсутствует в репозиториях, сторонний deb‑файл недоступен). Решение: использовать `proot‑distro` для запуска полноценного окружения Ubuntu внутри Termux и установить Mono из стандартных репозиториев Ubuntu.
- ### Пошаговая инструкция (успешно проверена):
- 1. **Установить proot‑distro**:
- ```bash
- pkg update && pkg upgrade
- pkg install proot-distro
- ```
- 1. Установить Ubuntu (25.10, aarch64):
- ```bash
- proot-distro install ubuntu
- ```
- 2. Войти в Ubuntu:
- ```bash
- proot-distro login ubuntu
- ```
- 3. Установить Mono (внутри Ubuntu):
- ```bash
- apt update
- apt install mono-complete
- ```
- 4. Скачать и распаковать Nanoboard (архив уже скачан в Termux, переместить в Ubuntu):
- ```bash
- cp /data/data/com.termux/files/home/nanoboard-restore.zip /root/
- cd /root
- unzip nanoboard-restore.zip
- ```
- 5. Запустить сервер:
- ```bash
- cd /root/nanoboard-restore
- mono nanodb.exe
- ```
- Сервер запускается на порту 7346. Предупреждение о несовместимости версии рантайма некритично.
- 6. Открыть интерфейс: в браузере телефона http://127.0.0.1:7346.
- 4. Использование (базовый функционал)
- · Создание поста/треда: Заполнить форму на главной, прикрепить картинку (опционально), решить капчу, отправить. Пост сохраняется в containers/<uuid>.png.
- · Ответ в тред: Открыть тред, форма внизу, аналогично.
- · Настройки (/params): выбор скина (futaba, dark, photon), включение/отключение капчи, управление источниками контейнеров (URL для сканирования).
- · Уведомления: страница /notif показывает ответы на ваши посты (если включено).
- 5. Децентрализованный обмен (как читать чужие посты и публиковать свои)
- Как прочитать чужой пост из PNG‑контейнера:
- · Поместить файл контейнера в папку /root/nanoboard-restore/containers/.
- · При необходимости переименовать в UUID формат: mv file.png $(uuidgen).png.
- · Обновить страницу Nanoboard в браузере — расшифровка произойдёт автоматически.
- Как опубликовать свой пост:
- · Ваш пост уже лежит в containers/ как PNG. Скопировать его в общедоступное место телефона:
- ```bash
- cp /root/nanoboard-restore/containers/<file>.png /sdcard/Download/
- ```
- · Загрузить этот PNG на любую публичную имиджборду (вручную через браузер или curl).
- Автоматическая синхронизация:
- · Через веб‑интерфейс (/params) задаются URL‑адреса страниц, с которых Nanoboard будет периодически скачивать PNG‑файлы (например, ссылки на треды имиджборд). Механизм скачивания встроен в сервер.
- 6. Проблема: все ранее известные источники контейнеров недоступны
- Пользователь сообщил, что все ссылки из настроек «Sources» (вероятно, ведущие на конкретные имиджборды) мертвы. Это ожидаемо, так как проект не поддерживается, а публичные точки обмена недолговечны.
- Возможные пути решения (требуют дальнейшего анализа):
- · Поиск актуальных форков Nanoboard (например, username1565/nanoboard на GitHub) — возможно, там обновлены ссылки.
- · Поиск архивов имиджборд, где ранее обсуждалась Nanoboard, например, треды /stegano/ или /nanoboard/ на 2ch.hk, iichan.hk, синдикатах. Иногда там публиковались «сборки контейнеров» со свежими ссылками.
- · Использование общих файлообменников и координация через сторонние каналы (форумы, даркнет), но это уже вне рамок ПО.
- · Ручной обмен контейнерами с другими пользователями (peer‑to‑peer).
- 7. Документация (из исходников и анализа)
- · Весь исходный код на C# прилагается к релизу в папке nanodb.exe-source/.
- · Протокол упаковки: посты сериализуются в JSON, сжимаются GZip, шифруются (Salsa20) и прячутся в PNG‑изображение (стеганография в младших битах). Используется библиотека Chaos.NaCl для Ed25519 подписей.
- · Конфигурационный файл: config-3.json (можно менять порт, пути, настройки капчи).
- · Сервер предоставляет REST API: обработчики DbApiHandler, SolveCaptchaAndAddPostHandler и др.
- 8. Итоги
- Пользователь успешно развернул Nanoboard в Termux через Ubuntu+proot, сервер работает. Следующая задача — найти живые источники контейнеров либо организовать обмен вручную. Необходимо помочь найти актуальные ссылки или альтернативные способы синхронизации.
Add Comment
Please, Sign In to add comment