Defectul IPFS

Când vine vorba de stocarea descentralizată a datelor, sistemul de fișiere InterPlanetary, cunoscut sub numele de IPFS, este un proiect care nu poate fi ocolit.

Fiind unul dintre cele mai notabile proiecte de stocare descentralizată, IPFS utilizează structura de date a Merkle DAG (Graficul aciclic direcționat), o modificare bazată pe Merkle Tree. Cu această structură de date, IPFS implementează adresarea conținutului și descărcarea fragmentelor de fișiere.

Mai exact vorbind, IPFS atribuie o valoare hash unică fiecărui fișier, similar cu amprenta unui fișier. Fiecare fișier rădăcină indică mai multe fișiere nod și, odată ce conținutul unui fișier nod se modifică, valoarea hash se modifică în consecință, determinând modificarea și hash-ul fișierului rădăcină.

În acest fel, IPFS stochează și găsește fișiere într-o adresare unică bazată pe conținut și nu într-o adresare bazată pe adresă. Aceasta înseamnă că, dacă căutați un fișier, nu trebuie să știți unde este, ci doar ce conține. IPFS generează un hash unic pentru fiecare fișier, iar atunci când utilizatorul trebuie să recupereze acest fișier, trebuie doar să întrebe IPFS cine are acest hash să finalizeze recuperarea. Deoarece hashurile împiedică stocarea duplicată, fișierele cu același conținut nu sunt duplicate de IPFS. Această abordare optimizează stocarea și îmbunătățește performanța rețelei.

Mecanismul de adresare a conținutului este un avantaj major al IPFS, dar fiecare monedă are două fețe, aduce și un dezavantaj. În IPFS, odată ce un fișier este stocat, acesta nu poate fi modificat în sistem, deoarece modificarea conținutului fișierului modifică hash-ul fișierului și utilizatorul nu poate găsi fișierul modificat după valoarea hash originală. Acesta este un punct critic criticat pe scară largă: IPFS nu este bun la stocarea fișierelor care trebuie actualizate și modificate din când în când.

Deși IPFS funcționează bine pentru stocarea fișierelor statice, nu are capacitatea de calcul și de gestionare a stării pentru caracteristici mai avansate asemănătoare bazelor de date, cum ar fi mutabilitatea, controlul versiunilor, controlul accesului și logica programabilă, care sunt necesare pentru a le permite dezvoltatorilor să creeze funcții descentralizate complete. aplicatii. Prin urmare, este nevoie urgentă de o soluție eficientă și descentralizată pentru stocarea datelor dinamice — Ceramic rezolvă această problemă cu o bază de date asemănătoare NoSQL, pentru ca dezvoltatorii să stocheze conținut structurat și mutabil.

Creat pentru conținut mutabil

Designul de stocare al Ceramic se bazează pe IPFS și îl extinde cu un strat de stocare dinamică descentralizat.

Pe Ceramic, fiecare informație este reprezentată ca un jurnal de comitere numai pentru anexare, numit „Stream”, care este afișat ca o combinație de pătrate gri în figura de mai jos. Fluxul este similar ca concept cu arborii Git: starea inițială (Genesis Commit) și fiecare modificare ulterioară (Commit) sunt toate stocate în IPLD (InterPlanetary Linked Data, stratul IPFS dedicat structurilor de date), iar aceste înregistrări sunt combinate pentru a forma un Curent. Deoarece fluxurile înregistrează „modificări” mai degrabă decât „instantanee” ale stării rezultate, este necesar doar să procesăm toate evenimentele din flux pentru a obține cea mai recentă stare a jurnalului.

De exemplu, modelul de înregistrare al Ceramic este următorul: inițial, Alice și Bob au fiecare 10 USD; în a doua zi, Alice îi transferă 5 dolari lui Bob; în a treia zi, Bob transferă 3 dolari lui Alice. Acesta este, de asemenea, foarte asemănător cu un registru blockchain, în care registrul nu indică soldul fiecărui utilizator și toate procesele intermediare trebuie calculate pentru a obține soldul final al utilizatorului.

Comparativ, modelul tradițional de înregistrare al IPFS este: în fișierul a, Alice și Bob au fiecare 10 USD; în fișierul b, Alice are $5 și Bob are $15; iar în fișierul c, Alice are $8 și Bob are $12. Aici, fiecare înregistrare este un instantaneu al stării rezultate, iar un nou instantaneu trebuie să fie generat de îndată ce există o modificare.

Ceramica asigură prin acest design că fiecare jurnal are un ID unic de flux, cu o denumire uniformă globală și nicio schimbare a numelui din cauza modificărilor de conținut. Fiecare scriere necesită autorizarea utilizatorului, iar întregul proces este similar cu evidența blockchain, cu excepția faptului că ceea ce este scris nu sunt date de tranzacție, ci alte conținuturi modificabile, cum ar fi informațiile despre contul de utilizator.

Compozabilitate datelor

Ceramic realizează compozibilitatea datelor cu aplicații încrucișate în primul rând prin utilizarea unei noi abstractizări, numite modele de date.

Modelele de date reprezintă de obicei o singură caracteristică logică a aplicației, cum ar fi un profil de utilizator, un grafic social sau un blog. De exemplu, vă puteți imagina că fiecare implementare Twitter descentralizată ar rula pe câteva modele de date partajate: unul pentru tweet-urile fiecărui utilizator, unul pentru graficul social, unul pentru DM-urile lor etc. Prin adoptarea acelorași modele de date subiacente, aplicațiile pot pentru a interopera nativ pe aceleași date.

Într-un fel, puteți compara utilizarea de către Ceramic a standardelor modelelor de date cu utilizarea standardelor de simboluri pentru registrele de active. Pe Ethereum, de exemplu, introducerea standardelor de token fungibil ERC20 și token nefungibil ERC721 a dat naștere la întregi ecosisteme de jetoane și aplicații financiare care interopera nativ. Ceramica aduce același concept în date.

Ceramic adoptă o abordare bazată pe comunitate pentru a crea aceste modele de date, permițând oricărui dezvoltator să-și definească, să partajeze și să-și refolosească cu ușurință modelele cu alți dezvoltatori din ecosistem. Pe măsură ce comunitate creează mai multe modele de date, veți observa o expansiune continuă a cantității și varietății de aplicații care sunt construite cu date componabile.

Compozabilitate făcută astfel face și experiența dezvoltatorului mai bună. Crearea unei aplicații pe Ceramic arată ca și cum ați naviga pe o piață de modele de date, le conectați la aplicația dvs. și obțineți automat acces la toate datele din rețea care sunt stocate în aceste modele. Folosind Ceramic, dezvoltatorii nu vor trebui să-și facă griji cu privire la pornirea aplicației lor cu propriii utilizatori și date separate. Rata de combinare a inovației între dezvoltatori va accelera dramatic.

Scalabilitate

Ceramic atinge scalabilitate printr-un mediu de execuție fragmentat. Toate fluxurile de pe Ceramic își mențin starea în mod independent, iar nodurile de rețea execută tranzacții de flux în paralel. Această abordare, spre deosebire de majoritatea blockchain-urilor, permite Ceramicului să funcționeze cu scalabilitatea necesară pentru versiunile descentralizate ale aplicațiilor sociale precum Twitter sau Facebook.

Spre deosebire de sistemele blockchain tradiționale, în care scalabilitatea este limitată la un singur mediu de execuție virtual global și starea unui singur registru este partajată între toate nodurile, fiecare nod Ceramic acționează ca un mediu de execuție individual pentru efectuarea de calcule și validarea tranzacțiilor pe fluxuri - nu există un mediu global de execuție. registru. Această fragmentare de execuție „încorporată” permite rețelei ceramice să se scaleze orizontal pentru a paraleliza procesarea unui număr tot mai mare de tranzacții de flux simultan, pe măsură ce numărul de noduri din rețea crește. Un astfel de design este necesar pentru a gestiona amploarea datelor din lume, care este cu ordine de mărime mai mare decât debitul necesar pentru un blockchain financiar. Un alt beneficiu al acestui design este că un nod Ceramic poate efectua tranzacții în flux într-un mediu offline mai întâi și apoi poate sincroniza actualizările cu restul rețelei atunci când revine online.

Soluția DID

Ceramic oferă, de asemenea, o soluție de identitate flexibilă și robustă numită IDX, prima soluție de identitate descentralizată (DID) complet funcțională.

IDX este un protocol de identitate încrucișat pentru aplicații deschise cu identitate descentralizată și date de utilizator interoperabile, care le permite utilizatorilor să construiască o identitate digitală unificată constând din toate datele lor, permițând, în același timp, dezvoltatorilor să spargă silozurile și să partajeze liber datele utilizatorilor între aplicații. După cum se arată în figura de mai jos, oferă un index descentralizat care permite ca datele structurate să fie asociate unui identificator descentralizat (DID), iar datele sunt definite prin definiții și stocate în înregistrări.

În plus, IDX poate fi utilizat cu orice tip de depozit de date, cum ar fi Ceramic, Textile, OrbitDB, IPFS, Sia, Arweave, registre blockchain sau chiar baze de date centralizate și acceptă autentificarea de la orice tip de portofel Web3.

IDX este excelent pentru a asocia profiluri de utilizator, grafice sociale portabile, scoruri de reputație, afirmații verificabile, conținut generat de utilizatori, date de aplicație, setări, nume de domenii, adrese blockchain și conturi sociale Web2 la un utilizator într-un mod descentralizat.

Concluzie

Pe scurt, apariția Ceramic a împuternicit foarte mult construirea Web3 și a deblocat noi funcții pentru dezvoltatorii Web3. Indiferent pe care dezvoltatorii blockchain public (Ethereum, BSC, Polygon, Avalanche etc.) se bazează, ei pot folosi simultan Ceramic pentru funcții centrate pe date pentru a-și îmbunătăți aplicațiile. În plus, prin sistemul de conturi flexibil bazat pe DID al Ceramic, Ceramic interfață în mod natural cu sistemele de cont și cheie ale blockchain-urilor majore actuale, ceea ce oferă utilizatorilor o mare comoditate.

Este plăcut să vedem că există deja multe proiecte de platforme sociale DID și Web3 dezvoltate pe Ceramic. Printre acestea, pentru a numi câteva proiecte demne de remarcat: CyberConnect, o platformă social graph middleware; Orbis, o platformă Twitter Web3; și The Convo Space, o platformă de mesagerie instantanee etc. Așteptăm cu nerăbdare noile posibilități pe care infrastructura rețelei de date a Ceramic le poate aduce stratului de aplicație Web3.

Disclaimer: Această cercetare are doar scop informativ. Nu constituie un sfat de investiții sau o recomandare de a cumpăra sau vinde vreo investiție și nu ar trebui să fie utilizat în evaluarea meritelor luării oricărei decizii de investiție.

🐦 @chestersigned

📅 8 mai 2022

Linkuri:

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/