Label 309 · オープンソース
Label 309のエコシステム
1つのオープン標準と、それを支える一通りのリファレンス実装。機械可読な仕様、TypeScript・Python・RustのSDK、そしてコマンドラインツールを、すべてオープンに公開しています。コードはApache-2.0、仕様はCC-BY-4.0。そのまま使うのも、独自に実装するのも自由です。Label 309は標準であり、誰でも好きなように実装できます。
label-309
標準そのもの
完全で機械可読な仕様一式です。文章で書かれた標準本文、CDDL文法、アルゴリズムレジストリ、JSON Schema、そしてすべての実装が照らし合わされる適合性テストベクターを含みます。
リファレンスSDK
同じ標準を、3通りに実装しました。ブラウザとNode向け、Python向け、そしてRust向けです。
TypeScript
ブラウザとNode向けのSDK。
単体で完結する検証ツール、ゲートウェイを選ばないHTTPクライアント、そしてfetch用のヘルパーがそろっています。SDKを入れれば、その土台となるクローズドカタログの暗号プリミティブとワイヤーフォーマットのライブラリも一緒に入るので、依存関係1つでスタックがまるごと手に入ります。
インストール
$ npm install @cardanowall/sdk-ts@cardanowall/sdk-ts
より低レベルの部品
Python
Python向けのSDK。
TypeScript SDKとバイト単位までそっくりに作られた双子の実装で、同じ正規CBORテストベクターで照合しています。Pythonからレコードを検証し、ワイヤーフォーマットをエンコードし、封じた存在証明を組み立てられます。
インストール
$ pip install cardanowall-sdkcardanowall-sdk
Rust
Rust向けのSDK。
TypeScriptとPythonのSDKとバイト単位までそろえた双子の実装です。ブロッキングで動き、最初から安全側に倒した設計で、ネイティブのアプリやサービスに向いています。詳しいAPIドキュメントはdocs.rsで公開しています。
インストール
$ cargo add cardanowallcardanowall
cardanowall-cli
コマンドライン
Rust SDKを土台にした、ゲートウェイを選ばず、生のシードをそのまま扱えるコマンドラインツールです。レコードの検証、受信箱の操作、Merkle証明の構築と確認、署名、送信を、ターミナルやCIパイプラインから直接こなせます。
インストール
$ cargo install cardanowall-cliバイナリ: cardanowall
ゲートウェイを選ばず、生シードをそのまま扱う。
コマンド
- verify
- inbox-list
- inbox-decrypt
- inbox-sync
- merkle-verify
- merkle-build
- sign
- submit
設計からして、完全に同じ
TypeScript・Python・RustのSDKは、同じ正規CBORテストベクターに対してバイト単位で一致します。ある実装でエンコードしたレコードは、ほかの実装でエンコードしたものとビット単位までそっくり同じ。だから、どの実装で作ったレコードかで検証結果が変わることはありません。
自分で作る
Label 309は発行者に依存せず、単体で検証できます。そのどちらも、ここで挙げたツールにも、特定のベンダーにも縛られません。仕様は完成していて公開されているので、誰でも、どんな言語でも、どんなプラットフォーム向けでも、ゼロから新しい実装を書き、すでにあるものすべてと問題なくつなげられます。これは製品ではなく、標準です。