Architecture de clients Duniter

Slides:



Advertisements
Présentations similaires
WINS Windows Internet Name Service. What is WINS?  It does name resolution (?!) DNS resolves IP numbers and FQDN ARP resolves IP numbers and MAC addresses.
Advertisements

Gestion de la concurrence avec Entity Framework Développement d’application avec base de données Chapitre 23 Hugo St-Louis – Automne 2015.
CNRS GRID-FR CA Sophie Nicoud
V.1a E. Berera1 IPv6 IPv6 et la sécurité: Gestion des clés Objectif: Comment distribuer les clés.
Active Learning for Natural Language Parsing and Information Extraction, de Cynthia A. Thompson, Mary Elaine Califf et Raymond J. Mooney Philippe Gambette.
1 Observer le paramétrage d’un réseau. 2 Dans notre réseau téléphonique habituel, les postes, reliés à un auto-commutateur... …peuvent dialoguer, car.
Propriétés des nombres. Multiples et facteurs Le lundi le 24 octobre 2016.
1 Case Study 1: UNIX and LINUX Chapter History of unix 10.2 Overview of unix 10.3 Processes in unix 10.4 Memory management in unix 10.5 Input/output.
IP Multicast Text available on
C’est quoi un MVP ? MVP ou « Minimum Viable Product » ou en français « Produit Minimum Viable »,comme son nom l’explicite, un produit ou service minimal.
Les Pronoms Interrogatifs et Démonstratifs
Effacer la Configuration LWAPP sur un LAP
TP4
Starter Donne-moi une réponse a cette question!
Quelques Infos sur LDAP
LE PASSÉ COMPOSÉ J’ai aimé ce leçon!
Les pronoms relatifs qui et que
Titre: Révision lundi, le 17 octobre 2016
Etienne Cellenza POC Suprise Etienne Cellenza.
LAN Médias cch_ccnp.
Imparfait ou Passee Compose?
Protocole R-STP.
INSIA SRT 3 PAM !.
IS-IS - Adjacence Point à Point
Lois et principes psychomoteurs; modélisation prédictive
Vérification du Système fichiers et réparation
Configuration BGP de base
COPIL DE CLOTURE Phase Control Fournisseur: xxx Date : xx/yy/zz
Commande show standby ccnp_cch ccnp_cch.
Sécurisation de la donnée CyberSécurité et Blockchain
Séminaire Capitalisation
IDL_IDL bridge The IDL_IDLBridge object class allows an IDL session to create and control other IDL sessions, each of which runs as a separate process.
RIP - Configuration des Extensions.
Comment fonctionne RADIUS?
Réunion service Instrumentation Activités CMS-Traces
Technologies de l’intelligence d’affaires Séance 14
Commande show dialer ccnp_cch ccnp_cch.
The past infinitive You already know how to use infinitives in some sentences. Ex. Le conflit va éclater entre les deux pays. Conflict is going to break.
TP logiciel QGIS
Commande show vtp ccnp_cch ccnp_cch.
ABAQUS I Summary Program Capability Components of an ABAQUS Model Elements, Materials and Procedures Modules (analysis, pre and post processing) Input.
J’ai besoin de parler du passe….
P2P-Tube : amélioration de YouTube par P2P.
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Apprentissage profond Q
Communiquer et Optimiser grâce à la supervision
Mise en correspondance des logins entre PRONOTE et ATRIUM
HTTP DNS NTP FTP R231 RJ45 definition HTTP DNS NTP FTP R231 RJ45.
Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni 1.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Les protocoles de la couche application Chapitre 7.
Introduction to Computational Journalism: Thinking Computationally JOUR479V/779V – Computational Journalism University of Maryland, College Park Nick Diakopoulos,
High-Availability Linux Services And Newtork Administration Bourbita Mahdi 2016.
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Applications IoT: composition de micro-services
Application par la composition de micro-services
Exposé de système / réseaux IR3
Guide de prise en main rapide Version 1.0
Se connecter à STSWEB Objectif :
Introduction à GENIUS et GILDA
Shop Stewards Pour parler correctement des Délégués de Service au sein du Syndicat du BIT, il faut d’abord se pencher sur le texte de définition dans les.
OGC Open Day Thomas Domingos
Cryptologie Crypto monnaies Blockchain
Microsoft Azure Quelles protections des données à l'heure du Cloud ?
Les promesses des plateformes d’échanges de données
Cold Fusion High Availability “Taking It To The Next Level” Presenter: Jason Baker, Digital North Date:
Assistance technique et renforcement des capacités
Dridi Lobna 1 Couche Réseau II Réseau : Gestion de l’accès.
M’SILA University Information Communication Sciences and technology
Transcription de la présentation:

Architecture de clients Duniter Présentation des problématiques clients et présentation d’un exemple d’architecture (Sakia)

Récap du réseau Duniter

Blockchain recap #A1 #A2 #A3 #A4 A A B A B A B 200 200 230 120 B C C C Certification A->B Certification B->A Joiner A Joiner B Identity A Identity B Joiner C Certification B->C Certification C->B Identity C UD 200 Certification A->C TX 50 : B→C TX 30 : B→A #A1 #A2 #A3 #A4 A A B A B A B 200 200 230 120 B C C C 200 250

Récap du réseau Duniter Node Chaque noeud connait une partie du réseau, mais pas nécessairement la totalité Node Les noeuds ne peuvent pas se faire confiance : Les noeuds peuvent avoir des bugs Les noeuds peuvent tenter de tricher → Ils ne peuvent faire confiance qu’à eux meme ! Node Node Node

Récap du réseau Duniter Node Chaque noeud possède - sa propre vue relative du réseau - sa propre vue relative de la blockchain Chain B Node Chain A Le problème des clients : - Comment avoir une vue correcte du réseau ? - A quel noeud faire confiance ? - Comment accéder à ces données suffisament rapidement ? Node Chain A Node Chain B Node Chain B

Récap du multibranches Un exemple : un fork apparait car deux noeuds ont émit un Blog valide (#A3 et #B3) dans un intervalle de temps trop court. Blockchain A #A1 #A2 #A3 #A4 #B3 #B4 #B5 Blockchain B

Récap du multibranches Blockchain A #A1 #A2 #A3 #A4 Blockchain B #B3 #B4 #B5 #B6

Récap du multibranches Blockchain A #A1 #A2 #A3 #A4 Blockchain B, forking from A #B3 #B4 #B5 #B6 #B7 Blockchain B a 30 minutes d’avance sur la A. Les noeuds sur la blockchain A passe à la blockchain B. Les données des blocks #A3 et #A4 sont peut-etre “perdues”, et doivent alors etre réintégrées dans la blockchain B.

Un exemple : L’architecture de Sakia

Architecture générale Account Core Models/View Data display Animations User actions Identities Handles and caches informations about identities Wallet History Handles and caches wallet transfers and UD history Network Data Access Layer Cache, distributed requests Network Layer Nodes discovery, endpoints handling Communities

La couche réseau

Couche réseau Network explorer Handles the nodes exploration Decides which one is synced Computes the fork window Nodes Unique for a node pubkey Multiple endpoints (but only one used) Check the state of its ucoin node Explores the network locally to the ucoin node

Algorithme de découverte réseau

Rule n°4 Latest timestamp Quel noeud requeter ? On ne peut se connecter à des noeuds “au hasard” Ils retourneraient des données incohérentes entre eux L’état de la blockchain est représenté par le hash du block courant du noeud. Rule n°1 By block occurence Rule n°2 Highest Number of last issuers Rule n°3 Highest PoW Rule n°4 Latest timestamp

Couche d’accès aux données réseau BMA Data Access Handles request to Basic Merkle API Caches requests Distribute requests to knew synced nodes Broadcasts POST requests to knew nodes Handles network errors (timeouts, disconnections...) Other API Other API

Algorithme de mise en cache

Les rollbacks dans le cache Un rollback est détecté : passage en mode “picking” Quand on requete un block : on le récupère depuis le réseau on le compare a celui qu’on avait dans le cache si le hash est le meme, le block n’a pas changé dans cette chain (1) Si le hash est différent, on remplace le block mis en cache (2) (1) (2) #A1 #A2 #A3 #A4 #A5 #A6 Les blocks de A sont remplacés par ceux de B #B5 #B6 #B7

Historique des transactions

Historique des transactions

Rollback des transactions Rollback detecte : activation du mode “picking” : Pour chaque transaction, de la plus vieille a la plus récente : - on regarde le block correspondant a la transaction - si le hash a change, on verifie l’etat de chaque transaction present dans ce block #A1 #A2 #A3 #A4 #A5 #A6 - Tx1 est presente, on la garde - Tx2 n’est plus presente, on la remet en etat ‘invalidée’ Tx0 Tx1 Tx2 #B5 #B6 #B7 Tx1 Tx2 Après le rollback, on rafraichit les transactions en partant du point de fork

Couche de vérifications

Requetage de noeuds sans confiance Du point de vue des clients, on ne doit pas faire une confiance aveugle dans les noeuds : - Les noeuds peuvent avoir des bugs - Les noeuds peuvent essayer de tricher ? ?

Requetage de noeuds sans confiance Vérifications de base, sur chaque donnees : - Vérification des hash - Vérification des signatures - Vérification du format des réponses Pour choisir à quel noeud faire confiance : - Mode SPV : Requetage de noeuds jusqu’à ce que 10 noeuds répondent la meme information

Questions /réponses

Merci - @inso sur twitter insoleet sur github inso@framasphere.org Sur diaspora