title: GNUnet (protocollo)
text: # GNUnet (protocollo)
  
  Il protocollo GNUnet è un protocollo modulare pensato per l'omonima rete peer-to-peer anonima e decentralizzata. È utilizzato principalmente dal framework multipiattaforma GNUnet.
  
  Il protocollo GNUnet è accessibile tramite un Uniform Resource Identifier attualmente non approvato dallo IANA, la cui forma è cambiata diverse volte durante la storia del progetto di cui fa parte. La notazione a cui si fa riferimento qui è quella adottata ufficialmente a partire dalla versione 0.7.0 del framework GNUnet.
  
  La porta di comunicazione, ufficialmente registrata presso lo IANA, è la numero 2086 (tcp + udp).
  
  Gli URI del protocollo GNUnet consistono principalmente in due sezioni: il modulo e l'identificatore del modulo (id). Un tipico URI GNUnet presenta la seguente struttura gnunet://modulo/identificatore, dove modulo è il nome del modulo e identificatore è la stringa specifica del modulo.
  
  ## Il modulo ECRS
  
  I file condivisi tramite il protocollo GNUnet sono codificati in ECRS (An Encoding for Censorship-Resistant Sharing). L'identificatore del modulo ecrs consiste in una delle seguenti istruzioni: chk, sks, ksk o loc seguita da uno slash e da un valore specifico per ciascuna categoria.
  
  * chk identifica file, tipicamente: gnunet://ecrs/chk/[file hash, utilizzando 0-9A-V].[query hash, utilizzando 0-9A-V].[dimensione in byte]
  * sks identifica file all'interno dei namespaces, tipicamente: gnunet://ecrs/sks/NAMESPACE/IDENTIFICATORE
  * ksk identifica richieste di ricerca, tipicamente: gnunet://ecrs/ksk/KEYWORD[+KEYWORD]*
  * loc identifica un dato su una specifica macchina, tipicamente: gnunet://ecrs/loc/PEER/RICHIESTA.TIPO.KEYWORD.DIMENSIONE
  
  ### Esempi
  
  Un tipico URI di file-sharing per GNUnet che punta a una specifica copia del testo della licenza GPL:
  
  Un'altra tipologia di URI di file-sharing per GNUnet che punta più genericamente a tutti i risultati della ricerca della parola chiave "gpl":
  
  