Mercúrio
Observe que este repositório contém o back -end da infraestrutura, consistindo em serviços de fundo e ferramentas de linha de comando. Para uma boa experiência do usuário, você pode usar um front-end da Web embutido no Node.js no topo do back-end ou os binários de aplicativos independentes baseados em elétrons, agrupando o back-end e o front-end da Web.
A Internet foi projetada para fornecer comunicação aberta e distribuída para colegas, mas seu telefone e PC não têm mais isso, apenas servidores nos data centers. Você está fechado atrás de ISPs e roteadores domésticos (por exemplo, NAT), então precisa de intermediários para se comunicar. Esses intermediários o amarram por pesado fornecedor: você não pode alterar o provedor de serviços (considere email, redes sociais, armazenamento on -line etc.) sem sacrificar sua identidade e dados antigos. O maior deles ganha a vida com taxação de todos os seus pagamentos em suas lojas, constantemente espionando você por vender anúncios direcionados e seus dados a parceiros e geralmente impedir ou censurar você por agendas políticas ou por quaisquer outros motivos.
Mercúrio pretende protegê -lo de tudo isso. Sua identidade é construída em chaves criptográficas de propriedade de você sozinhas. Essas chaves são descartáveis, para que você possa dividir sua pegada digital em tantos perfis não relacionados quanto necessário, por exemplo, trabalho, família e hobby. O armazenamento e a comunicação de dados são organizados em torno dos perfis que você pode manter até alterando o provedor de serviços ou aplicativos. Seus dados são criptografados até você decidir compartilhar uma parte dele com um par específico ou o público em geral. A rede é realmente distribuída e construída em comunicação criptografada de pares para colegas, para que você esteja seguro. Você pode adicionar seu nó completo à rede sob seu próprio controle e usar seu dispositivo final como um cliente leve de um nó em quem você confia. No final, você pode se livrar de intermediários ou intermediários e conectar diretamente pessoas, negócios com clientes ou até máquinas.
Mercúrio é um pouco semelhante a uma rede móvel celular, fornece recursos semelhantes a SMS, chamadas, conexões de dados, notificações push etc., mas
O modelo de identidade, dados e relações de Mercury tem a mesma visão que os IDs distribuídos do W3C e as credenciais/reivindicações verificáveis do W3C, mas é radicalmente mais simples sem levar excesso de carga de suporte ao webstack herdado. A camada de armazenamento da Mercury é construída com base nos princípios de rede-com conteúdo de maneira semelhante ao EG Sidetree.
Você provavelmente está interessado nos binários de demonstração da interface do usuário preparados para demonstrar qual experiência do usuário pretende o lado do cliente. Caso contrário (ou seja, implantando o back -end da rede), você ainda precisa compilar e implantar a base de código para si mesmo. Preparamos as etapas de instalação em um sistema baseado em Debian abaixo, mas também não deve diferir muito em outras plataformas.
Você pode instalar o Rust como um pacote pré -construído, por exemplo, executando sudo apt install rustc ... no ubuntu. No entanto, para o resultado mais fácil e mais conveniente, sugerimos seguir as instruções no site da Rustup, por exemplo, em execução curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh em vez disso.
Primeiro, você precisará do Git e algumas dependências instaladas.
$ sudo apt install git g++ capnprotoEntão você terá que baixar e compilar as fontes.
$ git clone https://github.com/Internet-of-People/mercury-rust.git
$ cd mercury-rust
$ cargo buildO Mercury é uma versão reprovada e avançada do servidor de perfil da PIO e da PIO Connect, que foram uma etapa na direção certa, mas não tinham vários recursos da nossa visão, foram criados por desenvolvedores que deixaram a comunidade e eram difíceis de consertar e manter.
Esteja ciente de que este projeto ainda está em uma fase inicial e experimental. Abrimos o código -fonte para dar uma prévia aos desenvolvedores interessados em desenvolver o próprio Mercury ou na construção de aplicativos distribuídos. Gostaríamos de ter feedback para aprender problemas nas primeiras fases, prioridades dos recursos ausentes e seus requisitos em que ainda não pensamos.
Pensamos em ter uma implementação funcional inicial da arquitetura. Ainda existem muitos componentes importantes a serem adicionados, os existentes podem ser alterados ou redesenhados e ainda faltam documentação.
Recursos experimentais já disponíveis:
Arestas ásperas do servidor e cliente existentes são
Ausentes partes importantes são
Diretórios/caixotes do projeto são
keyvault fornece geração de chave determinística hierárquica para várias suítes cifras diferentes e serialização unificada de componentes criptográficos (chaves públicas e secretas, IDs, assinaturas etc.).did nossa implementação keyvault com identidades descentralizadas do W3C.claim reivindicações verificáveis como base para certificados, relações sociais e dados compartilháveis do usuário em geralprometheus fornece uma biblioteca de back -end para lidar com suas identidades e reivindicações e um binário de daemon para expor chamadas de biblioteca a GUIs externasprometheus-cli implementa uma ferramenta de linha de comando como a interface do usuário mais simples para este daemonhome-protocol contém o básico para a comunicação de rede, definindo serviços fornecidos pelos nós domésticos que operam a rede e como os clientes podem usar esses serviços. Arquivo protocol/mercury.capnp descreve um protocolo de rede simples com cap'n'proto enquanto mercury-capnp/mod.rs contém implementações de clientes e servidores para ferrugem.home-node implementa o lado do servidor, fornecendo os serviços do protocolo aos clientes.connect implementa o lado do cliente do protocolo. Isso inclui uma API de administração para gerenciar seus perfis e um DAPP SDK, fornecendo blocos de construção comuns para criar aplicativos distribuídos.examples/TheButton é um aplicativo distribuído de amostra construído no Dapp SDKtest e prometheus-test contêm testes de integração entre diferentes caixas.storage contém experimentação em uma camada de armazenamento genérico usando a "indexação" baseada em hash que pode usar IPFs, BitTorrent, StoreJ, etc. como um plug-in simples.forgetfulfuse contém experimentos com um sistema de arquivos que é legível apenas temporariamente, planejado para ser usado para proteger dados confidenciais, por exemplo, suas chavesCopyright © 2017-2019, Descentralized Society Foundation, PA