Cjdns
# Cjdns

Cjdns es un protocolo de comunicaciones y un sistema de reglas digitales para intercambio de mensaje entre ordenadores. La filosofía de cjdns es que las redes tienen que ser fáciles de instalar, los protocolos tienen que ser fácilmente escalables y la seguridad tendría que ser ubicua.

Cjdns implementa una red IPv6 cifrada que utiliza criptografía asimétrica para la asignación de direcciones de red y una tabla de hash distribuido para el enrutamiento En vez de dejar que otros ordenadores se conectan a otro a través de una IP compartida que cualquiera puede utilizar, cjdns solo deja que dos ordenadores se comuniquen después de que se hayan verificado criptográficamente, lo que significa que no es posible que alguien pueda interceptar el tráfico.

## Interfaz

Cjdns se comunica con otros programas a través de un dispositivo TUN que el ordenador ve como una conexión de red normal. Cualquier programa que soporte IPv6 puede comunicarse en una red basada en cjdns sin ninguna modificación.

### Generación de direcciones

Las direcciones de red de cjdns son los primeros 16 bytes (128 bits) del doble SHA-512 de la clave pública. Todas las direcciones tienen que empezar con el byte 0xFC, el cual en IPv6 está reservado para direcciones privadas (para evitar colisiones con direcciones de Internet).

La dirección es generada cuándo un nodo es instalado, a través de un proceso de fuerza bruta (las claves son repetidamente generadas hasta que el resultado de doble SHA-512 empiece con 0xFC).

## Distribución

Cjdns emplea un modelo de rolling-release porque los protocolos y los algoritmos son invenciones nuevas y la manera en la que se comportan en el mundo real no ha sido comprendida del todo. Los usuarios pueden clonar el repositorio git que contiene el código de fuente y compilarlo.

Cjdns funciona en la mayoría de los sistemas parecidos a UNIX, como Linux (Debian, Ubuntu, etc.), Mac OS X, Illumos y FreeBSD, Una gran variedad de arquitecturas, como x86, x86-64, PowerPC y MIPS. Esto le permite a los usuarios utilizar hardware viejo o nuevo, haciendo más fácil empezar con cjdns.

