Mercure
Notez que ce référentiel contient le backend d'infrastructure, composé de services d'arrière-plan et d'outils de ligne de commande. Pour une bonne expérience utilisateur, vous pouvez utiliser un frontend Web construit dans Node.js en plus du backend ou des binaires d'applications autonomes à base d'électrons qui regroupent le backend et le frontage Web.
Internet a été conçu pour fournir une communication ouverte et distribuée par les pairs, mais votre téléphone et votre PC n'ont plus cela, seulement des serveurs dans les centres de données. Vous êtes fermé derrière les FAI et les routeurs domestiques (par exemple Nat), vous avez donc besoin d'intermédiaires pour communiquer. Ces intermédiaires vous attachent par le gros fournisseur Lockin: vous ne pouvez pas changer de fournisseur de services (envisagez des e-mails, des réseaux sociaux, du stockage en ligne, etc.) sans sacrifier votre ancienne identité et données. Les plus grands d'entre eux gagnent leur vie en taxant tous vos paiements dans leurs magasins, en vous espérant constamment pour la vente d'annonces ciblées et vos données aux partenaires et vous gênant généralement ou vous censurent pour les agendas politiques ou toute autre raison.
Mercure vise à vous protéger de tout cela. Votre identité est construite sur des clés cryptographiques détenues par vous seul. Ces clés sont jetables, vous pouvez donc diviser votre empreinte numérique en autant de profils non apparentés que nécessaire, par exemple pour le travail, la famille et le passe-temps. Le stockage et la communication de données sont organisés autour de tels profils que vous pouvez continuer même à modifier le fournisseur de services ou les applications. Vos données sont cryptées jusqu'à ce que vous décidiez d'en partager une partie avec un pair spécifique ou le grand public. Le réseau est vraiment distribué et construit sur la communication entre pairs cryptée, vous êtes donc en sécurité. Vous pouvez ajouter votre nœud complet au réseau sous votre propre contrôle et utiliser votre appareil final comme client léger d'un nœud en qui vous avez confiance. En fin de compte, vous pouvez vous débarrasser des intermédiaires ou des intermédiaires et connecter directement des personnes, des affaires avec des clients ou même des machines.
Le mercure est quelque peu similaire à un réseau mobile cellulaire, il fournit des fonctionnalités similaires aux SMS, aux appels, aux connexions de données, aux notifications push, etc., mais
Le modèle d'identité, de données et de relations de Mercury a la même vision que les ID distribués W3C et les informations d'identification / revendications vérifiables du W3C, mais est radicalement plus simple sans transporter de charges excédentaires de support de webstack hérité. La couche de stockage de Mercury est construite sur des principes de réseau de contenu-hashable de manière similaire à la touche.
Vous êtes très probablement intéressé par les binaires de démonstration d'interface utilisateur préparés à démontrer quelle expérience utilisateur IOP vise le côté client. Sinon (c'est-à-dire le déploiement du backend réseau), vous devez toujours compiler et déployer la base de code pour vous-même. Nous avons préparé des étapes d'installation sur un système basé à Debian ci-dessous, mais cela ne devrait pas trop différer sur d'autres plateformes.
Vous pouvez installer Rust en tant que package OS prédéfini, par exemple en exécutant sudo apt install rustc ... sur Ubuntu. Cependant, pour le résultat le plus simple et le plus pratique, nous suggérons de suivre les instructions sur le site de rustup, par exemple, exécutant curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh à la place.
Vous aurez d'abord besoin de GIT et certaines dépendances installées.
$ sudo apt install git g++ capnprotoEnsuite, vous devrez télécharger et compiler les sources.
$ git clone https://github.com/Internet-of-People/mercury-rust.git
$ cd mercury-rust
$ cargo buildMercury est une version redessinée et avancée du serveur de profil IOP et de la connexion IOP qui était un pas dans la bonne direction mais qui manquait plusieurs fonctionnalités de notre vision, ont été créées par des développeurs qui ont quitté la communauté et qui étaient difficiles à réparer et à maintenir.
Veuillez noter que ce projet en est encore dans une phase précoce et expérimentale. Nous avons ouvert le code source pour donner un aperçu des développeurs intéressés à développer Mercury lui-même ou à construire des applications distribuées en plus. Nous aimerions avoir des commentaires pour apprendre des problèmes dans les premières phases, les priorités des fonctionnalités manquantes et vos exigences auxquelles nous n'avons pas encore pensé.
Nous pensons avoir une implémentation fonctionnelle initiale de l'architecture. Il y a encore beaucoup de composants importants à ajouter, ceux existants peuvent être modifiés ou repensés et la documentation fait encore défaut.
Caractéristiques expérimentales déjà disponibles:
Les bords rugueux du serveur et du client existants sont
Les pièces importantes manquantes sont
Les répertoires / caisses du projet sont
keyvault fournit une génération de clés déterministe hiérarchique pour plusieurs suites de chiffres différentes et sérialisation unifiée des composants cryptographiques (clés publiques et secrètes, identifiants, signatures, etc.).did aligne notre mise en œuvre keyvault avec des identités décentralisées de W3C.claim met en œuvre les réclamations vérifiables comme fondement des certificats, des relations sociales et des données utilisateur partageables en généralprometheus fournit une bibliothèque backend pour gérer vos identités et vos réclamations et un binaire de démon pour exposer les appels de la bibliothèque à des interdictions externesprometheus-cli implémente un outil de ligne de commande comme l'interface utilisateur la plus simple à ce démonhome-protocol contient les bases de la communication du réseau, définissant les services fournis par les nœuds domestiques en fonction du réseau et de la façon dont les clients peuvent utiliser ces services. File protocol/mercury.capnp décrit un protocole réseau simple avec Cap'n'proto tandis que mercury-capnp/mod.rs contient des implémentations client et serveur pour la rouille.home-node implémente le côté serveur en fournissant les services du protocole aux clients.connect implémente le côté client du protocole. Cela comprend une API administrative pour gérer vos profils et un SDK DAPP fournissant des blocs de construction courants pour créer des applications distribuées.examples/TheButton est une demande d'échantillon distribuée construite sur le SDK DAPPtest et prometheus-test contiennent des tests d'intégration entre les différentes caisses.storage contient une expérimentation sur une couche de stockage générique à l'aide de "l'indexation" basée sur le hachage qui pourrait utiliser IPFS, BitTorrent, StoreJ, etc. comme plugin simple.forgetfulfuse contient des expériences avec un système de fichiers lisible uniquement temporairement, prévu pour être utilisé pour protéger les données sensibles, par exemple vos clésCopyright © 2017-2019, Decentralized Society Foundation, PA