Skip to content
GUIDE-0009RehberYürürlüktesürüm 1.0.13 Ekim 2026

Uyum testleri ​

Bu rehber, Tamga'ya bağlanan bir yazılımı (doğrulayıcı, cüzdan, belge verme servisi ya da başka bir dilde yazılmış kütüphane) geliştirenler içindir.

Ne zaman okunur:

  • Kendi kodunuzun Tamga kurallarına göre doğru cevap verdiğini göstermek istediğinizde.
  • Katılım başvurusundan önce: liste ve defter aşamalarında hafif uygunluk uygulanır; açık uyum vektörlerini geçmek katılımın teknik şartıdır (Tamga ARF — Trust Framework §2.4).

Nasıl çalışır? ​

Uyum (conformance)Bir uygulamanın kurallara uyduğunun, yayınlanan test vektörlerini ve denetimleri geçerek gösterilmesi. testi iki parçadır:

ParçaNeNerede
Test vektörleriDondurulmuş girdi + beklenen çıktı (JSON)conformance/vectors/
KoşucuVektörleri okuyup @tamga-network/* ile çalıştıran ve beklentiyle karşılaştıran test takımıconformance/runner/

Vektörler aynı zamanda iki uygulamanın aynı cevabı verdiğinin kanıtıdır: bugünkü imzalı liste ile ileride açılacak ortak defter (ortak defter (ledger)Güven kayıtlarının birden çok bağımsız işletmeci tarafından birlikte tutulduğu kayıt (izinli bir blockchain). Tamga onu en az iki bağımsız işletmeci katıldığında ekler; o güne kadar işi imzalı güven listeleri görür.) aynı sorulara aynı cevabı vermek zorundadır; vektörler o soruların dondurulmuş hâlidir (ADR-0009 K7).

1. Vektörler ​

conformance/vectors/
├── VERSION              vektör seti sürümü (değişiklik = sürüm artışı)
├── trust/basic.json     imzalı liste seti (LOTL, ülke listesi, çapa günlüğü, kökler) + sorgu → beklenen cevap
└── sd-jwt/diploma-basic.json   verilmiş bir diploma, sunumu, kök sertifika + doğrulama beklentileri

trust/basic.json güven sorularını sınar. Her vaka bir sorgu ve beklenen üç değerli cevaptır:

json
{
  "name": "issuer ACTIVE, iat geçerlilik içinde",
  "q": { "op": "isCredentialAcceptable", "issuer_id": "0x8d10…3b64", "iat": 1790812800 },
  "expect": "YES"
}

Sınanan sorgular: isCredentialAcceptable, isCredentialSchemaAcceptable, isRecognizedBy, schemaContentHash, isWalletProviderKey. Liste setinin yüklenme raporu da (healthy, liste sürümü) beklentiyle karşılaştırılır.

sd-jwt/diploma-basic.json bir sunumun doğrulanmasını sınar: hangi alanların açıldığı, hangilerinin gizli kaldığı, issuer_id ve geçilen adımlar (SPEC-API-0001 A1–A6). Olumsuz durumlar da vardır ve her biri reddedilmelidir:

Olumsuz durumBeklenen
KB-JWT yokRed — belge sahibine bağlılık kanıtı zorunlu
Yanlış nonceRed — yeniden oynatma
iat penceresi dışında (+301 s)Red — zaman penceresi
Sunulmayan bir disclosure eklenmişRed — eşleşmeyen digest

Her vektör sabit bir now alanı taşır; zamana bağlı adımlar her makinede aynı sonucu verir.

2. Koşucuyu çalıştırmak ​

sh
git clone https://github.com/tamga-network/tamga-network && cd tamga-network
npm install
npm run conformance        # vektörleri üretir ve bütün testleri koşar

Yalnız koşmak için npm test yeterlidir (koşucu otomatik dahildir). Vektörleri yeniden üretmek npm run conformance:gen ile olur; deterministik alanlar sabit now ile üretildiği için çıktı yalnız imzalarda değişir.

3. Kendi kütüphanenizi sınamak ​

TypeScript kodu kanoniktir; başka dillerdeki uygulamalar (Java, Python, Go…) aynı vektörlerle doğrulanır (ARCH-0005 P9).

  1. vectors/ klasörünü olduğu gibi alın; VERSION değerini kaydedin.
  2. trust/basic.json: input alanındaki listeleri kendi kodunuzla yükleyin, kökleri input.root_fingerprints ile sabitleyin, now anında her cases[].q sorgusunu çalıştırın, sonucu expect ile karşılaştırın.
  3. sd-jwt/diploma-basic.json: presentation değerini aud, nonce ve root_cert_pem ile doğrulayın; sonuç expect ile aynı olmalı. negative[] vakalarının her biri reddedilmelidir.
  4. Bir vakada UNKNOWN beklenirken siz NO dönüyorsanız uyumsuzsunuz: "doğrulanamadı" ile "geçersiz" aynı şey değildir (SPEC-API-0001 AP2).

4. Katılımda istenen kanıt ​

Uyumu kendi yazılımınızla gösterirsiniz; sonuç raporu kayıt başvurusuna eklenir ve kayıt kurumu gerektiğinde testleri yeniden çalıştırır (Tamga ARF — Trust Framework §4.3).

RolNe test edilirNasıl gösterilir
Belge verenTür tanımına uygun belge, imza ve sertifika zinciri, iptal listesi yayını, cüzdan kanıtlarının denetimiVektörlerle deneme belgesi + sonuç raporu
Doğrulayıcıİmzalı istek, doğrulama adımları, bayat listede "doğrulanamadı", kapsam dışı alan istememeVektörler + taahhüt testleri + sonuç raporu
Cüzdan sağlayıcısıCüzdan kuralları (anahtar koruma, onay ekranı, geçmiş, silme), cüzdan ve anahtar kanıtı, gösterme protokolüVektörler + taahhüt testleri + cihaz üzerinde gösterim

Taahhüt testleri en az şunları içerir: bayat liste "doğrulanamadı" sonucunu verir; bilinmeyen biçim sürümünde işlem durur; imza hatasında işlem durur. Raporda yazılımınızın sürümünü ve geçtiğiniz vektör setinin sürümünü (VERSION) belirtin.

Vektörler tek tek kuralları sınar; bütün akışı (belge alma, gösterme, iptal ve askı) gerçek bir telefonla test ağında deneyin (GUIDE-0013).

Kurallar ​

KodNe der
Vektörlerde kişisel veri yokAdlar sahtedir; özel anahtar yoktur (yalnız sertifika ve belge sahibinin açık anahtarı)
SürümVektör değişikliği = VERSION artışı
ADR-0009 K7Liste ve defter uygulamaları aynı vektörleri geçmeden geçiş tamamlanmış sayılmaz
SPEC-API-0001 AP2INDETERMINATE, REJECTED ile aynı kovaya konmaz