# Hyphanet

Hyphanet (hasta mediados de 2023 Freenet) es una red de distribución de información descentralizada y resistente a la censura diseñada originalmente por Ian Clarke. Es una red creada utilizando software de código abierto que posibilita el intercambio de archivos de manera anónima. También permite la navegación y la creación de freesites (páginas web accesibles solo desde Hyphanet), ofreciendo así un espacio similar al internet profundo. Esta plataforma brinda seguridad contra la censura y la posibilidad de persecución, especialmente en regiones donde estas preocupaciones son relevantes. Freenet es una red descentralizada diseñada para proporcionar un acceso seguro, privado y sin censura a Internet.
Hyphanet trabaja por medio de la puesta en común del ancho de banda y el espacio de almacenamiento de los ordenadores que componen la red (con los mismos principios que una cadena de bloques), permitiendo a sus usuarios publicar o recuperar distintos tipos de información anónimamente. Permite a los usuarios compartir y acceder a información sin revelar su identidad o ubicación, lo que la hace atractiva para aquellos que buscan privacidad y seguridad en línea.
Además, Hyphanet utiliza un sistema de almacenamiento en caché distribuido que permite a los usuarios acceder a la información incluso si el servidor original está desconectado.
Hyphanet ha estado bajo continuo desarrollo desde el año 2000, y aunque todavía no ha sido liberada una posible versión 1.0, las versiones actuales son completamente funcionales. Se está trabajando en un prototipo inicial, pero los usuarios pueden experimentar creando una aplicación descentralizada para probarla en su propio ordenador.
En la actualidad, se puede realizar la descarga en sus repositorios oficiales, y es compatible con Google Chrome, actuando en este cómo dentro de una ventana de incógnito.

## Motivación del proyecto

En las naciones en las que las comunicaciones pasan por un proceso de censura, suele existir un grupo, oficina o ministerio oficial ocupado de ese control. Incluso en los casos en las que la censura no está institucionalizada por el estado, es posible que diferentes grupos de personas tengan pensamientos distintos sobre lo que es o no ofensivo, aceptable o peligroso.
Freenet también busca proteger la privacidad de los usuarios, evitando que terceros puedan espiar sus comunicaciones o rastrear sus actividades en línea.
Freenet es una red que elimina la posibilidad de que un grupo imponga sus creencias o valores sobre otros. En esencia, no debe permitírsele a nadie decidir lo que es aceptable para otros. Se incentiva la tolerancia de los valores de cada uno y en caso de fallar esto se solicita al usuario que haga ojos ciegos al contenido que se opone a su propio punto de vista.

## Diseño técnico

El objetivo de Hyphanet es almacenar documentos y permitir su acceso posterior por medio de una clave asociada, impidiendo que sea posible la censura de los documentos y ofreciendo anonimato tanto al usuario que publica el documento como al que lo descarga. Para eso, la red Freenet se diseñó como una red P2P no estructurada de nodos no jerarquizados que se transmiten mensajes y documentos entre ellos. Los nodos pueden funcionar como nodos finales, desde donde empiezan las búsquedas de documentos y se presentan al usuario, o como nodos intermedios de enrutamento.
Cada nodo aloja documentos asociados a claves y una tabla de enrutamiento que asocia nodos con un historial de su desempeño para adquirir diferentes claves.
Para encontrar un documento en la red conocida una clave que lo describe, un usuario envía un mensaje a un nodo solicitando el documento y proveyéndolo con la clave. Si el documento no se encuentra en la base de datos local, el nodo selecciona a un vecino de su tabla de enrutamiento que cree que será capaz de localizar la clave más rápidamente y le pasa la petición, recordando quién envió el mensaje para poder deshacer después el camino. El nodo al que se pasó la petición repite el proceso hasta que se encuentra un nodo que guarda el documento asociado a la clave o la petición pasa por un número máximo de nodos, conocido como el valor de tiempo de vida. Ninguno de los nodos intermedios sabe si el nodo anterior de la cadena fue el originador de la petición o un simple enrutador. Al deshacer el camino, ninguno de los nodos puede saber si el nodo siguiente es el que efectivamente tenía el documento o era otro enrutador. De esta manera, se asegura el anonimato tanto del usuario que realizó la petición como del usuario que la respondió.
Cuando se encuentra el documento correspondiente a la clave buscada, se envía una respuesta al originador de la petición a través de todos los nodos intermedios que recorrió el mensaje de búsqueda. Los nodos intermedios pueden elegir mantener una copia temporal del documento en el camino. Además de ahorrar tiempo y ancho de banda en peticiones futuras del mismo documento, esta copia ayuda a impedir la censura del documento, ya que no existe un «nodo fuente», y dificulta adivinar qué usuario publicó originalmente el documento.
Esencialmente el mismo proceso de rastreo de camino se utiliza para insertar un documento en la red: se envía una petición para un archivo inexistente y una vez que falla el documento es enviado por la misma ruta que siguió la petición. Esto asegura que los documentos son insertados en la red en el mismo lugar en que las peticiones lo buscarán. Si la petición inicial no falla, entonces el documento ya existe y la inserción «colisiona».
Inicialmente ningún nodo posee información acerca del desempeño de los otros nodos que conoce. Esto significa que el enrutamiento inicial de peticiones sea al azar y que las redes Hyphanet recién creadas distribuyan la información al azar entre sus nodos.

## Fproxy

Es la interfaz web de Freenet que puede ser accedida mediante el uso de cualquier navegador web. Desde aquí podremos acceder a Freesites, manejar nuestras conexiones con otros nodos, algunas estadísticas sobre el funcionamiento del nodo, revisar la lista de descargas y envíos, como así también, ver y modificar la configuración de nuestro nodo.
El puerto estándar de Fproxy es el 8888 al cual se puede acceder sólo desde nuestro equipo apuntando nuestro navegador a «http://127.0.0.1:8888/» o «http://localhost:8888/». Si queremos que otras personas de nuestra red local tengan acceso a nuestro nodo (ya sea para ver Freesites o para administrarlo) hay que cambiar los campos «IP address to bind to» y «Allowed Hosts» en la página de configuración.
Si un archivo al que se está intentando acceder desde un Freesite es muy grande, o el navegador no lo reconoce para abrirlo, se pregunta al usuario si quiere agregarlo a la cola de descargas. Desde la sección «Queue» de Fproxy se pueden administrar descargas y subidas de archivos.

## Freesites

Los freesites son el equivalente de un sitio web pero en Freenet y pueden ser vistos con cualquier navegador web. Existen Freesites dedicados a categorizar, ordenar y listar otros sitios, a estos se les llama índices. Junto con el instalador de Freenet se distribuye la aplicación JSite para crear, insertar y administrar Freesites.
En la actualidad, también se pueden crear blogs, que son de mayor y fácil acceso para todas las personas en el mundo.

## Herramientas útiles
### Frost

Frost es un sistema de foros de mensajes para Freenet bastante popular y bien mantenido. Usa el concepto de red de confianza así como claves públicas y privadas para evitar el exceso de spam. Es muy popular en el área del intercambio de ficheros (junto con Thaw) y es la aplicación de mensajería más ampliamente usada en Freenet. Durante mucho tiempo los usuarios prefirieron el Freenet Message Board (FMB), pero éste ha caído en desuso.
Frost está escrito en Java y por tanto funciona en cualquier plataforma que tenga disponible una JVM (Windows, *nix, Mac, etc.). Está traducido a varios idiomas incluido el español.
En la versión del 23 de diciembre de 2006 se incorporó a Frost la posibilidad de ver los mensajes en 'hilos' y la integración del gestor de descargas con el sistema de mensajería.

### Thaw

Thaw es un gestor de descargas e intercambio de archivos para Freenet. Se pueden subir o bajar archivos y compartir archivos mediante índices (file indexes). Este software fue desarrollado para el Google Summer of Code (SOC) en 2006 y su desarrollo continúa siendo activo.

## Herramientas similares

* Entropy
* GNUnet
* I2P
* Winny
* Share (P2P) Software P2P de origen japonés. El sucesor de Winny
* Perfect Dark (P2P) El sucesor de Share (P2P)
* Tor