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-sdkcardanowall-sdk
Rust
SDK для Rust.
Байт-в-байт двойник SDK для TypeScript и Python — блокирующий и безопасный по умолчанию, для нативных приложений и сервисов. Полная документация по API опубликована на docs.rs.
Установка
$ cargo add cardanowallcardanowall
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 не зависит от издателя и проверяется автономно: ничто в нём не привязано к этим инструментам или к какому-то одному вендору. Спецификация полна и открыта, так что любой может написать свою реализацию — на любом языке, под любую платформу — и она будет совместима со всем, что уже вышло. Это стандарт, а не продукт.