Wat is het Interplanetary File System (IPFS) en hoe gebruikt u het?

Verschillende zeshoekige tegels met "menselijke" symbolen verbonden in een web.
Andrii Yalanskyi / Shutterstock

Het Interplanetary File System (IPFS) is een gedistribueerd, peer-to-peer netwerk voor het delen van bestanden dat goed gepositioneerd is om het fundament te worden van een nieuw, gedecentraliseerd web. Hier leest u hoe het werkt en hoe u het kunt gaan gebruiken.

Een gedecentraliseerd internet

Ook al is het wereldwijd, het world wide web is nog steeds een gecentraliseerd netwerk. De gegevensopslag achter internet bestaat voornamelijk uit servers – fysiek of virtueel – in enorme serverfarms of cloudplatforms. Deze faciliteiten zijn eigendom van één bedrijf. De servers zijn eigendom van of worden gehuurd door andere bedrijven en zijn geconfigureerd en toegankelijk gemaakt voor de buitenwereld.

Wat is HTTPS en waarom zou het me iets kunnen schelen?

VERWANTWat is HTTPS en waarom zou het me iets kunnen schelen?

Iedereen die toegang wil hebben tot de informatie op die servers, moet een HTTPS-verbinding maken van zijn browser naar de juiste server. De server vormt het middelpunt en bedient alle verzoeken om toegang tot de gegevens die erop staan.

Dit is natuurlijk een vereenvoudiging, maar het beschrijft wel het algemene model. Om schaalbaarheid mogelijk te maken en robuustheid te bieden, kunnen organisaties mirrorservers en content delivery-netwerken in het spel brengen. Maar zelfs dan is er nog steeds een relatief klein en eindig aantal locaties waar mensen naartoe kunnen gaan om toegang te krijgen tot die bestanden.

IPFS is een implementatie van een gedecentraliseerd netwerk. Een van de meest populaire gedecentraliseerde systemen is Git, de versiebeheersoftware. Git is een gedistribueerd systeem omdat elke ontwikkelaar die een repository heeft gekloond een kopie van de hele repository, inclusief de geschiedenis, op zijn computer heeft staan. Als de centrale repository is weggevaagd, kan elke kopie van de repository worden gebruikt om deze te herstellen. IPFS neemt dat gedistribueerde concept en past het toe op bestandsopslag en het ophalen van gegevens.

IPFS is gemaakt door Juan Benet en wordt onderhouden door Protocol Labs, het bedrijf dat hij heeft opgericht. Ze namen het gedecentraliseerde karakter van Git en de gedistribueerde, bandbreedtebesparende technieken van torrents en creëerden een archiveringssysteem dat werkt op alle knooppunten in het IPFS-netwerk. En het is nu hier en het werkt.

Hoe de IPFS werkt

Het gedecentraliseerde IPFS-web bestaat uit alle computers die erop zijn aangesloten, ook wel bekend als: knooppunten. Nodes kunnen gegevens opslaan en toegankelijk maken voor iedereen die erom vraagt.

Als iemand een bestand of een webpagina opvraagt, wordt een kopie van het bestand in de cache op hun knooppunt opgeslagen. Naarmate meer en meer mensen om die gegevens vragen, zullen er steeds meer kopieën in de cache bestaan. Daaropvolgende verzoeken voor dat bestand kunnen worden vervuld door elk knooppunt (of combinatie van knooppunten) dat het bestand bevat. De last van het aanleveren van de gegevens en het voldoen aan het verzoek wordt geleidelijk verdeeld over veel knooppunten.

Dit vraagt ​​om een ​​nieuw type webadres. In plaats van adresgebaseerd routering waarbij u de locatie van de gegevens moet weten en een specifieke URL naar die gegevens moet opgeven, gebruikt het gedecentraliseerde web op inhoud gebaseerd routering.

BitTorrent voor beginners: hoe te beginnen Torrents downloaden

VERWANTBitTorrent voor beginners: hoe te beginnen Torrents downloaden

Je zegt niet waar de gegevens zijn; jij vraagt ​​aan wat u wilt, en het wordt voor u gevonden en opgehaald. Omdat de gegevens op veel verschillende computers zijn opgeslagen, kunnen al die computers delen van de gegevens tegelijk naar uw computer sturen, zoals een torrent-download. Dit is bedoeld om de latentie te verlagen, de bandbreedte te verminderen en knelpunten te voorkomen die worden veroorzaakt door een enkele, centrale server.

Door af te stappen van het gecentraliseerde model is er geen centraal punt voor hackers om aan te vallen. Maar de meeste mensen zullen zich onmiddellijk zorgen maken over het idee dat hun bestanden, afbeeldingen en andere media op de computers van anderen worden opgeslagen.

Het is niet helemaal zo. IPFS is niet iets waarmee u verbinding maakt en waarnaar u uploadt. Het is geen gedistribueerde, gemeenschappelijke Dropbox. Het is iets waar u aan deelneemt, door een node te hosten of te betalen voor het gebruik van een professioneel ingerichte node die wordt gehost door een cloudservice. En tenzij u ervoor kiest om iets te delen of te publiceren, zal het voor niemand anders toegankelijk zijn. In feite is de term “uploaden” misleidend. Wat je echt doet, is bestanden importeren in je eigen node.

Wat is versleuteling en hoe werkt het?

VERWANTWat is versleuteling en hoe werkt het?

Als u wilt dat een bestand toegankelijk is voor anderen, maar de inhoud beperkt moet houden tot een select aantal, moet u het versleutelen voordat u het importeert. De overdracht van gegevens is in beide richtingen versleuteld, maar geïmporteerde bestanden worden bewust niet standaard versleuteld. Dit laat de keuze van de coderingstechnologie aan u over. IPFS pusht geen vorm van codering van bestandsopslag als de “officiële” codering.

Hoe gegevens worden opgeslagen

Gegevens worden opgeslagen in brokken van 256 KB, de zogenaamde IPFS-objecten. Bestanden die groter zijn, worden opgesplitst in zoveel IPFS-objecten als nodig zijn om het bestand te huisvesten. Eén IPFS-object per bestand bevat koppelingen naar alle andere IPFS-objecten waaruit dat bestand bestaat.

Wat is een controlesom (en waarom zou het u iets kunnen schelen)?

VERWANTWat is een controlesom (en waarom zou het u iets kunnen schelen)?

Wanneer een bestand aan het IPFS-netwerk wordt toegevoegd, krijgt het een unieke hash-ID van 24 tekens, de inhoud-ID, of CID. Dat is hoe het wordt geïdentificeerd en ernaar wordt verwezen binnen het IPFS-netwerk. Door de hash opnieuw te berekenen wanneer het bestand wordt opgehaald, wordt de integriteit van het bestand gecontroleerd. Als de controle mislukt, is het bestand gewijzigd. Wanneer bestanden legitiem worden bijgewerkt, verwerkt IPFS de versiebeheer van bestanden. Dat betekent dat de nieuwe versie van het bestand samen met de vorige versie wordt opgeslagen. IPFS werkt als een gedistribueerd bestandssysteem en dit concept van versiebeheer zorgt voor een zekere mate van onveranderlijkheid voor dat bestandssysteem.

Laten we zeggen dat u een bestand opslaat in IPFS op uw knooppunt, en iemand genaamd Dave vraagt ​​erom en downloadt het naar hun knooppunt. De volgende persoon die om dat bestand vraagt, kan het van jou krijgen, of van Dave, of op een torrent-achtige manier waarbij delen van het bestand van jouw node en van Dave’s node komen. Hoe meer mensen het bestand downloaden, hoe meer knooppunten er zijn om in te pluggen en te helpen met volgende bestandsaanvragen.

Garbage collection verwijdert periodiek in de cache opgeslagen IPFS-objecten. Als u een bestand permanent wilt opslaan, kunt u: pin het naar uw knooppunt. Dat betekent dat het niet wordt opgeruimd tijdens het ophalen van afval. U kunt betalen voor opslag bij cloudopslagproviders die uw gegevens blootstellen aan het IPFS-netwerk en ze permanent vastzetten, en er zijn services die specifiek zijn afgestemd op het hosten van websites die IPFS-toegankelijk zijn.

Als iets op uw website viraal gaat en enorme hoeveelheden verkeer naar uw website leidt, worden de pagina’s in de cache opgeslagen op alle knooppunten die die pagina’s ophalen. Die pagina’s in het cachegeheugen zullen worden gebruikt om verdere paginaverzoeken af ​​te handelen, zodat u kunt meegaan met de golf en aan de vraag kunt voldoen.

Dit hangt natuurlijk allemaal af van het feit dat er voldoende knooppunten zijn en beschikbaar zijn, en dat er voldoende vastgezette en in de cache opgeslagen gegevens zijn. En daar zijn deelnemers voor nodig.

Hoe IPFS te installeren

Windows-gebruikers kunnen het EXE-bestand op de IPFS-releasepagina downloaden en uitvoeren. Als je een Mac hebt, download dan het DMG-bestand en sleep het naar Programma’s zoals je normaal zou doen. Als je in de problemen komt, bekijk dan de officiële documentatie.

Voor demonstratiedoeleinden zullen we de installatie op Ubuntu doorlopen. Er zijn Snap-pakketten beschikbaar voor IPFS en voor de IPFS-desktopclient op elke Linux-distributie. Als u alleen IPFS installeert, heeft u een volledig werkende IPFS-node die u met een browser kunt besturen en beheren. Als u de desktopclient installeert, hoeft u de browser niet te gebruiken, de client biedt dezelfde functionaliteit.

Gebruik om de Snaps te installeren:

sudo snap install ipfs

De kern IPFS-module installeren

sudo snap install ipfs-desktop

De IPFS-desktopclientmodule installeren

Nu moet u de opdracht uitvoeren om uw knooppunt te initialiseren.

ipfs init

Een IPFS-knooppunt initialiseren

De volgende opdrachten worden door IPFS voorgesteld als u problemen ondervindt en de daemon niet werkt, of u er geen verbinding mee kunt maken. Op alle testcomputers die we hebben geprobeerd, waren deze vereist, dus u kunt ze net zo goed nu uitgeven:

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

Cross origin-verzoeken configureren in IPFS

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

Toegangsmethoden configureren in IPFS

sudo sysctl -w net.core.rmem_max=2500000

De grootte van de netwerkbuffer aanpassen

Met die uit de weg, kunt u de IPFS-daemon starten.

ipfs daemon

De IPFS-daemon starten

Wanneer de daemon wordt gestart, rapporteert deze de twee adressen die u kunt gebruiken om er verbinding mee te maken. De ene is voor de IPFS-desktop en de andere is voor de IPFS “webui” of webgebruikersinterface.

De IPFS-daemon-verbindingsadressen

De webinterface

Plak het webui-adres http://127.0.0.1:5001/webui in uw browser om verbinding te maken met de IPFS-webfrontend.

De standaardpagina is het scherm “Status”. Dit is een dashboard dat de status en activiteit van uw node toont. Het toont de grootte van de bestanden die u host, plus de totale grootte van de in de cache opgeslagen IPFS-objecten die uw node host. Dit zijn gegevens van elders in het IPFS-netwerk. Het dashboard toont ook twee realtime meters die inkomend en uitgaand IPFS-verkeer tonen, en een realtime grafiek die de geschiedenis van dat verkeer laat zien.

IPFS webui Status scherm

Om naar een ander scherm te gaan, klikt u op een van de pictogrammen in de linkerzijbalk. In het scherm “Bestanden” kunt u de bestanden zien die u in IPFS hebt geïmporteerd. U kunt de blauwe knop “Importeren” gebruiken om te zoeken naar bestanden of mappen op uw computer die u in IPFS wilt importeren.

IPFS webui Bestanden scherm

IPFS maakt gebruik van Merkle-trees. Dit is een zeer efficiënte superset van binaire hasjbomen, uitgevonden in 1979 door Ralph Merkle. Als je veel bomen hebt, heb je een bos. Het pictogram “Verkennen” opent een scherm waarmee u door verschillende soorten informatie kunt bladeren die zijn opgeslagen in IPFS en het Merkle-bos.

IPFS webui Bestanden scherm

Er is een archief met tekenfilms van de bekende XKCD-website. Als u op die optie klikt en een cartoon selecteert, krijgt u de door u gekozen cartoon via IPFS.

XKCD-cartoon geleverd via IPFS

Het pictogram “Peers” opent een wereldkaart die aangeeft waar uw IPFS-verbindingen zich over de hele wereld bevinden.

IPFS webui Peers-scherm

Binnen een paar minuten hadden we verbindingen vanuit Australië, Wit-Rusland, België, Canada, China, Finland, Frankrijk, Duitsland, Japan, Maleisië, Nederland, Noorwegen, Polen, Portugal, Roemenië, Rusland, Singapore, Zuid-Korea, Zweden, Taiwan, Turkije, het Verenigd Koninkrijk en natuurlijk de VS.

Bewijs positief, indien nodig, dat IPFS een wereldwijde buzz heeft gegenereerd. Je maakt natuurlijk niet verbinding met alle beschikbare nodes. Dat zou inefficiënt zijn.

De IPFS-desktopclient

Zoek IPFS Desktop in de applicatiestarter van uw systeem. Op GNOME, met de IPFS-daemon gestopt, druk op uw “Super” -toets en typ “ipfs”. U ziet het blauwe IPFS-kubuspictogram.

Klik op dit pictogram en de desktopclient wordt gestart. Het zal de daemon zelf starten.

Het uiterlijk en de functionaliteit van de desktopclient zijn precies hetzelfde als de webinterface, maar deze keer draait het als een stand-alone applicatie.

De IPFS-desktopclient

Een extra functie die de applicatie biedt, is een app-indicator in het systeemvak.

Dit geeft u snel toegang tot een menu met opties en een stoplichtindicator van de status van uw node. De indicator is groen voor normaal bedrijf, rood voor een fout en geel voor opstarten.

Het IPFS app-indicatormenu

Wat volgt?

Niets zal plotseling het bestaande, gecentraliseerde web vervangen, maar na verloop van tijd zullen dingen evolueren. Misschien is de IPFS een glimp van waar het in zou kunnen evolueren.

Nieuwste artikelen

Gerelateerde artikelen