Ö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
Bir ALT, 256'ya kadar genel anahtar depolayan zincir üstü bir hesaptır. Bir ALT'ye referans vererek, bir işlem 32 baytlık genel anahtarlar yerine 1 baytlık indeksler kullanarak ek hesaplar içerebilir ve böylece hesap başına ek 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?