Label 309 · 오픈 소스
Label 309 생태계
하나의 개방형 표준과, 그것을 뒷받침하는 완전한 레퍼런스 구현 모음입니다. 기계가 읽을 수 있는 명세, TypeScript·Python·Rust SDK, 그리고 명령줄 도구를 모두 공개합니다. 코드는 Apache-2.0, 명세는 CC-BY-4.0 라이선스를 따릅니다. 그대로 사용해도 되고, 직접 구현해도 됩니다. Label 309는 표준이며, 누구나 자유롭게 구현할 수 있습니다.
label-309
표준 그 자체
완전하고 기계가 읽을 수 있는 명세 일체입니다. 문서로 작성된 표준 본문, CDDL 문법, 알고리즘 레지스트리, JSON Schema, 그리고 모든 구현이 대조 검사되는 적합성 벡터를 포함합니다.
레퍼런스 SDK
같은 표준을 세 번 구현했습니다. 브라우저와 Node용, Python용, 그리고 Rust용입니다.
TypeScript
브라우저와 Node용 SDK.
단독으로 동작하는 검증기, 게이트웨이를 가리지 않는 HTTP 클라이언트, 그리고 fetch 헬퍼를 갖추고 있습니다. SDK를 설치하면 그 토대가 되는 폐쇄형 카탈로그 암호 프리미티브와 와이어 포맷 라이브러리도 함께 들어오므로, 의존성 하나로 스택 전체를 얻을 수 있습니다.
설치
$ 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
label-309-gateway
게이트웨이 직접 운영하기
검증에는 서버가 필요 없지만, 게시에는 필요합니다. 게시는 Cardano에 트랜잭션을 올리는 일이고, 그 수수료는 누군가가 지불해야 하기 때문입니다. 게이트웨이가 바로 그 부분을 맡습니다. Rust 바이너리 하나에 Postgres를 더한, 완전하고 자체 호스팅이 가능한 게시 백엔드입니다. 레코드를 온체인에 기록하는, 자금이 마련된 Cardano 지갑(그리고 봉인된 파일을 위한 Arweave 지갑)을 보유하며, 트랜잭션을 구성해 제출하고, 레코드를 다시 제공합니다. 자신의 앱을 위해 개인용으로 운영해도 되고, 유료 서비스로 다른 사람에게 제공해도 됩니다. SDK와 CLI는 그저 베이스 URL을 게이트웨이로 향하게 하기만 하면 됩니다.
실행하기
$ git clone https://github.com/cardanowall/label-309-gateway
cd label-309-gateway/deploy && docker compose up -d설계상 동일함
TypeScript·Python·Rust SDK는 같은 정규 CBOR 테스트 벡터에 대해 바이트 단위로 일치합니다. 한 구현으로 인코딩한 레코드는 다른 구현으로 인코딩한 것과 비트 단위까지 똑같으므로, 어느 구현이 만든 레코드인지에 따라 검증이 달라지는 일은 결코 없습니다.
직접 구현하기
Label 309는 발행자에 구애받지 않고 단독으로 검증할 수 있습니다. 그 어떤 부분도 여기서 소개한 도구나 특정 벤더에 얽매이지 않습니다. 명세는 완성되어 공개되어 있으므로, 누구나 어떤 언어로든, 어떤 플랫폼을 위해서든 새로운 구현을 처음부터 작성하여 이미 제공되는 모든 것과 상호 운용할 수 있습니다. 이것은 제품이 아니라 표준입니다.