Все записи

9 мин чтения

Что такое шлюз Label 309?

Шлюз Label 309 — это сервис публикации, который рассчитывает стоимость, загружает данные, отправляет и подтверждает транзакции и индексирует записи Proof of Existence через стандартный API, тогда как ваши ключи остаются на устройстве, а подтверждения проверяются по публичным данным.

Шлюз Label 309 — это сервис, который публикует записи Proof of Existence в Cardano. Он берёт на себя всю операционную работу: расчёт стоимости, загрузки, отправку транзакций, отслеживание подтверждений, индексирование записей, балансы, API-ключи и вебхуки — чтобы клиенту не приходилось делать это самому. Клиент готовит подтверждение и хранит приватные ключи локально, а шлюз помещает запись в сеть.

Label 309 — это открытый, нейтральный к вендору стандарт для закрепления хеша содержимого в Cardano под меткой метаданных 309. Шлюз — это та часть, которая занимается публикацией. Это не приватный бэкенд, доступный лишь одной компании, а определённый сервисный слой, который любой продукт может запустить у себя или с которым может интегрироваться, причём референсная реализация имеет открытый исходный код. CardanoWall ведёт собственный коммерческий продукт ровно через эти же интерфейсы — без отдельного пути, зарезервированного для себя.

Зачем публикации вообще нужен шлюз?

Проверка не требует усилий. Публикация — это операционная работа.

Чтобы проверить подтверждение, вы обычно начинаете со ссылки на транзакцию Cardano, получаете запись из публичного обозревателя блокчейна и самостоятельно пересчитываете хеши или подписи. Никакой особый сервис не требуется — в этой независимости и состоит весь смысл стандарта. (Полный путь описан в статье как проверить запись Label 309.)

У публикации гораздо больше движущихся частей:

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

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

Что шлюз делает на самом деле?

Шлюз владеет конвейером публикации и стоящим за ним состоянием денег, блокчейна и хранилища. На практике он умеет:

  • рассчитывать стоимость подтверждения до публикации (цена держится недолго, около 15 минут);
  • принимать зашифрованные загрузки и загрузки публичного содержимого, возвращая контентно-адресуемые URI;
  • принимать подготовленную запись подтверждения;
  • собирать и отправлять транзакцию Cardano с точным размером комиссии;
  • отслеживать подтверждение, включая обработку реорганизаций блокчейна;
  • автоматически возвращать оплату, когда публикация окончательно не удаётся;
  • индексировать каждую запись Label 309 в сети в общий публичный поток;
  • управлять предоплаченными балансами счетов и применять тарификацию;
  • выпускать API-ключи и токены счетов;
  • отправлять вебхуки о событиях жизненного цикла.

Это и делает его движком публикации за веб-приложением CardanoWall, настольным приложением, инструментом командной строки, интеграциями на базе SDK, процессами CI/CD и сторонними продуктами.

Чего шлюз сознательно не делает?

Шлюз не является корнем доверия.

Ему никогда не нужен ваш Identity Seed. Ему никогда не нужны приватные ключи получателей. Он не расшифровывает запечатанные файлы. И он никогда не остаётся единственным местом, где можно проверить подтверждение. Эти свойства заложены намеренно: именно то, что они вынесены за пределы шлюза, и позволяет подтверждению быть самодостаточным.

Корректное подтверждение Label 309 опирается на публичные данные, а не на слово шлюза:

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

Если шлюз сообщает, что подтверждение существует, верификатор всё равно может удостовериться в этом по блокчейну — без какого-либо участия шлюза. О том, что оператор шлюза может и не может наблюдать, читайте в статье что видит CardanoWall.

Что такое плоскость данных?

Плоскость данных — это пользовательский API. К нему обращается клиент, когда действует от имени пользователя или счёта: веб-приложение, настольное приложение, CLI, SDK или скрипт автоматизации, запрашивающий расчёт стоимости, загрузку, публикацию, чтение баланса или список записей. Она находится по пути /api/v1/*.

Концептуальный поток короток:

  1. Запросите расчёт стоимости.
  2. Загрузите содержимое или шифротекст, если речь идёт о файлах.
  3. Опубликуйте подтверждение.
  4. Отслеживайте статус.
  5. Читайте записи и балансы.

Это тот же путь, который использует референсный продукт. Если поток работает для CardanoWall, он доступен через публичную плоскость данных любому.

Что такое плоскость управления?

Плоскость управления предназначена для операторов и продуктовых бэкендов и находится по пути /control/v1/*.

Если компания строит собственный продукт на шлюзе, её бэкенду нужно создавать счета, начислять кредиты для биллинга, выпускать краткосрочные токены счетов, задавать маржу по каждому счёту, создавать API-ключи и выполнять задачи уровня оператора. Это работа плоскости управления, и она должна происходить из доверенного бэкенда — никогда из кода в браузере или мобильного клиента.

Именно плоскость управления позволяет шлюзу обслуживать более одного продукта. Другая команда может развернуть поверх собственный вендорский слой: свои учётные записи пользователей, биллинг, интерфейс, поддержку и продуктовую логику, тогда как шлюз внизу занимается базовым конвейером публикации. Границей между ними служит HTTP API и поток вебхуков — а не база данных шлюза, которая остаётся приватной для движка.

Что означает «нет приватной двери»?

Это означает, что референсный продукт публикует через те же интерфейсы, что доступны всем остальным. Нет секретного, более быстрого или привилегированного пути, зарезервированного для CardanoWall.

Это важно для доверия. Если бы проект заявлял, что его стандарт открыт, но публиковал через скрытые внутренние механизмы, экосистема осталась бы зависимой от одного этого вендора. Модель шлюза устраняет такую зависимость: CardanoWall может быть первым отточенным продуктом, а другие команды строят собственные инструменты, сервисы, дашборды, настольные клиенты и отраслевые процессы на том же самом пути стандарта. Если вы строите на нём, см. как строить на шлюзе Label 309.

Может ли компания запустить собственный шлюз?

Да. Ядро шлюза имеет открытый исходный код — это единый бинарный файл на Rust плюс PostgreSQL — и компания может запустить его сама: финансировать собственные кошельки Cardano и Arweave, создавать собственные счета и API-ключи и публиковать записи Label 309, не завися от CardanoWall как хостингового оператора.

Самостоятельный хостинг имеет смысл при:

  • высокообъёмной публикации;
  • строгих политиках в отношении вендоров;
  • регулируемых или изолированных средах;
  • внутренних процессах комплаенса;
  • системах юридических доказательств;
  • инфраструктуре установления происхождения для ИИ;
  • конвейерах подтверждений в CI/CD;
  • наличии у команды собственной облачной и блокчейн-инфраструктуры.

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

Когда стоит использовать хостинговый шлюз CardanoWall?

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

Хостинговый сервис берёт на себя финансирование, тарификацию, отправку, подтверждения, хранение и управление счетами. Это подходит индивидуальным пользователям, небольшим командам, ранним интеграциям и компаниям, которые хотят быстро начать. Вы по-прежнему получаете стандартные записи, по-прежнему можете проверять их по публичным данным и по-прежнему можете позже перейти на собственные инструменты или собственный шлюз. Хостинг не означает привязки к вендору.

А когда лучше размещать у себя?

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

  • вы публикуете в большом объёме;
  • вам нужны собственные политики комиссий и финансирования;
  • ваша организация не может полагаться на сторонний хостинговый сервис;
  • ваши записи относятся к внутреннему регулируемому процессу;
  • вашему продукту нужна собственная модель биллинга;
  • вы хотите предлагать публикацию Label 309 под собственным брендом;
  • вы хотите напрямую управлять API-ключами, счетами и вебхуками.

Самостоятельный хостинг — это больше работы. Вы запускаете шлюз, финансируете кошельки, следите за провайдерами, управляете секретами, обслуживаете базу данных, выполняете обновления и поддерживаете работоспособность сервиса. Отдача — независимость.

Как сюда вписывается тарификация?

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

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

Если вы хотите избежать маржи хостингового посредника, ответ не в бесплатной публикации — затраты на блокчейн и хранение реальны в любом случае. Ответ в том, чтобы запустить шлюз, финансировать его напрямую и взять операционную работу на себя.

Как настольное приложение связано со шлюзом?

CardanoWall Desktop — настольное приложение с открытым исходным кодом на базе Rust SDK — это клиент шлюза, а не оператор блокчейна.

Оно хранит идентичности локально, синхронизирует и пробно расшифровывает запечатанные записи на вашей собственной машине, кеширует данные для офлайн-доступа, готовит и подписывает записи, шифрует файлы и проверяет подтверждения — всё локально. Это явно не кошелёк: оно не хранит ADA и само не собирает и не отправляет транзакции Cardano. Для всего, что касается блокчейна или хранилища, оно обращается к шлюзу и оставляет конвейер публикации за ним.

Шлюз вы выбираете сами:

  • хостинговый шлюз CardanoWall;
  • собственный шлюз вашей компании;
  • любой сторонний шлюз;
  • локальный шлюз или шлюз для разработки.

Настольное приложение отвечает за локальную работу, а шлюз — за публикацию. Подробнее о приложении в статье CardanoWall Desktop.

О чём стоит помнить разработчикам?

Стройте на границе стандарта — HTTP-плоскостях и вебхуках, — а не на внутренностях шлюза.

Несколько правил помогут выстроить интеграцию правильно:

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

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

Если коротко

Шлюз Label 309 — это слой публикации. Он рассчитывает стоимость, загружает, публикует, подтверждает, индексирует и отдаёт записи. Его может размещать CardanoWall, может самостоятельно размещать компания, или его можно встроить в другой продукт.

Он не является корнем доверия и не хранит ваши приватные ключи. Он публикует стандартные записи, которые любой может проверить по публичным данным Cardano, — а это ровно то, что и сохраняет стандарт открытым.

Что почитать дальше

gatewaylabel-309developers