Özet
V0 işlemleri, 32 baytlık anahtarlar yerine 1 baytlık indeksler aracılığıyla hesaplara referans vermeyi sağlayan Adres Arama Tablolarını (ALT'ler) ekler. Bu, ALT ile çözümlenen her hesap için 31 bayt tasarruf sağlar.
Solana iki işlem formatını destekler: eski ve sürümlü (v0).
Validator, mesajın ilk baytını inceleyerek formatı belirler:
- İlk bayt
sürüm öneki
bitini içeriyorsa, bu bir sürümlü mesajdır. Şu anda yalnızca sürüm 0
desteklenmektedir. Sonraki 3 bayt
MessageHeader'dir. - Aksi takdirde, bu bir eski mesajdır. İlk bayt
num_required_signatures'dir ve sonraki 2 bayt başlığı tamamlar.
V0 işlemleri ne zaman kullanılmalı
İşleminiz birçok hesaba referans veriyorsa ve 1.232 baytlık paket sınırına yaklaşıyorsa V0 kullanın. İşleminiz tüm hesaplar satır içi olarak boyut sınırına sığıyorsa, eski işlemler daha basittir ve daha geniş araç desteğine sahiptir. Adres Arama Tablolarını kullanmak için V0 gereklidir.
V0 mesaj formatı
Bir v0 mesajı, eski mesajla aynı alanlara sahiptir ve talimatlardan sonra
eklenen ek bir address_table_lookups dizisi içerir:
| Alan | Boyut | Açıklama |
|---|---|---|
0x80 | 1 bayt | Sürüm öneki baytı |
header | 3 bayt | MessageHeader (eski ile aynı) |
static_account_keys | compact-u16 + N x 32 bayt | İşlemde doğrudan görünen anahtarlar |
recent_blockhash | 32 bayt | Blockhash |
instructions | compact-u16 + değişken | Eski ile aynı format |
address_table_lookups | compact-u16 + değişken | ALT referansları (aşağıya bakın) |
Her adres tablosu arama girişi şunları içerir:
| Alan | Boyut | Açıklama |
|---|---|---|
account_key | 32 bayt | ALT hesabının genel anahtarı |
writable_indexes | compact-u16 + N x 1 bayt | Yazılabilir hesaplar için ALT içindeki indeksler |
readonly_indexes | compact-u16 + N x 1 bayt | Salt okunur hesaplar için ALT içindeki indeksler |
Adres arama tablosu çözümlemesi
ALT, 256'ya kadar açık anahtar saklayan zincir üstü bir hesaptır. Bir ALT referans alınarak, bir işlem 32-baytlık açık anahtarlar yerine 1-baytlık indeksler kullanarak ek hesapları dahil edebilir ve böylece hesap başına yükü önemli ölçüde azaltır.
Çalışma zamanında, yürütme başlamadan önce, validator tüm ALT referanslarını tam genel anahtarlara çözümler. Çözümlenen adresler, tam hesap anahtarları listesini oluşturmak için statik hesap anahtarlarına eklenir. ALT ile çözümlenen hesaplar, statik hesaplarla aynı sıralamayı takip eder: yazılabilir aramalar, salt okunur aramalardan önce gelir.
Adres arama tabloları yalnızca hesapların hat üzerindeki işlemde nasıl referans alındığını etkiler. Yürütme zamanında, çalışma zamanı tüm indeksleri tam hesap adreslerine çözümler. ALT ile çözümlenen hesaplar yalnızca yazılabilir veya salt okunur (imzalayıcı olmayan) olabilir; imzalayıcı olamazlar.
Is this page helpful?