IPFS-in çatışmazlığı
Mərkəzləşdirilməmiş məlumat saxlama məsələsinə gəldikdə, IPFS (InterPlanetary File System) atlanıla bilməyən bir layihədir.
Ən diqqət çəkən mərkəzləşdirilməmiş saxlama layihələrindən biri kimi, IPFS Merkle DAG (İdarə Olunan Aksiyatik Qraf) məlumat strukturu istifadə edir, bu isə Merkle Ağacına əsaslanan bir dəyişiklikdir. Bu məlumat strukturu ilə IPFS məzmun ünvanlamasını və faylların hissə-hissə yüklənməsini həyata keçirir.
Xüsusilə, IPFS hər bir fayla unikal hash dəyəri təyin edir, bu, bir faylın barmaq izinə bənzəyir. Hər bir kök faylı bir neçə node faylını göstərir və bir node faylının məzmunu dəyişdiyində, hash dəyəri müvafiq olaraq dəyişir, bu da kök faylın hash-ının da dəyişməsinə səbəb olur.
Bu şəkildə IPFS faylları ünvanlara əsaslanan deyil, unikal məzmun-əsaslı (content-based) ünvanlama ilə saxlayır və tapır. Yəni bir faylı axtarırsınızsa, onun harada olduğunu bilməyə ehtiyac yoxdur — sadəcə onun nəyi ehtiva etdiyini bilmək kifayətdir. IPFS hər bir fayl üçün unikal bir hash yaradır və istifadəçi bu faylı geri çağırmaq istəyəndə, IPFS-dən həmin hash-ə malik olanın kim olduğunu soruşmaqla geri çağırışı tamamlayır. Hash-lar təkrar saxlanmanı əngəllədiyi üçün, eyni məzmuna malik fayllar IPFS tərəfindən təkrarlanaraq saxlanılmır. Bu yanaşma yaddaşı optimallaşdırır və şəbəkə performansını yaxşılaşdırır.

Məzmun-ünvanlama mexanizmi IPFS-in böyük üstünlüyüdür, amma hər sikkənin iki üzü var: bu, həm də bir çatışmazlıq gətirir. IPFS-də fayl saxlandıqdan sonra sistemdə onu dəyişdirmək mümkün deyil, çünki faylın məzmununun dəyişməsi fayl hash-in dəyişməsinə səbəb olur və istifadəçi orijinal hash dəyərinə görə dəyişdirilmiş faylı tapa bilmir. Bu, geniş şəkildə tənqid edilən bir problem nöqtəsidir: IPFS vaxtaşırı yenilənməli və dəyişdirilməli olan faylların saxlanmasında yaxşı deyil.
IPFS statik faylları saxlamaqda yaxşı işləsə də, mutabilite (dəyişkənlik), versiya nəzarəti, giriş nəzarəti və proqramlaşdırıla bilən məntiq kimi daha inkişaf etmiş “verilənlər bazası” tipli imkanlar üçün hesablama və vəziyyət idarəetməsi qabiliyyətinə malik deyil; bu isə tərtibatçıların tam funksional mərkəzləşdirilməmiş tətbiqlər qurmasına imkan vermək üçün lazımdır. Buna görə dinamik məlumatı səmərəli və mərkəzləşdirilməmiş şəkildə saxlamaq üçün təcili ehtiyac var — Ceramic bunu tərtibatçılar üçün strukturlaşdırılmış və dəyişkən məzmunu saxlamaq imkanı verən NoSQL-ə bənzər bir verilənlər bazası ilə həll edir.
Dəyişkən məzmun üçün qurulub
Ceramic-in saxlama dizaynı IPFS-ə əsaslanır və onu mərkəzləşdirilməmiş dinamik saxlama qatını əlavə etməklə genişləndirir.
Ceramic üzərində hər bir məlumat parçası commit-lərin (dəyişikliklərin) yalnız əlavə edilən logu kimi — “Stream” kimi təqdim olunur; aşağıdakı şəkildə boz kvadratların birləşməsi kimi göstərilir. Stream anlayış baxımından Git tree-lərinə bənzəyir: ilkin vəziyyət (Genesis Commit) və sonrakı hər bir dəyişiklik (Commit) IPLD-də (InterPlanetary Linked Data — IPFS-in məlumat strukturları üçün ayrılmış qatı) saxlanılır və bu qeydlər birlikdə Stream-i formalaşdırır. Stream-lər nəticə vəziyyətinin “snapshot”larını deyil, “dəyişiklikləri” qeyd etdiyi üçün, log-un ən son vəziyyətini əldə etmək üçün Stream üzərindəki bütün hadisələri emal etmək kifayətdir.

Məsələn, Ceramic-in qeyd modeli belədir: əvvəlcə Alice və Bob-un hər birində $10 var; ikinci gün Alice $5-i Bob-a köçürür; üçüncü gün Bob $3-ü Alice-ə köçürür. Bu da, nəticədə istifadəçinin balansını əldə etmək üçün bütün aralıq proseslərin hesablanmalı olduğu blockchain dəftərinə çox bənzəyir — deftər hər istifadəçinin balansını birbaşa bildirmir.
Müqayisə üçün, IPFS-in ənənəvi qeyd modeli belədir: a faylında Alice və Bob-un hər birində $10 var; b faylında Alice-də $5 və Bob-da $15 var; c faylında isə Alice-də $8 və Bob-da $12 var. Burada hər qeyd nəticə vəziyyətinin snapshot-u (momentşəkli) kimi çıxış edir və dəyişiklik baş verən kimi yeni snapshot yaratmaq lazımdır.
Ceramic bu dizaynla təmin edir ki, hər log-un unikal Stream ID-si olsun: qlobal vahid adlandırma və məzmun dəyişiklikləri səbəbilə ad dəyişiklikləri olmur. Hər yazma istifadəçi səlahiyyəti tələb edir və bütün proses blockchain dəftərxanası yazışmasına bənzəyir — sadəcə yazılan transaction (əməliyyat) məlumatı deyil, istifadəçi hesabı məlumatı kimi digər dəyişkən məzmunlardır.
Məlumatın komponə olunması (Data composability)
Ceramic əsasən yeni bir abstraksiya — “data models” (məlumat modelləri) — istifadəsi ilə tətbiqlərarası məlumatın komponə olunmasına nail olur.
Məlumat modelləri adətən istifadəçi profili, sosial qraf və ya bloq kimi tək bir məntiqi tətbiq xüsusiyyətini təsvir edir. Məsələn, təsəvvür edin ki, hər bir mərkəzləşdirilməmiş Twitter tətbiqi bir neçə ortaq məlumat modelində işləyəcək: hər istifadəçinin tvitləri üçün biri, onların sosial qrafı üçün biri, DM-ləri üçün biri və s. Eyni əsas məlumat modellərini qəbul etməklə tətbiqlər eyni məlumat üzərində təbii şəkildə qarşılıqlı işləyə bilir.
Bir baxımdan, Ceramic-in data model standartlarından istifadə etməsini aktiv (asset) dəftərləri üçün token standartlarından istifadə ilə müqayisə etmək olar. Məsələn, Ethereum-da ERC20 fungible token və ERC721 non-fungible token standartlarının tətbiqi bütün token ekosistemlərinin və maliyyə tətbiqlərinin yaranmasına səbəb oldu və onlar təbii şəkildə qarşılıqlı işləyir. Ceramic bu konsepti məlumat sahəsinə gətirir.
Ceramic bu data modellərin yaradılmasında icma-əsaslı (community-driven) yanaşma tətbiq edir; bu da hər bir tərtibatçının öz modellərini ekosistemdəki digər tərtibatçılarla asanlıqla müəyyənləşdirməsinə, paylaşmasına və yenidən istifadə etməsinə imkan verir. İcma tərəfindən daha çox məlumat modeli yaradıldıqca, komponə edilə bilən data ilə qurulan tətbiqlərin miqdarında və müxtəlifliyində davamlı artımı görəcəksiniz.
Bu cür komponə olunma tərtibatçı təcrübəsini də yaxşılaşdırır. Ceramic üzərində tətbiq qurmaq data modelləri bazarını gözdən keçirmək, onları tətbiqinizə qoşmaq və bu modellərdə saxlanılan bütün şəbəkə məlumatlarına avtomatik çıxış əldə etmək kimi görünür. Ceramic-dən istifadə edərkən tərtibatçılar tətbiqlərini özlərinin təcrid olunmuş istifadəçi və məlumat “silosları” ilə ilkin yükləmə (bootstrapping) barədə narahat olmaya bilər. Tərtibatçılar arasında innovasiyanın sürətlə təkrarlanaraq (compounding) artım tempi dramatik şəkildə sürətlənəcək.
Miqyaslana bilmə (Scalablility)
Ceramic miqyaslana bilməyə (scalability) şarded (seqmentləşdirilmiş) icra mühitindən istifadə etməklə nail olur. Ceramic-dəki bütün stream-lər vəziyyətlərini müstəqil saxlayır və şəbəkə node-ları stream əməliyyatlarını paralel icra edir. Bu yanaşma, əksər blockchain-lərdən fərqli olaraq, Ceramic-in Twitter və ya Facebook kimi sosial tətbiqlərin mərkəzləşdirilməmiş versiyaları üçün tələb olunan miqyaslana bilmə səviyyəsi ilə işləməsinə imkan verir.
Bütün node-lar arasında paylaşılan tək bir qlobal virtual icra mühiti və tək bir dəftərin vəziyyətinin olduğu ənənəvi blockchain sistemlərindən fərqli olaraq, hər bir Ceramic node stream-lər üzərində hesablama aparmaq və transaction-ları (əməliyyatları) doğrulamaq üçün ayrıca icra mühiti kimi çıxış edir — qlobal dəftər yoxdur. Bu “built-in” icra seqmentləşdirilməsi (execution sharding) Ceramic Network-un şəbəkədə node-ların sayı artdıqca eyni anda edilən getdikcə çox stream əməliyyatlarının emalını paralelləşdirmək üçün üfüqi şəkildə (horizontal) miqyaslanmasına şərait yaradır. Belə dizayn dünyanın datasının həcmini idarə etmək üçün lazımdır; bu data maliyyə blockchain-ində tələb olunan həcmdən bir neçə sıra böyükdür. Bu dizaynın əlavə üstünlüyü ondan ibarətdir ki, Ceramic node offline-first mühitdə stream transaction-larını icra edə bilər və sonra yenidən şəbəkəyə qoşulduqda qalan hissə ilə yenilənmələri (updates) sinxronlaşdıra bilər.
DID həlli
Ceramic həmçinin “IDX” adlı çevik və möhkəm bir identifikasiya (kimlik) həlli təqdim edir — tam funksional ilk mərkəzləşdirilməmiş identifikasiya (DID) həlli.
IDX açıq tətbiqlər üçün mərkəzləşdirilməmiş identifikasiya və qarşılıqlı işlənə bilən istifadəçi verilənlərindən ibarət cross-chain identifikasiya protokoludur. Bu, istifadəçilərə bütün məlumatlarını təşkil edən vahid rəqəmsal kimlik qurmağa imkan verir; eyni zamanda tərtibatçılara siloları (məlumat təcridlərini) parçalamağa və tətbiqlər arasında istifadəçi məlumatını sərbəst paylaşmağa şərait yaradır. Aşağıdakı şəkildə göründüyü kimi, bu, strukturlaşdırılmış məlumatın mərkəzləşdirilməmiş identifikator (DID) ilə assosiasiya olunmasına imkan verən mərkəzləşdirilməmiş indeks təqdim edir; məlumat isə təriflərlə müəyyən edilir və qeydlərdə (records) saxlanılır.

Bundan əlavə, IDX hər hansı bir datastore (məsələn Ceramic, Textile, OrbitDB, IPFS, Sia, Arweave, blockchain registrləri və hətta mərkəzləşdirilmiş verilənlər bazaları) ilə istifadə oluna bilər və istənilən növ Web3 wallet-dən autentifikasiyanı dəstəkləyir.
IDX istifadəçi profillərini, daşına bilən (portable) sosial qrafı, nüfuz (reputation) skorlarını, yoxlana bilən iddiaları, istifadəçi tərəfindən yaradılan məzmunu, tətbiq məlumatlarını, ayarları, domen adlarını, blockchain ünvanlarını və sosial Web2 hesablarını istifadəçi ilə mərkəzləşdirilməmiş şəkildə əlaqələndirmək üçün əladır.
Nəticə
Yekun olaraq, Ceramic-in yaranması Web3-ün qurulmasını xeyli gücləndirib və Web3 tərtibatçıları üçün yeni funksiyalar açıb. Hansısa dövlətə məxsus olmayan blockchain (Ethereum, BSC, Polygon, Avalanche və s.) üzərində işləyən tərtibatçı olmasından asılı olmayaraq, onlar tətbiqlərini daha yaxşı etmək üçün məlumat-əsaslı funksiyalar üzrə Ceramic-dən eyni vaxtda istifadə edə bilərlər. Üstəlik, Ceramic-in çevik DID-əsaslı hesab sistemi sayəsində Ceramic, mövcud böyük blockchain-lərin hesab və açar (key) sistemləri ilə təbii şəkildə inteqrasiya edir və bu da istifadəçilərə böyük rahatlıq təmin edir.
Ceramic üzərində artıq hazırlanmış bir çox DID və Web3 sosial platform layihələrinin olmasını görmək xoşdur. Onlardan bir neçəsini qeyd etmək olar: CyberConnect — sosial qraf middleware platformu; Orbis — Web3 Twitter platformu; və The Convo Space — ani mesajlaşma platformu və s. Ceramic-in məlumat şəbəkəsi infrastrukturunun Web3 tətbiq qatına gətirə biləcəyi yeni imkanları səbirsizliklə gözləyirik.
Məxfi məlumat: Bu tədqiqat yalnız məlumat məqsədlidir. Heç bir investisiya məsləhəti və ya hər hansı investisiyanı almaq/satmaq barədə tövsiyə kimi çıxış etmir və investisiya qərarı verməyin məqsədəuyğunluğunu qiymətləndirmək üçün istifadə olunmamalıdır.
🐦 @chestersigned
📅 8 May 2022
Keçidlər:
https://developers.ceramic.network/learn/welcome/
https://blog.ceramic.network/what-is-ceramic/
https://multicoin.capital/2022/02/16/the-composable-web3-data-network/
https://blog.ipfs.io/2021-07-13-ceramic-mainnet-launch/