GNUnet: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
→‎Social API: solo grammatica
meno enfasi
Riga 21:
}}
 
'''GNUnet''' è un [[framework]] [[software libero|libero]] e [[open source]] per le [[rete (informatica)|reti]] [[peer-to-peer]]. AttualmenteEsso offre il protocollo [[peer-to-peer anonimo]] più sicuro in circolazione e la politica di sicurezza del [[GNUnet (protocollo)|suo protocollo]] sfioraprevede quasiun lalivello di sicurezza [[paranoia]]denominato "paranoico".<ref>{{en}} [https://gnunet.org/compare GNUnet comparato ad altre applicazioni di file-sharing]</ref><ref>"Paranoico" è effettivamente il nome del massimo livello di sicurezza selezionabile nel protocollo.</ref>
 
Il software è scritto interamente in [[C (linguaggio di programmazione)|C]] (il che lo rende enormemente performante), ma sono in corso tentativi di clonarne una versione in [[Java (linguaggio di programmazione)|Java]] per offrirneincrementarne la massima portabilità. Il framework GNUnet, nella versione scritta in [[C (linguaggio di programmazione)|C]], attualmente funziona su [[GNU/Linux]]<ref>{{en}} [https://wiki.archlinux.org/index.php/GNUnet GNUnet - ArchWiki]</ref>, [[Berkeley Software Distribution|BSD]]<ref>{{en}} [http://www.freebsdsoftware.org/net/gnunet.html FreeBSD.net: gnunet]</ref>, [[Mac OS X]]<ref>{{en}} [https://gnunet.org/installation_osx Build instructions for Microsoft Windows Platforms - GNUNet]</ref>, [[Solaris (sistema operativo)|Solaris]] e [[Microsoft Windows]]<ref>{{en}} [https://gnunet.org/w32-build Build instructions for Microsoft Windows Platforms - GNUNet]</ref>. La versione Java è invece per definizione compatibile con ''qualsiasi'' sistema operativo, purché dotato di [[Macchina virtuale Java]].
 
GNUnet è parte ufficiale del [[Progetto GNU]].
Riga 31:
== Storia ==
 
Il progetto nasce nel 2001, col principale obiettivo di creare una rete di [[file-sharing]] completamente [[peer-to-peer anonimo|anonima]], resistente alla [[censura]] e che consentisse agli utenti di pubblicare e recuperare informazioni di ogni tipo. Si è trattato sin dall'inizio di un progetto molto complesso e ambizioso poiché intendeva riscrivere ''interamente'' tutti i passaggi [[client]]-[[server]] su cui attualmente si basa quello che comunemente viene chiamato [[Internet]].<ref>{{en}} [https://gnunet.org/videoghm2013 Video: The GNU Name System and the Future of Social Networking with GNUnet] <nowiki>[</nowiki> [https://gnunet.org/sites/default/files/grothoff_ghm2013gns.webm podcast] | [https://gnunet.org/sites/default/files/grothoff_ghm2013gns.pdf slides] <nowiki>]</nowiki></ref> ciò ha portato alla necessità di scrivere una notevole mole di codice. Lo sviluppo avviene perlopiù in ambito universitario e accademico, il che se da una parte non ne rende l'evoluzione particolarmente rapida, dall'altra la rende estremamente rigorosa negli obiettivi, nella filosofia e nella documentazione.
 
Da bravi docenti universitari, gliGli sviluppatori hanno sempre avuto particolarmente a cuore l'aspetto didattico e divulgativo, tanto che per ogni manciata di codice aggiunta ne viene subito divulgata la documentazione, in pieno spirito [[progetto GNU|GNU]]. La sezione ''Developer Handbook'' del sito del progetto è tra i più approfonditi manuali di programmazione riguardanti un singolo progetto fortemente in fase di sviluppo che siano mai stati scritti.<ref>{{en}} [https://gnunet.org/developerintroduction Developer Handbook]</ref><ref>{{en}} [https://gnunet.org/svn/gnunet/doc/gnunet-c-tutorial.pdf GNUnet C Tutorial]</ref> Ciò indubbiamente si deve anche al fatto che tra le speranze dei programmatori c'è quella di rendere virale non solo l'''utilizzo'' di GNUnet, ma anche il suo stesso ''sviluppo'', concepito a tale scopo [[Programmazione modulare|in forma modulare]] sin dal principio. Chiunque sposi la filosofia del progetto e mastichi un po' di [[C_(linguaggio_di_programmazione)|linguaggio C]] è infatti fortemente incoraggiato ad estenderne il più possibile le funzionalità creando nuovi moduli o lavorando su quelli già esistenti.<ref>{{en}} [https://gnunet.org/philosophy GNUnet Philosophy]</ref>
La mole di codice che negli anni è stata scritta è davvero notevole. La grossa parte dello sviluppo di GNUnet avviene perlopiù in ambito universitario e accademico, il che se da una parte non ne rende l'evoluzione particolarmente rapida, dall'altra la rende estremamente rigorosa negli obiettivi, nella filosofia e nella documentazione.
 
Da bravi docenti universitari, gli sviluppatori hanno sempre avuto particolarmente a cuore l'aspetto didattico e divulgativo, tanto che per ogni manciata di codice aggiunta ne viene subito divulgata la documentazione, in pieno spirito [[progetto GNU|GNU]]. La sezione ''Developer Handbook'' del sito del progetto è tra i più approfonditi manuali di programmazione riguardanti un singolo progetto fortemente in fase di sviluppo che siano mai stati scritti.<ref>{{en}} [https://gnunet.org/developerintroduction Developer Handbook]</ref><ref>{{en}} [https://gnunet.org/svn/gnunet/doc/gnunet-c-tutorial.pdf GNUnet C Tutorial]</ref> Ciò indubbiamente si deve anche al fatto che tra le speranze dei programmatori c'è quella di rendere virale non solo l'''utilizzo'' di GNUnet, ma anche il suo stesso ''sviluppo'', concepito a tale scopo [[Programmazione modulare|in forma modulare]] sin dal principio. Chiunque sposi la filosofia del progetto e mastichi un po' di [[C_(linguaggio_di_programmazione)|linguaggio C]] è infatti fortemente incoraggiato ad estenderne il più possibile le funzionalità creando nuovi moduli o lavorando su quelli già esistenti.<ref>{{en}} [https://gnunet.org/philosophy GNUnet Philosophy]</ref>
 
== Anonimato ==
 
La rete è rigorosamente decentralizzata (non esistono server privilegiati in senso assoluto). Ogni scambio di informazione è criptatacriptato "al volo" con alto livello di sicurezza e l'utente non ha modo di conoscere l'IP del nodo con cui sta condividendo informazioni, perché il tutto viene moderato da un nodo intermedio. Il nodo intermedio a sua volta può conoscere gli IP dei due nodi che si stanno scambiando informazioni (e questi il suo), ma non può scoprire assolutamente nulla di ''cosa'' si stiano effettivamente scambiando, perché solo essi conoscono le chiavi per decriptarne il contenuto. Insomma in una [[GNUnet (protocollo)|rete GNUnet]] è possibile conoscere solamente '''o''' l'IP di un nodo '''o''' i dati che questo condivide. Mai le due cose insieme. L'unica informazione che un eventuale "avversario" può estrapolare da un utente è che questi è connesso alla rete. Nient'altro.
 
== File sharing ==