rilascio di un file system decentralizzato (InterPlanetary File System), che costituisce un archivio di file globalmente versionato, distribuito sotto forma di rete P2P, formata dai sistemi dei partecipanti. IPFS combina idee giΓ realizzate in sistemi come Git, BitTorrent, Kademlia, SFS e Web, e ricorda un singolo Β«sciameΒ» BitTorrent (i peer che partecipano alla condivisione), che scambiano oggetti Git. IPFS si distingue per l'indirizzamento basato sul contenuto, piuttosto che sulla posizione di archiviazione e sui nomi arbitrari. Il codice della sua implementazione di riferimento Γ¨ scritto in Go e sotto le licenze Apache 2.0 e MIT.
ΠΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΡ Π½Π°Π΄ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ UDP, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ TLS/SSL. Π IPFS ΡΠΎΠΊΠ΅Ρ Π΄Π»Ρ ΠΏΡΠΈΡΠΌΠ° UDP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ Π°Π΄ΡΠ΅ΡΠ΅ ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΏΠΎΡΡΠ΅, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π½Π° Π±Π°Π·Π΅ TCP. QUIC ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ Π½ΠΎΠ²ΡΠΌ ΡΠ·Π»Π°ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ QUIC ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΊΠ°Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ TCP.
ΠΡΠΎΡΡΠΌ Π²Π°ΠΆΠ½ΡΠΌ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ°Π»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° , sul protocollo ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ
, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ P2P-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΈ Π·Π°ΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ.
NOISE ΠΏΡΠΈΡΡΠ» Π½Π° ΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΡ , Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ ΠΏΠΎΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ TLS 1.3. NOISE Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ°Π½ΡΠΏΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΡΡΠ°Π½ΠΈΡ Β«404 Not FoundΒ» ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Base36, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½ Π΄Π»Ρ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎ-ΡΠΈΡΡΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΡΠ°Π·Π»ΠΈΡΠΈΠΉ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Base32 ΠΊΠ»ΡΡΠΈ Ed25519 IPNS Π½Π° Π΄Π²Π° Π±Π°ΠΉΡΠ° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π»ΠΈΠΌΠΈΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°, Π° ΠΏΡΠΈ Base36 Π²ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π»ΠΈΠΌΠΈΡ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ
««, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ·Π»ΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅Π»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Β«Π»ΠΈΠΏΠΊΠΈΡ
Β» ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠΈΡΠ°ΠΌΠΈ.
Ricordiamo che in IPFS il link per accedere a un file Γ¨ direttamente legato al suo contenuto e include un hash crittografico del contenuto stesso. L'indirizzo di un file non puΓ² essere rinominato arbitrariamente; puΓ² cambiare solo dopo una modifica del contenuto. Allo stesso modo, non Γ¨ possibile modificare un file senza cambiare l'indirizzo (la versione precedente rimarrΓ all'indirizzo originale, mentre la nuova sarΓ accessibile tramite un altro indirizzo, poichΓ© l'hash del contenuto del file cambierΓ ). Considerando che l'identificatore del file cambia ad ogni modifica, per evitare di dover trasmettere continuamente nuovi link, esistono servizi che forniscono indirizzi permanenti tenendo conto delle diverse versioni del file (), o per associare un alias in modo simile ai tradizionali FS e DNS ( (Mutable File System) e ).
Analogamente a BitTorrent, i dati vengono archiviati direttamente sui sistemi degli utenti che scambiano informazioni in modalitΓ P2P, senza dipendere da nodi centralizzati. Quando Γ¨ necessario recuperare un file con contenuti specifici, il sistema individua gli utenti che possiedono quel file e lo trasferisce dalle loro macchine in diverse parti attraverso piΓΉ flussi. Una volta scaricato il file sul proprio sistema, l'utente diventa automaticamente uno dei punti per la sua distribuzione. Per identificare gli utenti della rete nei nodi in cui Γ¨ presente il contenuto desiderato, tabella hash distribuita (). Per accedere al file system globale, IPFS puΓ² utilizzare il protocollo HTTP oppure montare un file system virtuale /ipfs tramite il modulo FUSE.
IPFS aiuta a risolvere problemi come l'affidabilitΓ dello storage (se lo storage originale va offline, il file puΓ² essere scaricato dai sistemi di altri utenti), la contro misura alla censura dei contenuti (per bloccare il contenuto, sarebbe necessario bloccate tutti i sistemi degli utenti che possiedono una copia dei dati) e l'organizzazione dell'accesso in assenza di una connessione diretta a Internet o in presenza di bassa qualitΓ di connessione (i dati possono essere scaricati attraverso i partecipanti piΓΉ vicini nella rete locale). Oltre a memorizzare file e scambiare dati, IPFS puΓ² essere utilizzato come base per creare nuovi servizi, ad esempio per organizzare il funzionamento di siti web non legati ai server, o per creare sistemi distribuiti. .
Fonte: opennet.ru
