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

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

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

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

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