IPFS: выпуск библиотеки от Markdown до архива
Завершим курс досье публикации учебной библиотеки. Оно связывает исходный Markdown, готовые файлы, манифест, корни, хранителей и текущую рекомендацию. Такой документ можно передать другому разработчику, чтобы он продолжил реализацию без смешения содержимого, места хранения и прав читателя.
Все тридцать уроков остаются локальными текстами. Клиенты, узлы, архиваторы и проверки не запускались; зависимости не устанавливались; реестр, DNS и поставщики не изменялись. Досье описывает ожидаемые результаты и явно незавершённые вычисления.
Подготовка содержания
Курс 17 получает редакцию edition-1. Исходники Markdown архивируются с достаточным профилем генератора и шаблонов. Готовый каталог включает страницы, локальные стили и необходимые ресурсы. Внешние зависимости перечисляются отдельно.
Пути должны работать в выбранной форме выдачи. Для переносимого первого набора используются относительные связи и настоящие статические HTML. Личный кабинет и оплата остаются на основном сайте, не превращаясь в неизменную часть архива.
Из каталога исключаются секреты, личные данные и служебные журналы. Открытый выпуск может распространяться дальше, поэтому состав проверяется до публикации. Скрытое имя или удалённая кнопка не являются гарантией закрытости файла.
Точные обязательства
Манифест описывает состав с явной схемой, путями и контрольными значениями. Его сохранённые байты становятся основанием SHA-256. Именно это 32-байтовое значение выбирает приложение для CourseCatalog.contentHash; базовый контракт алгоритм не навязывает.
CID манифеста хранится отдельно. Корень каталога тоже является самостоятельным значением, зависящим от структуры UnixFS и профиля импорта. Нельзя обрезать CID до bytes32 и назвать его файловым отпечатком.
исходники → готовые файлы → манифест
├─ SHA-256 точных байтов → реестр
└─ CID представления → получение
каталог + профиль импорта ───── ROOT_CID
Схема обозначает разные преобразования. Пока они не выполнены, поля содержат явные метки, а не вымышленные строки. Будущий отчёт дополнит досье действительными значениями и основаниями сверки.
Клиент и хранение
Для JavaScript исследован профиль API Helia 7. Создание возвращает остановленный объект, а старт и завершение задаются явно. Постоянный blockstore и необходимый datastore выбираются отдельно от сетевого обмена. Установка пакетов и lockfile остаются непроведёнными стадиями.
Локальный импорт не гарантирует распространение. Закрепление сообщает удержание нужного набора в выбранной реализации. Полнота требует необходимых зависимостей, а доступность читателю — работающего маршрута получения. Одно слово uploaded не описывает эти три результата.
Библиотека задаёт независимые копии и собственный переносимый архив. Каждый хранитель имеет стадийный статус, свежесть и договорный срок. Два URL одной инфраструктуры не считаются автоматически двумя независимыми резервами.
Получение и проверка
Обычный шлюз выдаёт HTTP-файл в привычной модели. CID в адресе не заставляет браузер автоматически проверить весь DAG. Доверенное приложение может сверить манифест по объявленному SHA-256 либо получить блоковый trustless-ответ и проверить структуру.
Начальный корень и код проверяющего клиента должны иметь понятное происхождение. Проверка произвольной пары «чужой корень — чужие байты» не устанавливает редакцию библиотеки. После целостности проверяются схема, пути и допустимость содержимого.
Активный HTML требует origin-изоляции. Path-шлюз с разными корнями может сохранять общий origin, а поддоменная выдача выражает отдельные контексты по спецификации. Правильные байты не получают административные полномочия автоматически.
Имена и обновления
IPNS предоставляет подписанный изменяемый указатель, а DNSLink — указатель через DNS-управление. Оба помогают найти текущую редакцию, но не создают её блоки. Секрет имени и аккаунт DNS имеют отдельные процедуры защиты и восстановления.
Новое объявление проводится после достаточного хранения. Реестр и имена могут обновляться не одновременно; журнал отражает переходные состояния. Клиент сообщает расхождения, а не выключает проверку ради удобства.
Откат меняет рекомендацию, не уничтожая распространявшиеся копии. Старые точные ссылки сохраняют идентичность. Исправление безопасности публикуется ясно для затронутых редакций, а архивная политика учитывает доступность прежних объектов.
Доступ и приватность
Право читателя хранится в сервисной модели. Принятая оплата может разрешать выдачу файла или ключа. Уже полученный открытый текст можно копировать, поэтому будущий отзыв не обещает физического удаления с устройств.
Если содержание закрыто, шифрование выполняется до добавления, а ключ выдаётся по отдельному разрешённому маршруту. Публичный контейнер не содержит секрет. Метаданные запросов, размеры и связи остаются отдельным предметом оценки.
IPFS не делает чтение анонимным автоматически. Выбранные шлюзы и маршрутизаторы получают определённые сведения. Библиотека ограничивает внешние запросы и журналы по необходимому назначению, не обещая универсального скрытия.
Передача выпуска между ролями
Представим завершение подготовки второй редакции. Автор передаёт редактору Markdown и описанное изменение учебного результата. Редактор формирует определённый набор готовых файлов; оператор импорта применяет согласованный профиль; хранители принимают нужные блоки; издатель объявляет манифест; оператор имени переключает рекомендацию. Даже когда один человек выполняет все эти действия, досье разделяет роли и результаты. Это делает отказ конкретной стадии понятным следующему участнику.
Для каждой передачи нужен определённый объект. Между автором и генератором — исходные файлы и конфигурация. Между генератором и импортёром — точные готовые байты с описью. Между импортёром и хранителем — корни и блоковый набор либо полноценный архив. Между хранением и объявлением — подтверждённые сведения о требуемых копиях, а не обещание создать их позднее. Между издателем и клиентом — доверенный контекст реестра и алгоритм обязательства.
В этой последовательности нельзя подменять незавершённый результат меткой, похожей на настоящий CID или transaction hash. Подготовленные поля остаются явно незаполненными до отдельного исполнения. Текущий итог серии — полный письменный договор, примеры форматов и ожидаемые разборы. Ни одна установка, импорт, криптографическая операция, публикация записи или проверка архива в рамках написания не состоялась. Такая запись ограничений помогает следующему исполнителю начать с правильной стадии, а не искать отсутствующие журналы успешного запуска.
После будущей лаборатории досье можно дополнить фактическими значениями, наблюдениями и оставшимися ограничениями. Успешное получение одного файла не автоматически подтверждает все обещания проекта: полнота архива, независимость копий, актуальность указателя и безопасность активного контента имеют свои критерии. Полезный финальный отчёт связывает каждый вывод с конкретным результатом. Тогда библиотека получает расширяемый маршрут публикации, в котором смена инструмента или хранителя не вынуждает менять смысл старого выпуска и привычные URL основного сайта.
Архив и восстановление
CAR сохраняет блоки и корни по открытому формату. Полнота выбранного выпуска проверяется отдельно от наличия заголовка. Файловая SHA-256 архива относится к контейнеру, а не к манифесту или корню.
Восстановление получает независимую копию, проверяет формат, импортирует блоки, обеспечивает удержание и восстанавливает объявленные файлы. Только после достаточного основания переключаются операционные маршруты. Смена поставщика не меняет идентичность содержания.
Базовые первичные материалы — CID, Helia, шлюзы и CAR. Итог курса — целостный публикационный договор. Его можно реализовать позже локально и дополнить фактическими наблюдениями, сохранив сегодняшнюю честную границу: тексты и процедура готовы, исполнения и деплоя нет.