Ce este sistemul de fișiere interplanetar (IPFS) și cum îl folosiți?

Publicat: 2022-06-25
Mai multe plăci hexagonale cu simboluri „umane” conectate într-o rețea.
Andrii Yalanskyi / Shutterstock

Sistemul de fișiere interplanetare (IPFS) este o rețea distribuită, de partajare de fișiere peer-to-peer, care este bine poziționată pentru a deveni baza unui nou web descentralizat. Iată cum funcționează și cum puteți începe să îl utilizați.

Cuprins

Un internet descentralizat
Cum funcționează IPFS
Cum sunt stocate datele
Cum se instalează IPFS
Interfața Web
Clientul desktop IPFS
Ce urmeaza?

Un internet descentralizat

Chiar dacă este global, World Wide Web este încă o rețea centralizată . Stocarea de date din spatele internetului este predominant servere – fizice sau virtuale – în fermele masive de servere sau platforme cloud. Aceste facilități sunt deținute de o singură companie. Serverele sunt deținute sau închiriate de alte companii și sunt configurate și expuse pentru a fi accesibile lumii exterioare.

Ce este HTTPS și de ce ar trebui să-mi pese?
LEGATE Ce este HTTPS și de ce ar trebui să-mi pese?

Oricine dorește să acceseze informațiile de pe acele servere trebuie să facă o conexiune HTTPS din browserul său la serverul corespunzător. Serverul este în centru, deservind toate cererile de acces la datele pe care le deține.

Aceasta este, desigur, o simplificare, dar descrie modelul general. Pentru a permite scalarea și pentru a oferi robustețe, organizațiile pot pune în joc servere oglindă și rețele de livrare de conținut. Dar chiar și atunci, există încă un număr relativ mic și finit de locații în care oamenii pot merge pentru a accesa acele fișiere.

IPFS este o implementare a unei rețele descentralizate . Unul dintre cele mai populare sisteme descentralizate este Git, software-ul de control al versiunilor. Git este un sistem distribuit, deoarece fiecare dezvoltator care a clonat un depozit are o copie a întregului depozit, inclusiv istoricul, pe computerul său. Dacă depozitul central este șters, orice copie a depozitului poate fi folosită pentru a-l restaura. IPFS preia acest concept distribuit și îl aplică stocării fișierelor și regăsării datelor.

IPFS a fost creat de Juan Benet și este întreținut de Protocol Labs, compania pe care a fondat-o. Au luat natura descentralizată a Git și tehnicile distribuite, de economisire a lățimii de bandă ale torrenților și au creat un sistem de fișiere care funcționează pe toate nodurile din rețeaua IPFS. Și este aici acum și funcționează.

Cum funcționează IPFS

Web-ul descentralizat IPFS este alcătuit din toate computerele conectate la acesta, cunoscute sub numele de noduri . Nodurile pot stoca date și le pot face accesibile oricui le solicită.

Dacă cineva solicită un fișier sau o pagină web, o copie a fișierului este stocată în cache pe nodul său. Pe măsură ce tot mai mulți oameni solicită acele date, vor exista tot mai multe copii în cache. Cererile ulterioare pentru acel fișier pot fi îndeplinite de orice nod – sau combinație de noduri – care are fișierul pe el. Sarcina livrării datelor și îndeplinirii cererii este împărțită treptat între multe noduri.

Acest lucru necesită un nou tip de adresă web. În loc de rutare bazată pe adresă, unde trebuie să cunoașteți locația datelor și să furnizați o adresă URL specifică acelor date, web-ul descentralizat folosește rutarea bazată pe conținut .

BitTorrent pentru începători: Cum să începeți să descărcați torrente
RELATE BitTorrent pentru începători: Cum să începeți să descărcați torrente

Nu spui unde sunt datele; cereți ceea ce doriți și este găsit și preluat pentru dvs. Deoarece datele sunt stocate pe mai multe computere diferite, toate aceste computere pot furniza părți ale datelor în computerul dvs. simultan, cum ar fi o descărcare torrent. Acest lucru este destinat să reducă latența, să reducă lățimea de bandă și să evite blocajele cauzate de un singur server central.

Îndepărtarea de modelul centralizat înseamnă că nu există un punct focal pe care hackeri să-l atace. Dar preocuparea imediată pentru majoritatea oamenilor va fi ideea că fișierele, imaginile și alte medii vor fi stocate pe computerele altora.

Nu este chiar așa. IPFS nu este ceva la care vă conectați și la care încărcați. Nu este un Dropbox comun distribuit. Este ceva la care participați, găzduind un nod sau plătind pentru a utiliza un nod furnizat profesional găzduit de un serviciu cloud. Și dacă nu alegeți să distribuiți sau să publicați ceva, acesta nu va fi accesibil nimănui altcineva. De fapt, termenul „încărcare” este înșelător. Ceea ce faci cu adevărat este să importi fișiere în propriul tău nod.

Ce este criptarea și cum funcționează?
LEGATE Ce este criptarea și cum funcționează?

Dacă doriți ca un fișier să fie accesibil altora, dar trebuie să păstrați conținutul limitat la un număr selectat, ar trebui să-l criptați înainte de a-l importa. Transmiterea datelor este criptată în ambele direcții, dar fișierele importate nu sunt criptate în mod implicit. Aceasta vă lasă alegerea tehnologiei de criptare. IPFS nu impune o formă de criptare de stocare a fișierelor ca criptare „oficială”.

Cum sunt stocate datele

Datele sunt stocate în bucăți de 256 KB, numite obiecte IPFS. Fișierele mai mari decât acestea sunt împărțite în câte obiecte IPFS sunt necesare pentru a găzdui fișierul. Un obiect IPFS per fișier conține legături către toate celelalte obiecte IPFS care alcătuiesc acel fișier.

Ce este o sumă de control (și de ce ar trebui să îți pese)?
LEGATE Ce este o sumă de control (și de ce ar trebui să vă pese)?

Când un fișier este adăugat în rețeaua IPFS, acesta primește un ID unic, de 24 de caractere, numit ID de conținut sau CID. Așa este identificat și referit în cadrul rețelei IPFS. Recalcularea hash-ului atunci când fișierul este preluat verifică integritatea fișierului. Dacă verificarea eșuează, fișierul a fost modificat. Când fișierele sunt actualizate în mod legitim, IPFS se ocupă de versiunea fișierelor. Aceasta înseamnă că noua versiune a fișierului este stocată împreună cu versiunea anterioară. IPFS funcționează ca un sistem de fișiere distribuit și acest concept de versiune oferă un grad de imuabilitate acelui sistem de fișiere.

Să presupunem că stocați un fișier în IPFS pe nodul dvs. și cineva numit Dave îl solicită și îl descarcă în nodul său. Următoarea persoană care solicită acel fișier l-ar putea primi de la tine, sau de la Dave, sau într-un mod asemănător unui torrent, cu părți ale fișierului care provin de la nodul tău și de la nodul lui Dave. Cu cât sunt mai mulți oameni care descarcă fișierul, cu atât mai multe noduri sunt pentru a cip și ajuta cu cererile ulterioare de fișiere.

Colectarea gunoiului va elimina periodic obiectele IPFS din cache. Dacă doriți să stocați permanent un fișier, îl puteți fixa pe nodul dvs. Asta înseamnă că nu va fi curățat în timpul colectării gunoiului. Puteți plăti pentru stocare la furnizorii de stocare în cloud care vă expun datele în rețeaua IPFS și le păstrează permanent fixate și există servicii special adaptate pentru găzduirea site-urilor web care sunt accesibile IPFS.

Dacă ceva de pe site-ul dvs. devine viral și generează valuri masive de trafic către site-ul dvs., paginile vor fi stocate în cache în toate nodurile care preiau acele pagini. Aceste pagini stocate în cache vor fi folosite pentru a ajuta la deservirea solicitărilor de pagini ulterioare, ajutându-vă să mergeți pe val și să satisfaceți cererea.

Desigur, toate acestea depind de un număr suficient de noduri activate și disponibile și cu suficiente date fixate și stocate în cache. Și asta necesită participanți.

Cum se instalează IPFS

Utilizatorii Windows pot descărca și rula fișierul EXE care se găsește pe pagina de lansare IPFS. Dacă sunteți pe un Mac, descărcați fișierul DMG și trageți-l în Aplicații așa cum ați proceda de obicei. Dacă întâmpinați probleme, consultați documentația oficială.

În scopuri demonstrative, vom parcurge instalarea pe Ubuntu. Există pachete Snap disponibile pentru IPFS și pentru clientul desktop IPFS pe orice distribuție Linux. Dacă tocmai instalați IPFS, veți avea un nod IPFS complet funcțional, pe care îl puteți controla și administra folosind un browser. Dacă instalați clientul desktop, nu trebuie să utilizați browserul, clientul oferă toate aceleași funcționalități.

Pentru a instala Snaps utilizați:

 sudo snap install ipfs 

Instalarea snap-ului de bază IPFS

 sudo snap install ipfs-desktop 

Instalarea clientului desktop IPFS snap

Acum trebuie să rulați comanda pentru a vă inițializa nodul.

 ipfs init 

Inițializarea unui nod IPFS

Următoarele comenzi sunt sugerate de IPFS dacă întâmpinați dificultăți și demonul nu rulează sau nu vă puteți conecta la el. Pe toate computerele de testare pe care le-am încercat, acestea erau necesare, așa că ați putea la fel de bine să continuați și să le emitați acum:

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]' 

Configurarea cererilor de origine încrucișată în IPFS

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]' 

Configurarea metodelor de acces în IPFS

 sudo sysctl -w net.core.rmem_max=2500000 

Ajustarea dimensiunii bufferului de rețea

Cu acestea din drum, puteți porni demonul IPFS.

 daemon ipfs 

Pornirea demonului IPFS

Când demonul se lansează, raportează cele două adrese pe care le puteți folosi pentru a vă conecta la el. Unul este pentru desktop-ul IPFS, iar celălalt este pentru IPFS „webui” sau interfața de utilizator web.

Adresele de conexiune a demonului IPFS

Interfața Web

Lipiți adresa webui http://127.0.0.1:5001/webui în browser pentru a vă conecta la interfața web IPFS.

Pagina implicită este ecranul „Stare”. Acesta este un tablou de bord care arată starea și activitatea nodului dvs. Arată dimensiunea fișierelor pe care le găzduiești, plus dimensiunea totală a obiectelor IPFS stocate în cache pe care le găzduiește nodul tău. Acestea sunt date din altă parte a rețelei IPFS. Tabloul de bord afișează, de asemenea, două indicatori în timp real care arată traficul IPFS de intrare și de ieșire și un grafic în timp real care arată istoricul traficului respectiv.

Ecran de stare IPFS webui

Pentru a trece la un alt ecran, faceți clic pe una dintre pictogramele din bara laterală din stânga. Ecranul „Fișiere” vă permite să vedeți fișierele pe care le-ați importat în IPFS. Puteți folosi butonul albastru „Importați” pentru a căuta fișiere sau foldere de pe computer pe care doriți să le importați în IPFS.

Ecran Fișiere IPFS webui

IPFS folosește arbori Merkle. Acestea sunt un superset foarte eficient de arbori hash binari, inventați în 1979 de Ralph Merkle. Dacă ai mulți copaci, ai o pădure. Pictograma „Explorare” deschide un ecran care vă permite să răsfoiți diferite tipuri de informații stocate în IPFS și în pădurea Merkle.

Ecran Fișiere IPFS webui

Există o arhivă de desene animate de pe binecunoscutul site web XKCD. Dacă faceți clic pe acea opțiune și selectați un desen animat, vi se oferă desenul animat ales prin IPFS.

Desene animate XKCD livrate prin IPFS

Pictograma „Peers” deschide o hartă a lumii care arată unde sunt situate conexiunile dvs. IPFS pe tot globul.

Ecran IPFS webui Peers

În câteva minute, am avut conexiuni din Australia, Belarus, Belgia, Canada, China, Finlanda, Franța, Germania, Japonia, Malaezia, Olanda, Norvegia, Polonia, Portugalia, România, Rusia, Singapore, Coreea de Sud, Suedia, Taiwan, Turcia, Regatul Unit și, bineînțeles, SUA.

Dovada pozitivă, dacă ar fi fost nevoie, că IPFS a generat un zgomot global. Nu vă veți conecta la fiecare nod disponibil, desigur. Asta ar fi ineficient.

Clientul desktop IPFS

Găsiți IPFS Desktop în lansatorul de aplicații al sistemului dvs. Pe GNOME, cu demonul IPFS oprit , apăsați tasta „Super” și tastați „ipfs”. Veți vedea pictograma cub IPFS albastru.

Faceți clic pe această pictogramă și clientul desktop va porni. Va porni demonul însuși.

Aspectul și funcționalitatea clientului desktop sunt exact aceleași cu interfața web, dar de data aceasta rulează ca o aplicație autonomă.

Clientul desktop IPFS

O caracteristică suplimentară oferită de aplicație este un indicator de aplicație în zona de notificare.

Acest lucru vă oferă acces rapid la un meniu de opțiuni și un indicator de semafor al stării nodului dvs. Indicatorul este verde pentru funcționare normală, roșu pentru o eroare și galben pentru pornire.

Meniul indicator al aplicației IPFS

Ce urmeaza?

Nimic nu va înlocui brusc web-ul centralizat existent, dar în timp lucrurile vor evolua. Poate că IPFS este o privire în ce ar putea evolua.