Blok zincir üzerinde veri depolama işleminin basit terimlerle açıklamaya çalıştım. Teknik bir makaleden ziyade blok zincir üzerinde veri depolama işlemi sırasında neler olup bittiğini kavramsallaştırmaya yardımcı olmak için daha az teknik dil kullanarak parçalar halinde ve farklı depolama tekniklerinden bazılarını açıklamaya çalıştım.
Blok Zincirde Hangi Verileri Saklıyoruz
Blok zincirlerde depolanacak birçok farklı veri türü vardır, ancak bu yazımızda NFT’lerin tokenURI’si özelinde inceleyeceğiz. TokenURI, resimin, ait olduğu koleksiyon adı, açıklaması ve NFT’yi tanımlayabilecek diğer tüm nitelikler gibi NFT’ye özgü her bir veriyi tutar. TokenURI, en yaygın olarak kullanılan bir veri düzenleme yöntemi olan json dosya tipi olarak biçimlendirilmiştir.
Örnek Json
{
“ad”: “Aslan”,
“meslek”: “mühendis”,
“yas”: 40,
“hobi”: [“kodlama”, “koşu”, “yüzme”, “balık tutma”]
}
Yukarıda yer alan örnek, verilerin bir JSON yapısında nasıl tutulduğunu göstermektedir. Daha önce Python proğramlama dili kullandı iseniz, temelde bir sözlük yapısına aşinasınızdır. Yukarıda yer alan örnek kodda farklı alanlar olduğunu görebiliriz ve her biri bir dizi (metin), tamsayı (sayı) veya liste (birden çok dizi) ile doldurulabilir. Örneğin, JSON’a “meslek” alanının ne sakladığını sorsak, bize “mühendis” diyecektir.
TokenURI
Artık JSON yapılarının temellerini anladığımıza göre, metin tabanlı bir NFT projesinden bir örnek tokenURI’ye göz atabiliriz.
{
“name”: “xxxxxxxxxxxxxx #0”,
“string”: “U2VsYW0gc2FuYSE=”,
“external_url”: “https://xxxxxxxxxxxxxx/text/?tokenID=0”,
“description”: “Herhangi bir benzersiz karakter dizisinin zincir üzerinde %100 depolanmasına izin veren metin NFT kolleksiyonudur”,
“tokenId”: “0”,
“image_data”: “https://xxxxxxxxxxxxxx/inwriting_polygon/get_svg.php?tokenID=0”
}
JSON’da “name” bölümü NFT’nin adı yeralmaktadır, “string” bölümünde yazan (U2VsYW0gc2FuYSE= #0), ibaresi aslında Base 64 ile formatlanmış bir metdir. Bu metinin ne olduğunu merak ediyorsanız bu linkde yeralan satıra kodu yapıştırarak yazıyı çözümleyebilirsiniz.”external_url” sizi projenin web sitesine götüren linktir. “description” ise bu NFT hakkında açıklamaların yer aldığı bir bölümdür. “tokenId” ise ilgini NFT’nin kimlik numarasını saklar. “image_data”, NFT’yi gösterir ve NFT’nin görüntüsüne bir bağlantı içerir.
Zincir Üzerinde Depolama
Bu makalenin konusuna dönersek, her bir alanı inceleyelim ve tokenURI’nin hangi alanlarının zincirde, hangilerinin zincir dışında depolandığını anlayalım.
Zincir Üzerinde
“name”: “xxxxxxxxxxxxxx #0”,
“string”: “U2VsYW0gc2FuYSE=”,
“description”: “Herhangi bir benzersiz karakter dizisinin zincir üzerinde %100 depolanmasına izin veren metin NFT kolleksiyonudur”,
“tokenId”: “0”
Tüm bu alanlar zincir üzerindedir, çünkü size doğrudan tokenURI’deki blok zincirinden verilirler. İstediğiniz bilgileri almak için başka bir web sitesine gitmenize gerek yoktur, hepsi sizin için zincir üzerinde yeralmaktadır.
Zincir Dışında
“external_url”: “https://xxxxxxxxxxxxxx/text/?tokenID=0”,
“image_data”: “https://xxxxxxxxxxxxxx/inwriting_polygon/get_svg.php?tokenID=0”
Bu alanlar zincir dışıdır, çünkü istediğiniz verileri almak için bir web sitesine (blok zinciri tarafından barındırılmayan) gitmeniz gerekir.
Zincir İçi ve Zincir Dışı Depolamanın Artıları ve Eksileri
Bir NFT projesinin yatırımcısı olarak, NFT’nizin değerinin zincirde saklanmasını istersiniz. Bir şey zincirde depolandığında, birinin web sitesinin bakımına güvenmek zorunda kalmadan sonsuza kadar orada olacağı anlamına gelir! Bu, NFT’nizin bir web sitesinin kapanması veya tamamen çevrimdışı olması nedeniyle tüm değerini kaybedemeyeceği anlamına gelir.
Zincir üstü depolama daha iyiyse, neden her şeyi zincirde saklamayız? İdeal bir dünyada her şey zincir üzerinde depolanır, ancak ne yazık ki zincir üzerinde veri depolama çok pahalıdır. Örneğin görüntüler doya boyutu olarak çok büyüktür ve zincirde depolamak bizlere binlerce binlerce liraya mal olur. Öte yandan metin dosya boyutu olarak çok büyük değildir ve zincir üzerinde ucuz bir şekilde saklanabilir.
TokenURI örneğine dönüp baktığımızda, neden NFT’nin görüntüsünü zincir dışında saklandı? Görüntü asıl değerli olan kısım değil midir? Çoğu durumda görüntü, bir NFT’nin değerli parçasıdır; ancak bazı NFT’le metin tabanlı bir pazarıdır; bu, NFT’lerinin değerli kısmının metnin görüntüsü değil, metnin kendisi olduğu anlamına gelir.Bu nedenle metin tabanlı NFT pazarlarında NFT’lerin değerli kısmı zincir üzerinde “string” alanında depolanır.