ny udgave af det decentraliserede filsystem (InterPlanetary File System), der skaber et globalt versioneret filopbevaringssystem i form af et P2P-netværk dannet af deltagende systemer. IPFS kombinerer ideer, der tidligere er implementeret i systemer som Git, BitTorrent, Kademlia, SFS og Web, og minder om en samlet 'svermen' af BitTorrent (seeds, der deltager i distributionen), som udveksler Git-objekter. For at få adgang til det globale filsystem kan IPFS bruge HTTP-protokol eller montere et virtuelt filsystem /ipfs ved hjælp af FUSE-modulet. Koden til den referenceimplementering er skrevet i Go og under licenserne Apache 2.0 og MIT. Desuden er der en implementering af IPFS-protokollen i JavaScript, som kan køre i browseren.
Nøgle IPFS er indholdsbaseret adressering, hvor et link til adgang til en fil er direkte relateret til dens indhold (inkluderer en kryptografisk hash af indholdet). IPFS har indbygget support til versionering. Filadressen kan ikke omdøbes vilkårligt; den kan kun ændres, når indholdet ændres. Ligeledes er det umuligt at ændre en fil uden at ændre adressen (den gamle version forbliver på den gamle adresse, mens den nye vil være tilgængelig via en anden adresse, da hashen af filens indhold vil ændre sig). Da filens identifikator ændres ved hver ændring, tilbydes tjenester til at knytte permanente adresser, der tager højde for forskellige versioner af filen (), eller til at fastsætte et alias analogt med traditionelle FS og DNS ( (Mutable File System) og ).
På lignende måde som BitTorrent gemmes dataene direkte på deltagernes systemer, som udveksler informationer i P2P-tilstand, uden binding til centraliserede noder. Når det er nødvendigt at få en fil med bestemt indhold, finder systemet deltagere, der har denne fil og leverer den fra deres systemer i dele i flere strømme. Efter at have downloadet filen til sit system bliver deltagere automatisk en af punkterne for distribution af den. For at bestemme deltagerne i netværket, hvor der er tilgængeligt indhold, distribueret hashtabel ().
I essensen kan IPFS betragtes som en distribueret genfødsel af Web med indholdsbaseret adressering i stedet for placering og vilkårlige navne. Udover filopbevaring og dataudveksling kan IPFS bruges som grundlag for at skabe nye tjenester, for eksempel til at organisere websteder uden binding til servere eller til at skabe distribuerede .
IPFS hjælper med at løse opgaver som pålidelig lagring (hvis den oprindelige lagerplads går ned, kan filen hentes fra systemer fra andre brugere), modstå censur af indhold (for at blokere skal alle brugersystemer med en kopi af dataene blokeres) og organisere adgang i fravær af direkte internetforbindelse eller ved dårlige forbindelseskvaliteter (data kan hentes gennem de nærmeste deltagere i det lokale netværk).
I versionen ydelsen og pålideligheden af systemet er væsentligt forbedret. Det offentlige netværk baseret på IPFS har passeret grænsen på 100.000 noder, og ændringerne i IPFS 0.5 afspejler tilpasningen af protokollen til drift under sådanne forhold. Optimeringerne har primært været fokuseret på at forbedre mekanismerne til indholdsrouting, som er ansvarlige for søgning, annoncering og hentning af data, samt for at øge effektiviteten i implementeringen. (DHT), der leverer information om noder, der har de ønskede data. Koden relateret til DHT er stort set blevet omskrevet, hvilket har betydeligt fremskyndet operationer til at søge indhold og bestemme IPNS-poster.
Særligt er hastigheden for dataindsættelsesoperationer blevet fordoblet, annoncering af nyt indhold til netværket er blevet 2,5 gange hurtigere,
dataudtrækning er blevet 2 til 5 gange hurtigere, og søgning efter indhold er blevet 2 til 6 gange hurtigere.
De omarbejdede routings- og annonceringsmekanismer gjorde det muligt at accelerere netværksdriften med 2-3 gange ved mere effektiv udnyttelse af båndbredden og baggrundsdataoverførsel. Den næste version planlægger at implementere en transport baseret på protokollen QUIC, hvilket vil resultere i endnu større forbedringer i ydelsen ved at reducere forsinkelser.
Arbejdet er blevet accelereret, og systemets pålidelighed IPNS (Inter-Planetary Name System), anvendt til at skabe permanente links til skiftende indhold, er blevet forbedret. Den nye eksperimentelle pubsub-transport har gjort det muligt at fremskynde leveringen af IPNS-poster med 30-40 gange under test i et netværk med tusind noder (til eksperimenterne er der udviklet en særlig ). Ydelsen af lagret er steget cirka to gange.
Badger, der anvendes til interaktion med operativsystemernes FS. Takket være understøttelsen af asynkrone skriveoperationer fungerer Badger nu 25 gange hurtigere end den gamle flatfs-lagsystem. Forbedringen i ydeevnen påvirkede også mekanismen , der bruges til filoverførsel mellem noder.
Blandt de funktionelle forbedringer nævnes anvendelsen af TLS til kryptering af forbindelser mellem klienter og servere. Understøttelse af undomæner i HTTP-gatewayen er blevet tilføjet — udviklere kan placere decentrale applikationer (dapps) og webindhold i isolerede underdomæner, som kan bruges med hash-adresser, IPNS, DNSLink, ENS etc. Et nyt navnerum \/p2p er tilføjet, hvordata relateret til peer-adresser er flyttet (\/ipfs\/peer_id → \/p2p\/peer_id). Understøttelse af " .eth" links baseret på blockchain er blevet tilføjet, hvilket vil udvide anvendelsen af IPFS i distribuerede applikationer.
Startuppen Protocol Labs, der støtter udviklingen af IPFS, udvikler også parallelt projektet , som er en overbygning på IPFS. Mens IPFS giver deltagerne mulighed for at gemme, anmode om og overføre data imellem hinanden, udvikles Filecoin som en blockchain-baseret platform til permanent lagring. Filecoin giver brugerne, der har ubenyttet diskplads, mulighed for at tilbyde det til netværket mod et bestemt gebyr, mens brugere, der har brug for plads til opbevaring, kan købe det. Hvis behovet for plads forsvinder, kan brugeren sælge det. Dermed opstår der et marked for lagerplads, hvis transaktioner foretages i tokens , der dannes gennem minedrift.
Kilde: opennet.ru
