• Русский
  • Как работает On-chain Storage

    Что такое On-chain Storage

    On-chain Storage хранит файл прямо внутри вашей персональной канистры. Внешнего storage-сервиса для байтов нет: канистра хранит сам файл, запись о нём и правила доступа.

    Этот режим проще по модели доверия, но дороже. Каждый сохранённый байт живёт в памяти канистры и оплачивается циклами, поэтому On-chain Storage лучше подходит для небольших, ценных файлов.

    Компромисс

    Вы убираете внешний слой хранения. В обмен стоимость выше, а баланс циклов становится частью обычной работы с хранилищем.

    Где находится файл

    Архитектура On-chain Storage

    Путь On-chain Storage короче:

    • браузер подготавливает и загружает файл прямо в канистру;
    • персональная канистра хранит файл, доверенную запись и состояние доступа;
    • внешнего gateway-сервиса и внешнего объектного хранилища в пути файла нет.

    Как работает загрузка

    Перед загрузкой канистра проверяет, что файл можно безопасно принять: у вас есть право записи, заявленный размер подходит для хранилища, а баланса циклов достаточно для операции.

    Подготовить файл в браузере

    Браузер шифрует файл локально и делит его на части, чтобы загрузка не требовала одного большого запроса.

    Передать части в канистру

    Канистра принимает части файла по одной и следит, что загрузка остаётся в границах разрешённого размера и доступных циклов.

    Сохранить файл и доверенную запись

    После передачи всех частей канистра сохраняет файл и фиксирует данные, которые браузер использует для будущей проверки.

    Если циклов не хватает

    В On-chain Storage баланс циклов быстро становится практическим ограничением: файл хранится внутри канистры, и запись байтов тоже оплачивается циклами. Если во время загрузки безопасного запаса не хватает, возможны два сценария.

    • Активный Pro включён: Rabbithole может запросить автопополнение циклов. Интерфейс показывает Waiting for cycles..., а загрузка ждёт пополнения.
    • Активного Pro нет: владелец должен пополнить канистру вручную. После пополнения совместимая повторная попытка может продолжить загрузку.

    Это не ошибка владения и не потеря файла. Канистра просто не начинает работу, которую не сможет безопасно завершить.

    Как работает скачивание

    Запросить части файла у канистры

    Браузер запрашивает у канистры данные файла. Внешнего gateway-сервиса в пути файла нет.

    Проверить и открыть локально

    Браузер проверяет целостность и расшифровывает файл на вашем устройстве.

    Почему это дороже

    On-chain Storage дороже, потому что каждый сохранённый байт живёт внутри памяти канистры и влияет на её операционный баланс.

    • Сеть поддерживает хранение байтов во времени.
    • Stable memory и вычисления оплачиваются циклами канистры.
    • Большие файлы требуют большего безопасного минимума циклов (safe floor) и могут чаще запускать проверки финансирования.

    Практические ограничения

    On-chain Storage разумен, когда:

    • файлы относительно небольшие;
    • файлов немного;
    • простота архитектуры важнее, чем экономия;
    • вы готовы следить за балансом циклов или поддерживать активный Pro.

    Для больших медиабиблиотек и дешёвого массового хранения этот режим обычно не подходит.

    Почему модель доверия проще

    При On-chain Storage нет внешнего файлового gateway-сервиса и внешнего объектного хранилища, которые держат файл. Поэтому путь хранения проще:

    • браузер подготавливает файл;
    • канистра хранит файл;
    • браузер проверяет его и открывает.

    Технические детали

    Сессия загрузки

    On-chain Storage не записывает большой файл сразу в финальное состояние. Загрузка проходит через сессию: канистра сначала создаёт временную запись, резервирует заявленный размер, принимает части файла и только затем переносит данные в финальную версию файла.

    Если циклов не хватает, сессия остаётся в ожидании пополнения. Совместимая повторная попытка может продолжить существующую сессию, поэтому загрузка не обязана начинаться с нуля. Если продолжить нельзя, клиент пытается завершить сессию через отмену и освободить временные ресурсы.

    Читать дальше

    Связанные страницы

    Официальные материалы