Beaker, un navegador P2P para sitios descentralizados
Después de dos años de desarrollo, se anunció el primer lanzamiento significativo del navegador web experimental «Beaker 1.0», que destaca por su soporte integrado para el protocolo de comunicaciones Hypercore P2P.
Con este protocolo, se forma una red de entrega de contenido descentralizada, cuyos nodos son usuarios de navegadores. Dicha red permite alojar aplicaciones web que no requieren servidores.
El código del proyecto está escrito en JavaScript utilizando el motor Chromium y la plataforma Electron y se distribuye bajo la licencia MIT.
El protocolo Hypercore combina tecnologías blockchain y BitTorrent. Al igual que con BitTorrent, los visitantes descargan archivos del sitio y comienzan a participar en su distribución.
La principal diferencia con Hypercore es la capacidad de modificar archivos sin crear una nueva URL.
Para crear su sitio, solo necesita preparar el código HTML/JavaScript necesario, crear un entorno Hyperdrive y colocar un enlace a este entorno, al que se accede mediante la URL «hyper://».
Cuando abra este enlace, el contenido se descargará directamente del sistema del autor, después de lo cual el cargador podrá participar en su distribución a otros usuarios.
El protocolo Hypercore se basa en un registro que está disponible solo para agregar nuevos datos y no permite cambios en la información ya agregada.
Dichos registros se pueden distribuir rápidamente entre los participantes de la red en modo P2P, mientras que cada nodo puede descargar solo los fragmentos de interés en el registro y comenzar a participar en su distribución.
La integridad del registro se verifica mediante la estructura «Merkle Tree», en la que cada rama verifica todas las ramas y nodos subyacentes, gracias al hash conjunto (en forma de árbol) mediante la función hash BLAKE2b-256.
Teniendo el hash final, el usuario puede verificar la corrección de todo el historial de operaciones, así como la corrección de los estados pasados de la base de datos.
Para crear sitios, el navegador tiene un editor de código integrado, herramientas para sincronizar directorios con el contenido del sitio, una terminal web (una consola de comandos para navegar por el entorno Hyperdrive) y una API especial para leer y descargar archivos.
Admite vincular varios entornos Hyperdrive, fusionar entornos, crear bifurcaciones, participar en la distribución de los entornos de otros usuarios.
Además de la creación de sitios descentralizados, áreas de aplicación de Beaker como el intercambio de datos privados (el acceso al recurso solo se puede obtener mediante un enlace informado en forma de hash), la organización de la capacitación en programación web (en el proceso de aprendizaje, puede limitarse a un navegador sin sistemas de servidor y herramientas adicionales), simplificando la interacción en los equipos de desarrollo web y probando prototipos de sitios (puede crear una bifurcación del sitio, realizar un cambio y compartir el resultado).
¿Como instalar Beaker 1.0 en Linux?
Para quienes estén interesados en poder instalar este navegador web en su distro, deben saber que el paquete para Linux está construido de momento en formato AppImage o para construirlo desde su código fuente.
En el primero de los dos casos, debemos descargar cualquier de los paquetes actuales. Esto lo hacemos desde el siguiente enlace.
Para el caso de Appimage como ejemplo tomaré la última versión 1.0 en estos momentos, está la descargamos con:
wget https://github.com/beakerbrowser/beaker/releases/download/1.0.0/Beaker.Browser-1.0.0.AppImage
Damos permisos de ejecución con:
sudo chmod +x Beaker.Browser-1.0.0.AppImage
Y ejecutamos con doble clic sobre el archivo o desde la terminal con:
./Beaker.Browser-1.0.0.AppImage
Ahora, para los que estén interesados en construir el navegador desde el código fuente, deben de contar con ibtool, m4, autoconf y automake.
Para instalar estas herramientas, por ejemplo en Debian, Ubuntu y cualquier derivado de estos:
sudo apt-get install libtool m4 make g ++ autoconf
En el caso de Fedora y derivados:
sudo dnf install libtool m4 make gcc-c ++ libXScrnSaver
Y finalmente para realizar la compilación del navegador, basta con teclear los siguientes comandos:
git clone https://github.com/beakerbrowser/beaker.git cd beaker / scripts npm install npm run rebuild npm start
Si quieres conocer más al respecto, puedes consultar el siguiente enlace.