Label 309 · Открытый код

Экосистема Label 309

Один открытый стандарт и полный набор эталонных реализаций. Машиночитаемая спецификация, SDK для TypeScript, Python и Rust и инструмент командной строки — всё открыто: Apache-2.0 для кода, CC-BY-4.0 для спецификации. Берите готовое или пишите свою реализацию: Label 309 — это стандарт, и реализовать его волен каждый.

label-309

Стандарт

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

Эталонные SDK

Один и тот же стандарт, написанный трижды — для браузера и Node, для Python и для Rust.

TypeScript

SDK для браузера и Node.

Автономный верификатор, HTTP-клиент, не привязанный к шлюзу, и помощники для запросов. При установке SDK тянет за собой криптографические примитивы из закрытого каталога и библиотеку формата данных, на которой он стоит, так что весь стек приходит одной зависимостью.

Установка

$ npm install @cardanowall/sdk-ts

@cardanowall/sdk-ts

Python

SDK для Python.

Байт-в-байт двойник SDK для TypeScript, выверенный по тем же тестовым векторам канонического CBOR. Проверяйте записи, кодируйте формат данных и собирайте запечатанные подтверждения существования прямо из Python.

Установка

$ pip install cardanowall-sdk

cardanowall-sdk

Rust

SDK для Rust.

Байт-в-байт двойник SDK для TypeScript и Python — блокирующий и безопасный по умолчанию, для нативных приложений и сервисов. Полная документация по API опубликована на docs.rs.

Установка

$ cargo add cardanowall

cardanowall

cardanowall-cli

Командная строка

Инструмент командной строки на базе SDK для Rust: не привязан к шлюзу и работает прежде всего с сырыми сидами. Проверяйте записи, разбирайте входящие, стройте и проверяйте доказательства Merkle, подписывайте и отправляйте — прямо из терминала или пайплайна CI.

Установка

$ cargo install cardanowall-cli

Исполняемый файл: cardanowall

Не привязан к шлюзу, работает прежде всего с сырыми сидами.

Команды

  • verify
  • inbox-list
  • inbox-decrypt
  • inbox-sync
  • merkle-verify
  • merkle-build
  • sign
  • submit

label-309-gateway

Поднимите собственный шлюз

Для проверки сервер не нужен, а для публикации нужен: она помещает транзакцию в Cardano, и кто-то должен оплатить комиссию. Шлюз — это как раз та часть: полноценный бэкенд публикации, который можно развернуть у себя, — один бинарник на Rust плюс Postgres. Он держит пополненный кошелёк Cardano, который закрепляет записи (и кошелёк Arweave для запечатанных файлов), собирает и отправляет транзакцию и отдаёт записи обратно. Поднимите его для себя, для собственных приложений, или сделайте из него платный сервис для других; SDK и CLI достаточно направить на его базовый URL.

ghcr.io/cardanowall/label-309-gateway

Запуск

$ git clone https://github.com/cardanowall/label-309-gateway
cd label-309-gateway/deploy && docker compose up -d

Идентичны по построению

SDK для TypeScript, Python и Rust байт-в-байт совпадают на одних и тех же тестовых векторах канонического CBOR. Запись, закодированная одним из них, бит в бит повторяет запись от любого другого, — поэтому проверке всё равно, какая реализация её создала.

Соберите свою реализацию

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