Özəl məlumat sahəsi üçün sponsor haqqı
Ödəniş sponsorluğu istifadəçilərə XOR saxlamadan şəxsi məlumat məkanı əməliyyatlarını təqdim etməyə imkan verir. İstifadəçi hələ də əməliyyatı imzalayır. Əməliyyat metadataları sponsor hesabına vurulur və icra vaxtı şəbəkə haqqı üçün sponsorun XOR balansını ödəyir.
İnteqrasiya üç hərəkətli hissədən ibarətdir:
- qovşaq ödəniş sponsorluğunu təmin edir
- sponsor hesabı mövcuddur və XOR
- Hər bir istifadəçi üçün bu sponsor üçün
CanUseFeeSponsor
Bundan sonra, hər sponsorlaşdırılmış istifadəçi əməliyyatı yalnız bu metadata ehtiyac duyur:
{
"fee_sponsor": "<SPONSOR_ACCOUNT_I105>"
}Bu səhifədə iki ümumi nümunə göstərilir:
- Pulsuz istifadəçi yazır: sponsor XOR ödəyir və istifadəçi heç bir şey ödəmir.
- Yerli token ödənişləri: istifadəçi sponsorunu bir tətbiq tokenində, sponsor isə şəbəkəni XOR ilə ödəyir.
Əvvəlcə Taira və ya özəl test şəbəkəsindən istifadə edin. Yeni özəl məlumat sahəsi operator və idarəetmə dəyişikliyidir; müştəri konfigurasiyası ilə yaradılmır.
Misal dəyərləri
Aşağıda göstərilən əmrlərdə bu yer sahibləri istifadə olunur:
export DATASPACE="team"
export USER="<USER_ACCOUNT_I105>"
export SPONSOR="<SPONSOR_ACCOUNT_I105>"
export TREASURY="<TREASURY_ACCOUNT_I105>"
export XOR_ASSET="xor#universal"
export BILLING_DOMAIN="billing.team"
export LOCAL_FEE_ASSET="usage#billing.team"
export LOCAL_FEE_ASSET_ID="<LOCAL_FEE_ASSET_DEFINITION_BASE58>"
export USER_ALIAS="alice@team"
export PHONE_POLICY="phone#team"
export EMAIL_POLICY="email#team"
export POLICY_OWNER="<IDENTIFIER_POLICY_OWNER_ACCOUNT_I105>"I105 hesabı IDs istifadə edin, əgər sizin yerləşdirməniz eyni hesablar üçün aktiv hesab adları yoxdursa.
1. Məlumat sahəsini hazırlayın.
da təsvir olunan xüsusi məlumat məkanı kataloqundan və yönümləmə işindən başlayın SORA Nexus Veri məkanlarına bağlanın. Operatorla üzləşən bir fragment belə görünür:
[[nexus.lane_catalog]]
index = 5
alias = "team-private"
description = "Private team lane"
dataspace = "team"
visibility = "private"
metadata = {}
[[nexus.dataspace_catalog]]
alias = "team"
id = 42
description = "Private team dataspace"
fault_tolerance = 1
[[nexus.routing_policy.rules]]
lane = 5
dataspace = "team"
[nexus.routing_policy.rules.matcher]
account_prefix = "team."
description = "Route team domains to the private dataspace"İstifadəçi əməliyyatlarına keçməzdən əvvəl yoxlayın ki:
- Xüsusi zolaq
/statuscavabında görünür - istifadəçi hesabları şəxsi yükləmə axını ilə qəbul edilir
- sponsor hesabı mövcuddur
- XOR ödəniş aktivinin və ödəniş yuvası hesabının şəbəkədə etibarlı olması
2. Məlumat sahəsində aktivlərin qeydiyyatına alınması
Xüsusi məlumat məkanında istifadəçilərin saxlayacaqları aktiv təriflərini tətbiq məntiqinə daxil etməzdən əvvəl qeyd edin. Yerli nömrə haqqı nümunəsi üçün dərslik usage#billing.team istifadə edir:
<asset-name>#<domain>.<dataspace>
usage#billing.teamƏvvəlcə aktiv ad sahəsinə sahib olan domen və SNS icarəsini qurun. $BILLING_DOMAIN üçün nömrəli team məlumat sahəsi ID, kanonik sahibi, icarənin müddəti və cari sitat qoruyucusu daxil olmaqla gizli olmayan AliasSetupPlanRequestV1 niyyətini yaratın:
iroha --config ./operator.client.toml \
app alias setup plan \
--intent-file ./billing-domain.intent.json \
--plan-file ./billing-domain.plan.json
iroha --config ./operator.client.toml \
app alias setup apply --plan-file ./billing-domain.plan.jsonSonra aktiv tərifini qeyd edin. Kanonik --id şəbəkə səviyyəli aktiv tərifidir ID. Təsvir edənlər və son istifadəçilər məlumat sahəsi kodunda istifadə etməlidir:
iroha --config ./operator.client.toml \
ledger asset definition register \
--id "$LOCAL_FEE_ASSET_ID" \
--name usage \
--alias "$LOCAL_FEE_ASSET" \
--scale 0İstifadəçiyə daxil olunarkən yerli tokenı mint və ya istifadəçiyə ötür:
iroha --config ./operator.client.toml \
ledger asset mint \
--definition-alias "$LOCAL_FEE_ASSET" \
--account "$USER" \
--quantity 100İstifadəçinin balansını yoxlayın:
iroha --config ./operator.client.toml \
ledger asset get \
--definition-alias "$LOCAL_FEE_ASSET" \
--account "$USER"Məlumat sahəsində tətbiq aktivləri üçün eyni nümunədən istifadə edin. Hər bir token üçün bir aktiv tərifini qeyd edin, hər birinə məlumat sahəsi alias verin və sərt kodlaşdırılmış kanonik aktiv tərifinin IDs əvəzinə SDK kodundan olan aliaya müraciət edin.
3. İstifadəçi adlarını qeyd edin.
Hesablar hələ də kanonik I105 hesabı IDs dir. İstifadəçi üzü görən adlar hesab əlifbalarıdır və əlifbalar alice@team və ya alice@members.team kimi həssas olmayan əl olmalıdır. Telefon nömrələrindən və e-poçt ünvanlarından əlifba olaraq istifadə etməyin. Bunlar növbəti hissədəki şəxsi identifikator axınına aiddirlər.
Alias quruluşu domen quruluşu ilə eyni deklarativ planlaşdırıcıdan istifadə edir. SDK və ya onboarding xidməti hesabı alias giriş hədəfləri $USER olan gizli olmayan AliasSetupPlanRequestV1 niyyətini yaratın, əsas rol seçin, rəqəmsal məlumat boşluğu ID pin edin və cari kirayə quote qoruyucusunu aparın. Sonra onu bir atom əməliyyatı kimi planlaşdırın və tətbiq edin:
iroha --config ./operator.client.toml \
app alias setup plan \
--intent-file ./user-alias.intent.json \
--plan-file ./user-alias.plan.json
iroha --config ./operator.client.toml \
app alias setup apply --plan-file ./user-alias.plan.jsonİstifadəçi XOR ödəməməlidirsə, quraşdırma əməliyyatının qurulması və təqdim edilməsi üçün təsdiq edilmiş sponsor məlumatlı onboarding xidmətindən istifadə edin.
Əksi adı bağlandıqdan sonra CLI vasitəsilə yoxlayın:
iroha --config ./operator.client.toml \
app alias resolve --alias "$USER_ALIAS"
iroha --config ./operator.client.toml \
app alias by-account \
--account-id "$USER" \
--dataspace "$DATASPACE"Yeni hesab yaratmaq üçün NewAccount sabit uaid və lazım gələrsə, ilkin label ilə quraşdırılan bir onboarding xidməti üstün tutun. Sadə ledger account register --id komandanı yalnız kanonik hesabı qeyd edir ID.
4. Telefonu və e-poçtunu FHE ünvanında gizli olaraq qeyd edin.
Telefon nömrələrindən və e-poçt ünvanlarından ictimaiyyət əlifbası deyil, şəxsi identifikator iddiaları kimi istifadə edin. FHE tərəfindən dəstəklənən axın hesab əlifbasından, əməliyyat metadatalarından və dünya vəziyyətindən xam identifikatorlar saxlayır:
- operator telefon və e-poçt üçün RAM-LFE/FHE proqram siyasətini qeydiyyatdan keçirir
- Operator
phone#teamvəemail#teamkimi aktiv identifikator siyasətlərini qeyd edir. - cüzdan telefon və ya e-poçtunu yerli olaraq normallaşdırır.
- cüzdan şifrələnmiş dəyərini həllçiyə göndərir.
- həllçi bir
IdentifierResolutionReceiptqaytarır. - istifadəçi qəbulu ilə birlikdə
ClaimIdentifiertəqdim edir. - zəncir, xam telefon və ya e-poçt dəyərini yox, qeyri-şəffaf bir identifikator və qəbulu hash saxlayır;
Operator tərəfindəki siyasət quruluşu SDK və ya xidmət vəzifəsidir. Hər bir identifikator tipli üçün bu təlimat cütlərini hazırlayın və təqdim edin:
RegisterRamLfeProgramPolicy(
program_id = "phone_team",
owner = "$POLICY_OWNER",
backend = "bfv-programmed-sha3-256-v1",
verification_mode = "signed",
commitment = "<HIDDEN_PROGRAM_POLICY_COMMITMENT>",
resolver_public_key = "<RESOLVER_PUBLIC_KEY>"
)
ActivateRamLfeProgramPolicy(program_id = "phone_team")
RegisterIdentifierPolicy(
id = "$PHONE_POLICY",
owner = "$POLICY_OWNER",
normalization = "PhoneE164",
program_id = "phone_team",
note = "Private phone registration for team dataspace"
)
ActivateIdentifierPolicy(policy_id = "$PHONE_POLICY")E-poçt üçün təkrarlayın:
program_id = "email_team"
policy_id = "$EMAIL_POLICY"
normalization = "EmailAddress"Onboarding zamanı cüzdan və ya arxa hissə yerli olaraq normallaşdırılmalıdır:
PhoneE164: "+15551234567"
EmailAddress: "alice@example.com"Sponsor metadata dosyası 8-ci addımda yaradıldıqdan sonra həmin metadata daxil olmaqla istifadəçinin imzalanmış iddia təlimatı təqdim edin:
ClaimIdentifier(
account = "$USER",
receipt = IdentifierResolutionReceipt {
payload: {
policy_id: "$PHONE_POLICY",
opaque_id: "<OPAQUE_ACCOUNT_ID>",
uaid: "<USER_UAID>",
account_id: "$USER",
...
},
attestation: "<RESOLVER_SIGNATURE_OR_PROOF>"
}
)Hələlik CLI bu kimlik təlimatları üçün tiplənmiş əmrləri açıqlamır. SDK ilə seriallaşdırılmış InstructionBox dəyərlərini yaratın və onları ledger transaction stdin vasitəsilə göndərin:
printf '["<BASE64_CLAIM_IDENTIFIER_INSTRUCTION_BOX>"]\n' |
iroha --config ./alice.client.toml \
--metadata ./sponsored-fee.json \
ledger transaction stdinBu qoruyucuları yükləmə xidmətində saxlayın:
- Hesab aliasları yalnız insan tərəfindən oxuna bilən əlimlərdir.
- xam telefon və e-poçt qiymətləri heç vaxt aliaslarda, meta məlumatlarda, qeydlərdə və ya əməliyyat payloadlarında görünmür.
- Hesabın özəl identifikatorları iddia etmədən əvvəl
uaidhesabı var - Qiymətlərin bağlanması
policy_id,opaque_id,uaid,account_idvə müddəti bitəcək. - həllçi açarları və gizli proqram öhdəlikləri idarəetmə ilə nəzarət olunur
5. Qeydiyyatda sponsorluğu təmin edin
Ödəniş sponsorluğu node / runtime siyasətidir. Nexus ödəniş konfigurasında aktivləşdirin:
[nexus.fees]
fee_asset_id = "xor#universal"
fee_sink_account_id = "<FEE_SINK_ACCOUNT_I105_OR_ALIAS>"
base_fee = "0"
per_byte_fee = "0"
per_instruction_fee = "0.001"
per_gas_unit_fee = "0.00005"
sponsorship_enabled = true
sponsor_max_fee = "0"fee_asset_id şəbəkə haqqı aktividir. SORA Nexus üçün bu, XOR dir. Şəbəkənizin açıqladığı aktiv XOR ya da kanonik XOR aktiv tərifindən istifadə edin ID .
sponsor_max_fee = "0" deməkdir ki, hər bir əməliyyat üçün sponsor həddi yoxdur. İstehsalat üçün məlumat məkanının əməliyyatlarının normal ölçüsünü və qaz profilinə sahib olduqdan sonra sıfır olmayan həddini təyin edin.
Bu təyinatı normal operator prosesi ilə yenidən başlatın və ya oynatın.
6. Sponsoru yaratmaq və maliyyələşdirmək
Lazım gələrsə, sponsor açar cütü yaratın:
kagami keys --algorithm ed25519 --jsonİctimai açarı şəbəkə üçün hesab formatına çevirin:
iroha tools address convert \
--network-prefix <CHAIN_DISCRIMINANT> \
<SPONSOR_ED25519_PUBLIC_KEY_HEX>Sponsor hesabını öz şəxsi daxilolma axınınız vasitəsilə qeyd edin:
iroha --config ./operator.client.toml \
ledger account register --id "$SPONSOR"Təsərrüfatdan və ya digər maliyyələşdirilmiş hesabdan sponsorunu XOR ilə təminatlandırın:
iroha --config ./treasury.client.toml \
ledger asset transfer \
--definition-alias "$XOR_ASSET" \
--account "$TREASURY" \
--to "$SPONSOR" \
--quantity 1000Taira təcrübələri üçün faucet köməkçisini -dən saxlayın Testnet XOR alın Taira-də taira_faucet_claim.py, sonra sponsorun maliyyə köçürülməsinin əvəzinə ictimai faucetlə maliyyələşdirilməsi:
export SPONSOR='<SPONSOR_TAIRA_I105_ACCOUNT_ID>'
export XOR_ASSET=6TEAJqbb8oEPmLncoNiMRbLEK6tw
python3 taira_faucet_claim.py "$SPONSOR"
iroha --config ./sponsor.client.toml \
ledger asset get \
--definition "$XOR_ASSET" \
--account "$SPONSOR"Sponsorun XOR balansını yoxlayın:
iroha --config ./operator.client.toml \
ledger asset get \
--definition-alias "$XOR_ASSET" \
--account "$SPONSOR"7. İstifadəçiyə Sponsoru tapmaq imkanı verin.
Sponsor hər istifadəçiyə ödəniş tələb etmək üçün icazə verməlidir. Xüsusi sponsor hesablarının adlandırılmasının qarşısını verən yardımdır.
Bunu sponsor hesabı kimi və ya iş vaxtı siyasətinə görə icazə verilən əməliyyat hesabı olaraq icra edin:
printf '{
"name": "CanUseFeeSponsor",
"payload": {
"sponsor": "%s"
}
}\n' "$SPONSOR" |
iroha --config ./sponsor.client.toml \
ledger account permission grant --id "$USER"Onboarding xidmətləri üçün bunu normal hesab təminatı addımına çevirin və qeyd edin:
- istifadəçi hesabı
- sponsor hesabı
- məlumat sahəsi və ya tətbiqi
- təsdiq biletləri və ya idarəetmə qərarı
İstifadəçinin təqaüdlərinin yoxlanması üçün:
iroha --config ./operator.client.toml \
ledger account permission list --id "$USER"8. Sponsor Metadataları əlavə edin
Yenidən istifadə edilə bilən metadata faylını yaratmaq:
printf '{
"fee_sponsor": "%s"
}\n' "$SPONSOR" > sponsored-fee.jsonBu meta məlumatlarla təqdim olunan hər hansı bir yazı sponsordan ödənilir:
iroha --config ./alice.client.toml \
--metadata ./sponsored-fee.json \
ledger transaction ping --msg "sponsored private-dataspace write"SDKs üçün imzalanan əməliyyatla eyni əməliyyat metadata obyektini əlavə edin. İstifadəçi əməliyyatı istifadəçinin açarı ilə imzalayır. Sponsor hər bir istifadəçi əməliyyatını imzalamır, çünki əvvəlki CanUseFeeSponsor təminat icazədir.
Şəkil 1: İstifadəçilər pul ödəmirlər
Tətbiq və ya operator bütün şəbəkə ödənişlərini əhatə etdikdə bu istifadə edin.
İnşaatçıların yoxlama siyahısı:
- İstifadəçinin normal əməliyyat yükünü dəyişmədən saxlayın.
fee_sponsorilə əməliyyatın metadatalarını əlavə edin.- İstifadəçi kimi imza atın.
- Xüsusi məlumat məkanı yolu ilə göndərin.
İstifadəçi hesabı XOR balansına ehtiyac duymur. Sponsor hesabı konfigüratsiya edilmiş Nexus ödənişlərini ödəmək üçün kifayət qədər XOR saxlamalıdır.
Şəkil 2: İstifadəçilər yerli simvol ödəyirlər
İstifadəçilərin XOR saxlamaması lazım olduğu zaman bunu istifadə edin, lakin məlumat sahəsi hələ də daxili tətbiq haqqı, kredit xərcləri və ya kvot tokenini istəyir.
Bu modeldə yerli token tətbiq ödənişidir. Şəbəkə haqqı aktiv deyil. Sponsor hələ də şəbəkə haqını ödəyir XOR.
Məsələn, özəl məlumat məkanında yerli bir token istifadə edin:
usage#billing.teamusage#billing.team ilə fond istifadəçiləri onboarding, abunə yeniləməsi və ya kvotanın ayrılması zamanı. Sonra istifadəçi əməliyyat atom:
- yerli tokenları istifadəçidən sponsoruna köçürmək
- tələb olunan tətbiq əməliyyatını yerinə yetirmək
fee_sponsormetadata daxildir ki, sponsor XOR ödəsin.
Minimal CLI duman testi yalnız XOR tərəfindən sponsorlaşdırılan yerli nömrə köçürülməsi:
iroha --config ./alice.client.toml \
--metadata ./sponsored-fee.json \
ledger asset transfer \
--definition-alias "$LOCAL_FEE_ASSET" \
--account "$USER" \
--to "$SPONSOR" \
--quantity 1Real bir tətbiq üçün yerli token ödənişini ayrı ən yaxşı səy əməliyyatı kimi təqdim etməyin. Həm ödənişi, həm də iş təlimatını ehtiva edən imzalanmış bir əməliyyat qurun və ya iş əməliyyatını tətbiq etməzdən əvvəl yerli token toplayan müqavilə giriş nöqtəsini açıqlayın .
Tətbiqinizdə və ya müqavilənizdə dönüşüm siyasəti saxlayın:
- hansı əməliyyat nə qədər yerli token vahidləri xərcləyir
- XOR top-up sponsorluğu üçün yerli token axın xəritələrinin necə aparılması
- istifadəçi balansı çox aşağı olduqda nə olur?
- sponsor XOR balansının çox aşağı olduğu zaman nə olur?
WARNING
İstifadə etməyin gas_asset_id Bu qaz aktivində sponsorun da ödəniş edilməsini istəmirsinizsə, "lokal token haqqı" modelinə görə. fee_sponsor Həmçinin sponsor qaz boru kəmərindəki aktivlərin məbləği üçün ödəyicisi hesab olunur. Yerli token istifadəçi ödənişləri üçün, transfer və ya müqavilə qaydaları ilə token açıq şəkildə toplayın.
İstifadə edilməmiş əməliyyatları düzəltmək
Ümumilikdə rədd edilmə səbəbləri ümumiyyətlə bir quraşdırma mərhələsinin çatışmadığını göstərir:
| Xəta mətni | Nəyi yoxlamaq lazımdır? |
|---|---|
fee sponsorship is disabled | nexus.fees.sponsorship_enabled hələ də false dənədədir. |
fee sponsor is not authorized | İstifadəçinin bu sponsor üçün CanUseFeeSponsor pulu yoxdur. |
fee asset ... is missing | Sponsor XOR ödəniş aktivinə sahib deyil. |
fee balance ... is insufficient | Sponsorun pulunu toplayın. XOR bərabərlik. |
fee exceeds sponsor_max_fee | sponsor_max_fee artırmaq və ya əməliyyatın ölçüsünü / qazını azaltmaq. |
invalid nexus fee asset id | nexus.fees.fee_asset_id və ya XOR aktivləri. |
Debugging model 2, hər iki balansları yoxlayın:
iroha --config ./operator.client.toml \
ledger asset get \
--definition-alias "$XOR_ASSET" \
--account "$SPONSOR"
iroha --config ./operator.client.toml \
ledger asset get \
--definition-alias "$LOCAL_FEE_ASSET" \
--account "$USER"Sponsoru idarə edin
Sponsoru xəzinə hesabı kimi qəbul edin:
- testnet, stajlaşdırma və əsas şəbəkə üçün ayrı-ayrı sponsor açarlarını saxlamaq
- sponsorun XOR balansının qəbul mərtəbəsinə çatmasından əvvəl xəbərdarlıq
- Trafik xarakterizə edildikdən sonra sıfırdan kənar
sponsor_max_feehəddini təyin edin - Rate-limit sponsorlaşdırılmış yazılar tətbiq və ya girişdə
- istifadəçilər məlumat sahəsindən çıxarkən
CanUseFeeSponsorləğv edilir. - istifadəçi əməliyyatlarının hashlərini, yerli token ödənişlərini və sponsor XOR debitlərini uyğunlaşdırmaq;
İstifadəçi üçün sponsorluğu ləğv etmək:
printf '{
"name": "CanUseFeeSponsor",
"payload": {
"sponsor": "%s"
}
}\n' "$SPONSOR" |
iroha --config ./sponsor.client.toml \
ledger account permission revoke --id "$USER"Əlaqəli səhifələr
- SORA Nexus Database ilə əlaqə saxlayın.
- Iroha 3 vasitəsilə CLI istifadə etmək
- Əmlaklar
- İzinlər
- İzin Tokeni