Mercurio
Tenga en cuenta que este repositorio contiene el backend de infraestructura, que consiste en servicios de fondo y herramientas de línea de comandos. Para una buena experiencia de usuario, puede usar un frontend web integrado en Node.js en la parte superior del backend o los binarios de aplicación independientes basados en electrones que agrupan tanto el backend como el interfaz web.
Internet fue diseñado para proporcionar la comunicación de pares abiertos y distribuidos a los pares, pero su teléfono y PC ya no tienen eso, solo servidores en los centros de datos. Estás cerrado detrás de los ISP y los enrutadores caseros (por ejemplo, NAT), por lo que necesitas intermediarios para comunicarse. Esos intermediarios lo vinculan con un bloqueo de proveedores pesados: no puede cambiar el proveedor de servicios (considere el correo electrónico, las redes sociales, el almacenamiento en línea, etc.) sin sacrificar su antigua identidad y datos. El más grande de ellos se gana la vida al gravar todos sus pagos en sus tiendas, espiando constantemente a usted por vender anuncios específicos y sus datos a los socios y generalmente lo obstaculiza o censura por agendas políticas o cualquier otra razón.
Mercurio tiene como objetivo protegerlo de todo esto. Su identidad se basa en las claves criptográficas propiedad de usted solo. Estas claves son desechables, por lo que puede dividir su huella digital en tantos perfiles no relacionados como sea necesario, por ejemplo, para el trabajo, la familia y el pasatiempo. El almacenamiento y la comunicación de datos se organizan en torno a dichos perfiles que puede mantener incluso cambiando el proveedor o aplicaciones de servicios. Sus datos están encriptados hasta que decida compartir una parte de ellos con un compañero específico o el público en general. La red está realmente distribuida y basada en la comunicación de pares a pares para pares para que esté a salvo. Puede agregar su nodo completo a la red bajo su propio control y usar su dispositivo final como un cliente ligero de un nodo en el que confía. Al final, puede deshacerse de intermediarios o intermediarios y conectar directamente a las personas, negocios con clientes o incluso máquinas.
Mercurio es algo similar a una red móvil celular, proporciona características similares a SMS, llamadas, conexiones de datos, notificaciones push, etc., pero
El modelo de identidad, datos y relaciones de Mercury tiene la misma visión que W3C ID distribuidas y credenciales/afirmaciones verificables W3C, pero es radicalmente más simple sin llevar cargas excesivas de soporte de START WEBSTACK. La capa de almacenamiento de Mercury se basa en los principios de red de contenido de contenido de manera similar a EG Sidetree.
Lo más probable es que esté interesado en los binarios de demostración de la interfaz de usuario preparados para demostrar qué experiencia de IOP de experiencia de usuario para el lado del cliente. De lo contrario (es decir, implementar el backend de la red) aún tiene que compilar e implementar la base de código para usted. Hemos preparado los pasos de instalación en un sistema basado en Debian a continuación, pero no debería diferir demasiado en otras plataformas.
Puede instalar Rust como un paquete de sistema operativo prebuilado, por ejemplo, ejecutando sudo apt install rustc ... en Ubuntu. Sin embargo, para el resultado más fácil y conveniente, sugerimos las siguientes instrucciones en el sitio de Rustup, por ejemplo, ejecutando curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh en su lugar.
Primero necesitará GIT y algunas dependencias instaladas.
$ sudo apt install git g++ capnprotoEntonces tendrá que descargar y compilar las fuentes.
$ git clone https://github.com/Internet-of-People/mercury-rust.git
$ cd mercury-rust
$ cargo buildMercury es una versión rediseñada y avanzada del servidor de perfil de PIO y la IOP Connect, que fueron un paso en la dirección correcta, pero carecían de varias características de nuestra visión, fueron creados por desarrolladores que dejaron la comunidad y eran difíciles de arreglar y mantener.
Tenga en cuenta que este proyecto todavía está en una fase temprana y experimental. Abrimos el código fuente para echar un vistazo a los desarrolladores interesados en desarrollar Mercurio mismo o construir aplicaciones distribuidas además de él. Nos gustaría tener comentarios para aprender problemas en las primeras fases, las prioridades de las características faltantes y sus requisitos en los que aún no hemos pensado.
Pensamos tener una implementación funcional inicial de la arquitectura. Todavía hay muchos componentes importantes que se agregarán, los existentes pueden cambiarse o rediseñarse y aún faltan documentación.
Características experimentales ya disponibles:
Los bordes ásperos del servidor y el cliente existentes son
Las piezas importantes que faltan son
Los directorios/cajas del proyecto son
keyvault proporciona una generación de claves determinista jerárquica para múltiples suites de cifrado diferentes y serialización unificada de componentes criptográficos (claves públicas y secretas, IDS, firmas, etc.).did Alinea nuestra implementación keyvault con identidades descentralizadas de W3C?claim implementa reclamos verificables como una base para certificados, relaciones sociales y datos de usuario compartibles en generalprometheus proporciona una biblioteca de backend para manejar sus identidades y reclamos y un binario de demonio para exponer las llamadas de la biblioteca a GUI externosprometheus-cli implementa una herramienta de línea de comandos como la interfaz de usuario más simple para este demoniohome-protocol contiene los conceptos básicos para la comunicación de la red, definiendo los servicios proporcionados por los nodos domésticos que operan la red y cómo los clientes pueden usar estos servicios. File protocol/mercury.capnp describe un protocolo de red simple con Cap'N'Proto, mientras que mercury-capnp/mod.rs contiene implementaciones de clientes y servidores para Rust.home-node implementa el lado del servidor al proporcionar los servicios del protocolo a los clientes.connect implementa el lado del cliente del protocolo. Esto incluye una API de administración para administrar sus perfiles y un SDK DAPP que proporciona bloques de construcción comunes para crear aplicaciones distribuidas.examples/TheButton es una aplicación distribuida de muestra construida en el SDK DAPPtest y prometheus-test contienen pruebas de integración entre diferentes cajas.storage contiene experimentación en una capa de almacenamiento genérica utilizando "indexación" basada en el hash que podría usar IPFS, BitTorrent, StoreJ, etc. como un complemento simple.forgetfulfuse contiene experimentos con un sistema de archivos que se puede legible solo temporalmente, planeado para ser utilizado para proteger datos confidenciales, por ejemplo, sus clavesCopyright © 2017-2019, Decentralized Society Foundation, PA