A fost lansată versiunea 0.9 a sistemului de fișiere descentralizat IPFS (InterPlanetary File System), care formează un depozit global de fișiere versionate, desfășurat sub forma unei rețele P2P, formată din sistemele participanților. IPFS combină idei anterior implementate în sisteme precum Git, BitTorrent, Kademlia, SFS și Web și seamănă cu un singur „roi” BitTorrent (seederi care participă la distribuție), schimbând obiecte Git. IPFS se distinge prin adresarea în funcție de conținut, nu de locație și nume arbitrare. Codul de referință al implementării este scris în Go și este distribuit sub licențele Apache 2.0 și MIT.
În noua versiune:
- În gateway-uri a fost implementată posibilitatea de a încărca grafuri IPLD arbitrare (InterPlanetary Linked Data, spațiu de nume pentru adresarea resurselor bazate pe hash-uri) prin intermediul handler-ului „/api/v0/dag/export”, care îndeplinește o funcție similară comenzii „ipfs dag export”. Exportul se face în formatul arhivei DAG (Graf orientat aciclic). IPLD obținut permite utilizatorului să se asigure că datele încărcate de la gateway-ul public corespund numelui simbolic solicitat (de exemplu, obținând fișierul „/ipfs/bafyexample”, se poate verifica conformitatea acestuia cu hash-ul conținutului inițial legat de numele simbolic).
- A fost oferită posibilitatea de a defini un resolver DNS propriu, care folosește protocolul „DNS over HTTPS”, ce va fi utilizat în locul resolver-ului din setările sistemului de operare. De asemenea, se poate redefini resolver-ul pentru anumite domenii niveluri superioare. În DNSLink, mecanismul pentru legarea numelui DNS obișnuit la adresele IPFS, înlocuirea selectivă a resolver-ului poate fi aplicată pentru a crea nume de domeniu care nu sunt legate de ICANN, de exemplu, se poate conecta un resolver „https://eth.link/dns-query” pentru a procesa domenii de nivel superior „.eth”, care nu sunt oficial aprobate de ICANN.
- Interfața web (WebUI) a fost actualizată, având acum suport experimental pentru fixarea serviciilor externe (similar comenzii „ipfs pin remote service”). A fost modificată prezentarea ecranelor pentru lucrul cu fișierele și peer-urile.
- În interfața CLI a fost oferită posibilitatea de a exporta chei prin comanda „ipfs key export” fără a opri procesul de fundal ipfs.
- A fost adăugat un client DHT experimental pentru căutarea datelor folosind o tabelă de hash distribuită, care se deosebește de soluția bazată pe IPNS printr-o performanță mai bună.
- Componentele pentru migrarea la noile versiuni go-ipfs sunt împărțite în pachete separate pentru a accelera descărcarea și a simplifica organizarea actualizărilor în configurațiile cu pluginuri proprii. Procesul de descărcare a actualizărilor prin IPFS este automatizat și s-au adăugat setări pentru a facilita aplicarea actualizărilor în condiții de absență a conexiunii la rețea sau blocare prin firewall.
Reamintim că, în IPFS, linkul pentru accesarea unui fișier este direct legat de conținutul acestuia și include un hash criptografic al conținutului. Adresa fișierului nu poate fi redenumită arbitrar; ea poate fi schimbată doar atunci când conținutul este modificat. De asemenea, nu se poate modifica fișierul fără a schimba adresa (versiunea veche va rămâne la aceeași adresă, iar noua versiune va fi accesibilă printr-o altă adresă, deoarece hash-ul conținutului fișierului se va schimba). Având în vedere că identificatorul fișierului se schimbă la fiecare modificare, pentru a nu trebui să transmită mereu linkuri noi, sunt oferite servicii pentru asocierea adreselor permanente, care iau în considerare diferitele versiuni ale fișierului (IPNS), sau pentru ancorarea unui alias similar cu file system-uri tradiționale și DNS (MFS (Mutable File System) și DNSLink).
Similar cu BitTorrent, datele sunt stocate direct pe sistemele participanților, care schimbă informații în regim P2P, fără a fi legate de noduri centralizate. Când este necesar să obțină un fișier cu un anumit conținut, sistemul găsește participanții care dețin acel fișier și îl trimite de pe sistemele lor în părți, pe mai multe fluxuri. După ce un participant descarcă fișierul pe sistemul său, devine automat unul dintre punctele de distribuție ale acestuia. Pentru a determina participanții din rețea la nodurile cărora este prezent conținutul de interes, se utilizează o tabelă hash distribuită (DHT). Pentru accesul la sistemul de fișiere global IPFS se poate folosi protocolul HTTP sau se poate monta un sistem de fișiere virtual /ipfs cu ajutorul modulului FUSE.
IPFS ajută la rezolvarea unor probleme precum fiabilitatea stocării (dacă stocarea inițială devine inaccesibilă, fișierul poate fi descărcat de pe sistemele altor utilizatori), contracararea cenzurii conținutului (pentru blocare, trebuie să se blocheze toate sistemele utilizatorilor pe care se află o copie a datelor) și organizarea accesului în lipsa unei conexiuni directe la internet sau în caz de calitate slabă a canalului de comunicație (datele pot fi descărcate prin intermediul celor mai apropiați membri din rețeaua locală). Pe lângă stocarea fișierelor și schimbul de date, IPFS poate fi utilizat ca bază pentru crearea de servicii noi, de exemplu, pentru organizarea funcționării site-urilor care nu depind de servere sau pentru crearea de aplicații distribuite.

Sursa: opennet.ro
