Skip to content

Bu səhifə avtomatik tərcümə olunub. Səhv görsəniz, info@tamga.network ünvanına yazın.

ADR-0015Memarlıq qərarıQəbul edilibversiya 1.0.02 oktyabr 2026

Kontekst ​

İş infrastrukturunun qurulmasında (2026-09-27) məqsəd bu idi: müştərilər beta-ya və ya zəncirə birbaşa deyil, ortaq şəxsiyyət/etibar interfeysinə qoşulur. Tamga-da bu interfeys artıq mövcuddur: TrustSource (ADR-0009 K3, BT4) — Faza B-də imzalı etibar siyahıları (trust list)Bir ölkənin kök sertifikatlarının, sənədi verən qurumlarının və qeydiyyatlı yoxlayan tərəflərinin imzalanmış siyahısı. Bu gün Tamga-da etibar bu siyahılara əsaslanır; ortaq jurnal (ledger) sonra gələcək. (ListTrustSource), Faza 0-da zəncir (ChainTrustSource). Beta verilənlər bazası deyil, imzalı siyahı fayllarıdır; müştərilər (rəqəmsal cüzdan) verilənlər bazasına ümumiyyətlə qoşulmur, servislərlə standart protokollar (OpenID4VCI (OpenID for Verifiable Credential Issuance)Sənədi verən qurumun rəqəmsal sənədi rəqəmsal cüzdana çatdırmaq üçün istifadə etdiyi protokol./VP) vasitəsilə əlaqə qurur.

Araşdırma zamanı aşkar edilən yeganə kənarlaşma rəqəmsal cüzdan tərəfindədir. @tamga-network/trust node:fs, jose və zod-a əsaslandığı üçün Expo/React Native-də istifadə olunmur; S-13-ün bağlanması zamanı eyni yoxlama wallet-core-a ayrıca yazıldı. Hazırda siyahını interfeysdən kənarda şərh edən yerlər:

FaylNə edir
packages/wallet-core/src/trustlist.tslotl.jws + tl-<cc>.jws imza yoxlaması, next_update, geri sarma (ayrıca reallaşdırma)
packages/wallet-core/src/directory.tsissuers[] xam sahələrini (issuer_url, schema_authorizations, category) oxuyub qurum kataloqu yaradır
packages/wallet-core/src/oid4vp.ts (fetchRpRecord)relying_parties[]-dən RP qeydini seçir

Servislər (apps/verify, apps/issuer (operator anbarı), apps/id) interfeys üzərindən keçir (faylı oxuyub loadTrustSet-ə ötürür).

Risk: iki yoxlama reallaşdırması zamanla bir-birindən ayrılır (məs. TL12 yoxlama nöqtəsi, yeni sahələr); Faza 0-da rəqəmsal cüzdan zəncir mənbəyinə keçə bilmir, çünki siyahı formatına bağlıdır.

Qərar ​

  1. K1 — Daşına bilən nüvə. @tamga-network/trust yoxlama məntiqi (JWS yoxlaması, siyahı qaydaları, TrustStore, TrustSource sorğuları) node:fs/jose/zod tələb etməyən alt yola ayrılır: @tamga-network/trust/core (imza @noble/curves, sxem yoxlaması əl ilə və ya yüngül vasitə ilə). Node ilə uyğun mövcud giriş nöqtəsi (fs.ts, guardedReload) əsas yolda qalır.
  2. K2 — Müştəri mənbəyi. wallet-core trustlist.ts/directory.ts/fetchRpRecord əvəzinə trust/core-dan bir HttpListTrustSource (HTTP ilə yükləyən, daxili pin ilə yoxlayan) istifadə edir; qurum kataloqu və RP (Relying Party)Yoxlayan tərəf üçün qısaltma: rəqəmsal sənədləri tələb edən və yoxlayan təşkilat. qeydi TrustSource sorğularından (issuers(), relyingParty()) gəlir.
  3. K3 — Faza 0, eyni interfeys. ChainTrustSource servislərdə birbaşa; rəqəmsal cüzdanda isə birbaşa RPC əvəzinə eyni interfeysin arxasında (siyahı güzgüsü və ya yüngül indeksləyici) — rəqəmsal cüzdanın kodu dəyişmir.

Əsaslandırma / alternativlər ​

  • Mövcud vəziyyəti saxlamaq: ən az iş tələb edir, lakin BT4-ün ruhuna ziddir və Faza 0 keçidində rəqəmsal cüzdanı ayrıca yenidən işləməyi tələb edir.
  • Rəqəmsal cüzdana node polyfill-ləri: jose/zod RN-də qismən işləyir, lakin node:fs və paket ölçüsü problem yaradır; kövrək həlldir.
  • Ayrıca "identity servisi" (server tərəfində etibar proxy-si): rəqəmsal cüzdanın hər etibar sualını Tamga serverinə ünvanlaması izlənilmə imkanı yaradır (hansı qurumu nə vaxt soruşduğu) — məxfilik prinsipinə ziddir; rədd edilir.

Dəyişməzlər ​

#Dəyişməz qayda
TS1Hər müştəri və servis etibar sualını yalnız TrustSource interfeysi vasitəsilə verir; siyahı/zəncir formatı interfeysdən kənarda şərh edilmir (BT4-ün müştərilərə şamil edilməsi).
TS2Siyahı yoxlama qaydaları yalnız bir reallaşdırmada saxlanılır (trust/core); başqa paket onların surətini saxlamır.
TS3Müştəri etibar sualı üçün Tamga-ya istifadəçi ilə əlaqələndirilə bilən sorğu göndərmir; siyahılar toplu şəkildə yüklənir.

Keçid planı ​

  1. trust/core alt yolunu ayır; mövcud trust testləri + conformance/ vektorları hər iki giriş nöqtəsində uğurla keçsin.
  2. HttpListTrustSource + daxili pin; wallet-core testlərini (trustlist.test.ts 7 test) yeni mənbəyə köçür.
  3. directory.ts və fetchRpRecord-u TrustSource sorğularına keçir; köhnə trustlist.ts-u sil.
  4. Metro iOS paket sınağı (ölçü, @noble/* uyğunluğu); cihaz testi.
  5. Faza 0: ChainTrustSource ilə eyni müqavilə testləri.

Status ​

Accepted — 2026-09-27. DECISIONS: D-TRUST-1.

Tətbiq: yuxarıdakı keçid planı.