Hücreler Veri Depolama Olarak
TON'da her şey hücrelerde depolanır. Bir hücre, aşağıdakileri içeren bir veri yapısıdır:
- en fazla 1023 bit veri (bayt değil!)
- en fazla 4 referans diğer hücrelere
Bitler ve referanslar karıştırılmaz (ayrı olarak depolanır). Dairesel referanslar yasaktır: herhangi bir hücre için, bu hücrenin hiçbir alt hücresi orijinal hücreyi referans olarak alamaz.
Bu nedenle, tüm hücreler yönlendirilmiş dairesel olmayan bir graf (DAG) oluşturur. İşte bunu gösteren iyi bir resim:
Hücre Türleri
Şu anda, 5 tür hücre bulunmaktadır: sıradan ve 4 egzotik. Egzotik tipler şunlardır:
- Budanmış dal hücresi
- Kütüphane referans hücresi
- Merkle ispatı hücresi
- Merkle güncelleme hücresi
:::ipucu Egzotik hücreler hakkında daha fazlası için bkz: TVM Beyaz Kağıdı, Bölüm 3. :::
Hücre Çeşitleri
Bir hücre, sıkıştırılmış depolama için optimize edilmiş opak bir nesnedir.
Özellikle, verilerin benzersiz olması sağlanır: farklı dallara referans olan birkaç eşit alt hücre olduğunda, içerikleri yalnızca bir kez depolanır. Ancak, opaklık hücrenin doğrudan değiştirilmesine veya okunmasına izin vermediği anlamına gelir. Bu nedenle, hücrelerin 2 ek flavorı vardır:
- Kısmen oluşturulmuş hücreler için, bit dizeleri, tamsayılar, diğer hücreler ve diğer hücrelere referanslar ekleme işlemleri için hızlı işlemlerin tanımlanabileceği Builder.
- 'Parçalanmış' hücreleri temsil eden, kısmen ayrıştırılmış bir hücrenin geri kalanını veya böyle bir hücre içinde yer alan bir değeri (alt hücre) temsil eden Slice.
TVM'de kullanılan başka bir özel hücre çeşidi:
- TON Sanal Makinesi için op-kodlar (talimatlar) içeren hücreler için Continuation, bkz.
Verinin Hücrelere Serileştirilmesi
TON
'daki her nesne (mesaj, mesaj sırası, blok, bütün blok zinciri durumu, sözleşme kodu ve verileri) bir hücreye serileştirilir.
Serileştirme işlemi, bir TL-B şemasıyla tanımlanır: bu nesnenin bir Builder veya Slice içine nasıl serileştirileceğini veya bir veri türüne ait bir nesnenin nasıl Slice'dan ayrıştırılacağını tanımlayan formel bir açıklama. Hücreler için TL-B, TL veya ProtoBuf için bayt akışlarına karşılık gelir.
Hücre (de)serileştirmesi hakkında daha fazla ayrıntı öğrenmek isterseniz, Hücre ve Hücre Torbası makalesini okuyabilirsiniz.
Bundan Sonra Ne Yapmalı?
- Daha fazla bilgi için TL-B bölümüne gidin.