Ana içeriğe geç

Komut biçimi

Her PiNS işlemi, kayıt operatörünün protokol adresine gönderilen korumalı bir PIVX işlemidir; burada tutar ödemeyi, memo ise imzalı komutu oluşturur. İkisi de aynı notta yolculuk eder, böylece niyet ve ödeme ayrılmaz biçimde bağlanır — eşleştirilecek ayrı bir referans ya da fatura yoktur.

Bu sayfa, tam aktarım biçimini anlatır. Buna göre kurulmuş bir komutu hem kayıt operatörü hem de sıfır bilgi devresi kabul eder.

Yapı

Tüm komutlar iki nokta üst üste ile ayrılmış ASCII'dir ve protokol işaretçisi ile sürümle başlar:

PiNS:1:{OP}:{name}:…:{ed25519_pubkey_hex}:…:{nonce}:{signature_hex}

Aradaki alanlar işleme göre değişir:

İşlemMemo yapısıÖdenen tutar
REG kaydetPiNS:1:REG:{name}:{address}:{pubkey}:{nonce}:{sig}isim uzunluğuna göre kayıt ücreti
UPD adres değiştirPiNS:1:UPD:{name}:{address}:{pubkey}:{nonce}:{sig}değişiklik ücreti
CHG sahibi devretPiNS:1:CHG:{name}:{new_pubkey}:{nonce}:{sig}değişiklik ücreti
LST satışa çıkarPiNS:1:LST:{name}:{pubkey}:{price}:{nonce}:{sig}değişiklik ücreti
ULT satıştan kaldırPiNS:1:ULT:{name}:{pubkey}:{nonce}:{sig}değişiklik ücreti
BUY satın alPiNS:1:BUY:{name}:{address}:{pubkey}:{nonce}:{sig}tam olarak ilan fiyatı

CHG için {new_pubkey}, devralan sahibin anahtarıdır; imza ise devreden sahip tarafından atılır — bir devri yetkilendiren, mevcut sahiptir.

İmzalanan mesaj

İmza, komutu sondaki :{signature} olmadan kapsar; yani işaretçiden nonce dâhil olmak üzere her şeyi:

PiNS:1:REG:richard.pivx:ps1f84lvgj…:0101…0101:1780000001

Kurallar kesindir ve bunlardan herhangi birini yanlış uygulayan bir istemci, devrenin reddettiği bir imza üretir:

  • pubkey küçük harf hex'tir, 64 karakter.
  • price yalnızca LST için bulunur.
  • address yalnızca REG, UPD ve BUY için bulunur.
  • price ve nonce ondalıktır; başında sıfır, işaret veya dolgu olmaz.
  • İmza, tam olarak bu baytlar üzerinde Ed25519'dur; hex kodlu, 128 karakter.

Doğrulama katıdır: kanonik olmayan imzalar ve küçük mertebeli anahtarlar reddedilir.

Alan kuralları

İsim

KuralDeğer
Karakterlera-z, 0-9, tire
Uzunlukbölge dâhil 1–64 karakter
Büyük/küçük harfyalnızca küçük harf — isim küçük harfle saklanır ve hash'lenir
Tirelerbaşta olmaz, sonda olmaz, asla çift olmaz
Bölgeler.pivx, .private, .secure, .safe

Etiketi bölgeden ayıran tam olarak bir noktaya izin verilir.

Hedef adres

Bir ismin çözümlendiği adres, ana ağda korumalı bir PIVX Sapling ödeme adresi olmalıdır — bech32, insan tarafından okunabilir önek ps, tam 78 karakter. Şeffaf adresler ve başka her şey reddedilir.

Uzunluk keyfî değildir. Sapling ödeme adresi 43 baytlık bir yüktür — 11 baytlık bir çeşitlendirici artı 32 baytlık pk_d — ve bech32 bunu 69 veri karakteri artı 6 karakterlik sağlama toplamı olarak kodlar; yani ps + ayırıcı + 69 + 6 = 78.

Korumalı adres istenmesinin nedeni keyfî değil pratiktir: kayıt operatörü tahsilat ve ödemelerini Sapling anahtar materyali üzerinden yapar, dolayısıyla ödeme yapamadığı bir adres ne iadeler ne de satış gelirleri için kullanılabilir.

ipucu

Yalnızca modern bech32 biçimi kabul edilir

Eski test ağı biçimi ptestsapling… (88 karakter) her iki ağda da reddedilir ve devre, kayıt operatörüyle aynı kuralı uygular. Güncel her PIVX cüzdanı ana ağda ps… biçimini üretir.

Nonce

Nonce, imzaladığınız andaki saniye cinsinden Unix zaman damgasıdır.

  • O isim için hâlihazırda kayıtlı olan nonce'tan kesin olarak büyük olmalıdır. Eski bir imzalı komutun yeniden kullanılmasını önleyen budur.
  • Kendisini taşıyan bloğun 300 saniyeden fazla önüne geçemez; bu pay, olağan saat kaymasını soğurur ama bir nonce'un çok ileri bir tarihe park edilmesine izin vermez.

İlk kayıt için güncel herhangi bir zaman damgası yeterlidir.

Fiyat

Fiyatı yalnızca LST taşır. Tam sayı satoshi cinsindendir (1 PIVX = 100.000.000 satoshi) ve sıfırdan büyük olmalıdır.

Hâlihazırda listelenmiş bir ismi yeni bir fiyatla yeniden listelemek serbesttir — başka bir LST gönderin. En sonuncusu geçerlidir.

Boyut sınırı

Bir PIVX memo'su tam olarak 512 bayttır ve komutun tamamı buraya sığmalıdır. Sabit kısımlar öngörülebilir bir yer tutar:

PiNS:1:{OP}: … marker, version, operation 11 bytes
{pubkey} 64 hex characters 65 bytes with separator
{nonce} 10 digits today 11 bytes with separator
{signature} 128 hex characters 128 bytes
{address} 78 characters 79 bytes with separator

Sapling adresi her zaman tam 78 karakterdir; bu yüzden değişken uzunluklu bir adres biçiminin aksine bütçeyi düşünmek kolaydır: isme yaklaşık 218 bayt kalır, ki bu bir ismin kullanabileceği en fazla 64 karakterin çok üzerindedir. Pratikte bir komut her zaman sığar. Yine de istemciler bütçeyi varsaymak yerine hesaplamalıdır ki ileride eklenecek bir alan memo'yu sessizce taşırmasın.

Ödeme

Geçerliliği memo kadar tutar da belirler:

  • REG, isim uzunluğuna karşılık gelen kayıt ücretini tam olarak ödemelidir.
  • UPD, CHG, LST, ULT, değişiklik ücretini tam olarak ödemelidir.
  • BUY, ilan fiyatını tam olarak ödemelidir.

Uzunluk, bölge hariç etiket üzerinden ölçülür: ab.pivx, 2 karakterlik bir isimdir.

Eksik ya da fazla ödenmiş bir komut işlenmez. İşlem ve açık anahtar okunabiliyorsa tutar iç bakiyenize yazılır ve çekilebilir — bkz. Soru & Cevap.

Sıralama

Komutlar, PIVX'in ürettiği sırayla işlenir: blok yüksekliği, sonra blok içindeki işlem indeksi, sonra girdi indeksi. Kayıt operatörü sırayı seçmez ve her bağımsız indeksleyicinin farklı bir kök hesaplamasına yol açmadan sırayı değiştiremez.

Çekişmeli işlemlerde — aynı isim için iki REG ya da aynı ilan için iki BUY — bu sıradaki ilk işlem kazanır, diğerlerine tutar iç bakiyeye iade edilir.

Adım adım örnek

richard.pivx kaydı:

1. Generate an Ed25519 keypair. The public key is your identity across all your names.

2. Build the message to sign (note: no trailing signature field):

PiNS:1:REG:richard.pivx:ps1f84lvgj0awz…:3757ee1a…a53:1780000001

3. Sign it with the private key; hex-encode the 64-byte signature.

4. Append it to form the memo:

PiNS:1:REG:richard.pivx:ps1f84lvgj0awz…:3757ee1a…a53:1780000001:cfec7a58…04

5. Send a shielded transaction to the registrar address, with that memo, paying the
registration fee for a 7-character name.

Birkaç dakika içinde komut toplu işe alınır, ispatlanır ve çıpalanır. Bundan sonra richard.pivx, kendiniz denetleyebileceğiniz bir Merkle ispatıyla birlikte herhangi bir indeksleyici üzerinden çözümlenir.