Hoe je stopt met afhankelijk zijn van servers en overstapt naar IPFS
Stel je voor dat je een cool project of documentatie hebt geüpload, en een maand later is de link dood. Of de server waar je content werd gehost, ging plotseling offline. In het web dat we gewend zijn (HTTP), zoeken we naar data op adres: we gaan naar een specifieke server en hopen dat het bestand er nog is. IPFS biedt aan om dit schema op zijn kop te zetten.
Wat is de kerngedachte
IPFS (InterPlanetary File System) is niet zomaar een andere cloudopslag. Het is een protocol dat de manier verandert waarop we naar bestanden zoeken. In plaats van te vragen "welke server heeft dit PDF?", vragen we het netwerk "wie heeft het bestand met deze hash?".
Wanneer je iets uploadt naar IPFS, wordt het bestand opgesplitst in blokken, en elk krijgt een unieke cryptografische identifier (CID). Als twee mensen hetzelfde bestand uploaden, zal het dezelfde CID hebben. Dit lost automatisch het duplicaatprobleem op en stelt je in staat om delen van een bestand van meerdere nodes tegelijk te downloaden, zoals het goede oude BitTorrent.
Hoe dit in de praktijk werkt
Het belangrijkste kenmerk hier is content-adressering. Op het reguliere internet ziet een link er zo uit: https://mysite.com/cat.jpg. Als ik de kat vervang door een hond, blijft de link hetzelfde. In IPFS is de link gekoppeld aan de content zelf. Als het bestand ook maar één byte verandert, zal het adres ook veranderen.
Dit geeft verschillende coole voordelen:
- Content kan niet stilzwijgend worden vervangen.
- Als een bestand populair is, wordt het gedistribueerd vanaf honderden nodes, wat je hoofserver ontlast.
- Data leeft zolang er minstens één netwerkdeelnemer het nodig heeft.
Trouwens, het project bestaat al sinds 2014. In de loop der tijd is er een hele stack van technologieën omheen gegroeid, zoals IPLD voor het werken met datastructuren en libp2p voor netwerkverbindingen.
Waar te beginnen met ontwikkeling
Als je praktisch met de technologie aan de slag wilt, is de makkelijkste manier om een desktop-app of CLI-client te installeren. Na installatie wordt je computer een volwaardige netwerk-node.
Een bestand aan het netwerk toevoegen vanuit de console ziet er extreem eenvoudig uit:
ipfs add my_photo.jpg
# На выходе получаем CID: QmZtmWQZFB...
Nu kan iedereen ter wereld, die deze hash kent, het bestand van het netwerk opvragen. Als je niet wilt dat gebruikers speciale software installeren, kun je publieke gateways gebruiken. De link ziet er ongeveer zo uit: https://ipfs.io/ipfs/QmZtmWQZFB....
Waar dit echt van pas komt
Ik zie IPFS vaak gebruikt worden voor het hosten van statische sites. Je pusht simpelweg de build van je React- of Vue-app naar IPFS, en voila — je site is gedistribueerd over het netwerk. Geen single point of failure, geen afhankelijkheid van een specifieke hostingprovider.
Een ander gebruik is het opslaan van metadata voor NFT's of andere digitale assets. Afbeeldingen opslaan op de blockchain is duur, en een link naar een reguliere server geven is riskant (de server kan offline gaan). IPFS is hier perfect: de link is permanent en onveranderlijk.
Het protocol werkt ook geweldig in gedistribueerde wetenschappelijke computing of archieven, waar het belangrijk is om te garanderen dat data in de loop der tijd niet is gemanipuleerd.
Zijn er nadelen
Natuurlijk. IPFS is geen "gratis USB-stick in de cloud". Als je een bestand hebt toegevoegd en je computer hebt uitgezet, kan het bestand verdwijnen uit het netwerk als niemand anders het heeft gedownload of "gepind". Voor permanente opslag gebruiken mensen meestal speciale services (pinning services) of draaien hun eigen server-node die altijd online is.
Een ander punt is snelheid. Zoeken naar een zeldzaam bestand in een enorm P2P-netwerk kan tijd kosten. Het is niet de instant respons van een gecentraliseerde CDN die we gewend zijn.
Is het de moeite waard om te proberen
Als je een gedecentraliseerde app (dApp) bouwt of gewoon moe bent van links in je projecten die voortdurend doodgaan, is het zeker de moeite waard om IPFS te leren. Het is een krachtige paradigmaverschuiving in hoe we met informatie op het netwerk werken.
De beste plek om te beginnen is de officiële documentatie op docs.ipfs.tech. Het heeft goed geschreven concepten en duidelijke installatietutorials. Het project leeft, met een enorme community en open source onder de MIT-licentie, dus je kunt er eindeloos in duiken.
Gerelateerde projecten