4.3 KiB
AGENTS.md — SHiNE test channels
Эта папка — тестовый генератор реальной пользовательской активности SHiNE. Это не часть консенсуса и не отдельный протокол.
Назначение
Один тестовый пользователь публикует заранее подготовленные POST-блоки сразу в несколько своих каналов. Все POST должны идти через обычный SHiNE AddBlock, поэтому сервер проверяет их как обычные пользовательские блоки и затем использует штатную Arweave-публикацию.
Почему publisher один
У всех каналов одного пользователя одна глобальная blockchain-цепочка (blockNumber + prevHash). Нельзя запускать независимый publisher на каждый канал: они могут одновременно построить следующий глобальный блок. publisher_multi.py сериализует публикации всех каналов, но хранит отдельные prevLineNumber/prevLineHash и позиции очередей.
Каналы в примере
jokes— короткие анекдоты; часть постов содержит 1–2 изображения.mindfulness— короткие практики осознанности.positive— позитивные и мотивирующие напоминания.friends— советы об общении и дружбе, в духе классических принципов человеческого общения, без выдачи текста за дословные цитаты.wisdom— короткие духовные/созерцательные мысли. Не придумывать цитаты и не приписывать человеку слова без источника.
Изображения
prepare/prepare_all_channels.py проходит все channels[].queue_file.
Для каждого локального файла:
- вычисляет SHA-256;
- смотрит общий
upload-state.json; - если ID уже известен — проверяет
https://gateway/<id>; - если файл существует — повторно НЕ загружает;
- если отсутствует/ID неизвестен — загружает через Arweave JWK;
- пишет
.prepared.json, добавляя постоянные Arweave URL в текст POST и сохраняяimages[]как служебные метаданные.
JWK используется только подготовщиком. Не помещать приватный JWK или blockchain key в git/архив.
State
multi-state.json содержит один global head и отдельное состояние каждого канала. Pending DataItem записывается до AddBlock; при неопределённом состоянии глобальной цепочки publisher обязан остановиться, а не строить форк.
Не менять
- SHiNE Frame v1 и его SHA-256.
prevHashглобальной цепочки.prevLineNumber/prevLineHashканальной линии.- ANS-104 signing/deepHash без сверки с серверной реализацией.
App=test5590иc=<canonical channel>без согласованного изменения импортера/Viewer.
Viewer
Viewer распознаёт Arweave URL в тексте POST и показывает изображения inline. Экран «Проверка данных» независимо считает SHA-256 Frame, проверяет доступные prevHash и prevLineHash, показывает отсутствие соседнего блока как «нет данных», а доказанное несовпадение — как ошибку. Подпись ANS-104 нельзя помечать локально проверенной, если gateway не предоставил сырую подпись DataItem.