reprezentare logo Kosson

Vă mai aduceți aminte de Geocities? Unii da, alții, cu siguranță vor ridica sprâncenele. Povestea pe scurt este așa. În 1994, Geocities era un serviciu gratuit de găzduire a paginilor web. Utilizarea continuă a acestei platforme a condus la acumularea conținutului digital a milioane de utilizatori. Ceva mai târziu, în 1999, compania este cumpărată de Yahoo. La zece ani de la achiziționare, Yahoo închide acest serviciu de găzduire, ceea ce s-a soldat cu pierderea conținutului digital existent de 15 ani. O foarte grea lovitură pentru întreaga cultură pentru că putem privi conținuturile existente online ca fiind expresia umană a zilelor noastre. Este estimat că pierderea a fost de cel puțin 39 de milioane de pagini web și conținuturi ale utilizatorilor.

Cum poți preveni astfel de adevărate combustii digitale?

Soluția vine din felul în care se vor dezvolta rețelele în Internet și cât de repede se va face trecerea de la modelul centralizat, care agregă resursele în jurul unor noduri (servere, ferme de servere aparținând unor furnizori de servicii de găzduire) mari, care în ciuda arhitecturii gândite la începuturile rețelelor, prin „închiderea” câte unui serviciu, produce pierderi incalculabile, dacă privim din perspectivă istorică. Tot de la arhitectură vine și răspunsul, dar acest pas evolutiv, trebuie să fie acceptat la o rată accelerată de actorii Internet. Mă refer la modele descentralizate, care realizează o mai bună distribuție și o redundanță mai eficientă.

Pentru a vă da și mai multă încredere, iată apelul lui Brewster Kahle, Bibliotecar Digital la binecunoscutul Internet Archive:

Unul dintre cel mai populare modele descentralizate, care prinde tracțiune din ce în ce mai mult, este IPFS - InterPlanetary File System. Pentru cei nerăbdători dintre dumneavoastră, există un forum de discuții dedicate bibliotecilor, arhivelor și muzeelor la https://discuss.ipfs.io/t/about-the-libraries-archives-and-museums-category/129 . Haideți să o luăm cu începutul.

IPFS este un sistem de fișiere distribuit, care a incorporat cele mai bune idei de la tehnologii de succes precum DHT-urile, BitTorrent, Git și SFS. Scopul este de a crea „un singur sistem coeziv mai mare decât suma părților sale”.

Principiul de bază IPFS este „modelarea «tuturor datelor» ca parte al aceluiași DAG Merkle”. Am explicat ce este un DAG Merkle în episodul anterior: http://www.kosson.ro/know-how/409-tehnologii-web/1166-blockchain-pentru-resurse-de-cercetare-si-patrimoniu-ii

Ca punct de pornire, IPFS are un document fondator, un white paper, care descrie ce este, care sunt tehnologiile utilizate și care este scopul. White paper-ul spune că „sistemul IPFS prezintă o nouă platformă pentru a scrie și distribui aplicații și un nou sistem pentru a distribui și versiona date de mari dimensiuni”.

După natura sa, IPFS este o rețea peer-to-peer în care niciun nod nu este privilegiat. Pe scurt, „nodurile IPFS stochează obiecte IPFS într-o bază locală”.

IPFS este și un protocol ca o sumă de sub-protocoale responsabile pentru diferitele funcționalități:

  • identități - răspunde de gestionarea identităților și verificarea lor.
  • rețea - gestionează conexiuni la alți peers folosind diferite protocoale de rețea.
  • rutare - menține informații pentru localizarea de peers și obiecte. Răspunde la înterogările locale și cele de la distanță.
  • schimb de resurse - gestionat de un nou protocol de interschimb (BitSwap).
  • obiecte - modelate după Merkle DAG. Sunt obiecte adresabile ce nu pot fi modificate.
  • fișiere - un sistem de versionare ierarhic inspirat de Git.
  • nume - un sistem pentru elaborarea numelor modificabil și auto-certificant.

Identități

Toate resursele trebuie să poată fi identificate. În cazul IPFS, resursele vor fi identificate cu un hash criptografic, care a fost generat de un puzzle criptografic bazat pe tehnologia din spatele S/Kademlia.

Reprezentarea fișierelor

IPFS „sparge” fișierele în blocuri de 256kb, care sunt hashuite și apoi folosește un arbore hash pentru a reprezenta întregul.

Rețea

libp2p logo alt 2Pentru a realiza legăturile între noduri, IPFS pune la dispoziție o suită de protocoale peer-to-peer (P2P), care pentru simplitate au fost abstractizate într-o bibliotecă de cod intitulată libp2p pe care IPFS o utilizează drept manager de rețea. Protocoalele își au rădăcinile în Internet Protocol. Libp2p are chiar o pagină dedicată la https://libp2p.io/. Dacă privim din punctul de vedere al straturilor OSI (Open Systems Interconnection model) pe nivelul 4 al transportului, biblioteca de cod unificatoare libp2p, pune la bătaie mai multe mecanisme moderne. White paper-ul IPFS menționează utilizarea WebRTC, dar, prin efortul de dezvoltare, libp2p mai adaugă QUIC și Websockets. Pentru detalii complete, se poate consulta zona dedicată specificațiilor. Un sumar al ceea ce rezolvă această bibliotecă de cod, găsim în textul specificațiilor: în esență, un nod care folosește libp2p ar trebui să fie capabil să comunice cu alt nod folosind o varietate de diferite protocoale de transport, incluzând connection relay, transmisii peste diferite protocoale negociate sau la cerere libp2p specificații. Introducere.

FeaturesOflibp2p

Resurse

The JavaScript implementation of the IPFS protocol https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0 http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example Merkle tree JRFC 20 - Merkle DAG #20 Merkle DAG research #28 Merkle File Transfer - Efficient and pain free file uploads, smart chunking for processing queues #2 Secrecy, authentication and public key systems, Ralph Charles Merkle, 1979, Technical Report No. 1979-1 https://en.wikipedia.org/wiki/Hash_table https://en.wikipedia.org/wiki/Distributed_hash_table https://en.wikipedia.org/wiki/Byzantine_fault_tolerance

IPFS - Content Addresed, Versioned, P2P File System (DRAFT 3)

A distributed Descentralised Information Storage and Retrieval System

Powerful data sharing from your desktop Dat

Pachet npm ipfs-merkle-dag

Awesome IPFS