đŸ‡«đŸ‡· Explorez Cardano : 2. Architecture : a. Aperçu de l'architecture de Cardano

Explorez Cardano : 2. Architecture : a. Aperçu de l’architecture de Cardano

Cette section dĂ©crit l’architecture de haut niveau de Cardano. Elle fournit des dĂ©tails sur les composants principaux et leurs interactions, et aborde briĂšvement les pĂ©riodes et les implĂ©mentations de Cardano.

Architecture de haut niveau de Cardano

Le diagramme suivant dĂ©crit l’interaction entre les composants du systĂšme Cardano :

explore-2a-1

Composants du systĂšme

L’implĂ©mentation actuelle de Cardano est hautement modulaire. Elle comprend les composants suivants (les diffĂ©rents cas d’utilisation du dĂ©ploiement utiliseront diffĂ©rentes combinaisons de composants):

Nodes et les nodes distants

Un systĂšme blockchain est constituĂ© d’un ensemble de nodes rĂ©partis sur un rĂ©seau qui communiquent entre eux pour obtenir un consensus sur l’état du systĂšme.

Les Nodes sont chargés de:

  • ExĂ©cution du protocole Ouroboros
  • Validation et relais des blocs
  • Production de blocs (certains nodes)
  • Fournir des informations sur l’état de la blockchain Ă  d’autres clients locaux

Vous ne pouvez faire confiance qu’aux nodes gĂ©rĂ©s par vous ou votre organisation. C’est pourquoi Daedalus exĂ©cute un node en arriĂšre-plan.

Le processus node

Le cardano-node est le niveau supérieur du node et se compose des autres sous-systÚmes, dont les plus importants sont le consensus, le grand livre et la mise en réseau, avec la configuration auxiliaire, le CLI, la journalisation et la surveillance.

Node-to-Node IPC protocol

L’objectif du node-to-node Inter-Process Communication (IPC) protocol est de permettre l’échange de blocs et de transactions entre les nodes dans le cadre de l’algorithme de consensus Ouroboros.

Le node-to-node protocol est un protocole composite, composĂ© de trois “mini-protocoles” :

  • chain-sync : UtilisĂ© pour suivre la chaĂźne et obtenir des en-tĂȘtes de bloc.
  • block-fetch : UtilisĂ© pour obtenir des corps de bloc.
  • tx-submission : UtilisĂ© pour le transfert des transactions.

Ces mini-protocoles sont multiplexĂ©s sur une seule connexion TCP (Transmission Control Protocol) de longue durĂ©e entre les nodes. Ils peuvent ĂȘtre exĂ©cutĂ©s dans les deux sens sur la mĂȘme connexion TCP pour permettre des configurations de type peer-to-peer (P2P).

Le protocole global - et chaque mini-protocole - est conçu pour un environnement sans confiance oĂč les deux parties doivent se protĂ©ger contre les attaques par dĂ©ni de service (DoS). Par exemple, chaque mini-protocole utilise un flux de contrĂŽle orientĂ© vers le consommateur, de sorte qu’un node ne demande plus de travail que lorsqu’il est prĂȘt, plutĂŽt que de se voir imposer du travail.

La conception du protocole est modulaire et Ă©volutive : la nĂ©gociation de version est utilisĂ©e pour convenir de l’ensemble des mini-protocoles Ă  utiliser, ce qui permet d’ajouter des mini-protocoles supplĂ©mentaires ou mis Ă  jour au fil du temps sans causer de problĂšmes de compatibilitĂ©.

Node-to-Client IPC

L’objectif du node-to-client IPC protocol est de permettre aux applications locales d’interagir avec la blockchain via le node. Il s’agit d’applications telles que les backends de porte-monnaies ou les explorateurs de blockchain. Le protocole node-to-client permet Ă  ces applications d’accĂ©der aux donnĂ©es brutes de la chaĂźne et d’interroger l’état actuel du grand livre. Il offre Ă©galement la possibilitĂ© de soumettre de nouvelles transactions au systĂšme.

Le protocole node-to-client utilise la mĂȘme conception que le protocole node-to-node, mais avec un ensemble diffĂ©rent de mini-protocoles, et en utilisant des conduits locaux plutĂŽt que des connexions TCP. En tant que tel, il s’agit d’une interface Ă©troite de relativement bas niveau qui n’expose que ce que le node peut fournir nativement. Par exemple, le node fournit l’accĂšs Ă  toutes les donnĂ©es brutes de la chaĂźne mais ne fournit pas un moyen d’interroger les donnĂ©es sur la chaĂźne. La tĂąche de fournir des services de donnĂ©es et des API de plus haut niveau plus pratiques est dĂ©lĂ©guĂ©e Ă  des clients dĂ©diĂ©s, tels que cardano-db-sync et le backend du porte monnaie.

Le protocole node-to-client se compose de trois mini-protocoles:

  • chain-sync : UtilisĂ© pour suivre la chaĂźne et obtenir des blocs
  • local-tx-submission : UtilisĂ© pour soumettre des transactions
  • local-state-query : UtilisĂ© pour interroger l’état du grand livre

La version node-to-client de chain sync utilise des blocs complets , plutĂŽt que de simples en-tĂȘtes de bloc. C’est pourquoi aucun protocole sĂ©parĂ© de rĂ©cupĂ©ration de blocs n’est nĂ©cessaire. Le protocole local-tx-submission est semblable au protocole tx-submission de node Ă  node mais plus simple, et il renvoie les dĂ©tails des Ă©checs de validation des transactions. Le protocole local state query fournit un accĂšs par requĂȘte Ă  l’état actuel du grand livre, qui contient beaucoup de donnĂ©es intĂ©ressantes qui ne sont pas directement reflĂ©tĂ©es sur la chaĂźne elle-mĂȘme.

Apprenez-en davantage sur la conception du protocole de mise en réseau et sur les protocoles de communication des nodes Cardano.

Command line interface (CLI)

L’outil CLI du node est le “couteau suisse” du systĂšme. Il peut presque tout faire, mais il est de bas niveau et n’est pas trĂšs pratique car il est basĂ© sur du texte et ne possĂšde pas d’interface utilisateur graphique (GUI).

L’outil CLI peut:

  • Interroger le node pour obtenir des informations
  • Soumettre des transactions
  • Construire et signer des transactions
  • GĂ©rer les clĂ©s cryptographiques

Porte-monnaie Daedalus

Daedalus est un porte-monnaie full node qui aide les utilisateurs Ă  gĂ©rer leur ada, et peut envoyer et recevoir des paiements sur la blockchain Cardano. Daedalus se compose d’un front-end et d’un back-end. Le frontend est l’application graphique que les utilisateurs voient et avec laquelle ils interagissent. Le backend est un processus de service qui surveille l’état du porte-monnaie de l’utilisateur et effectue toutes les ‘opĂ©rations lourdes’, telles que la sĂ©lection des piĂšces, la construction et la soumission des transactions. Le backend interagit avec un node local via le protocole IPC node-to-client, et interagit avec le frontend via une API HTTP. Le backend fournit Ă©galement un CLI qui permet d’interagir avec le porte-monnaie. Le backend du porte-monnaie peut Ă©galement ĂȘtre utilisĂ© seul - sans Daedalus - via son API. Il s’agit d’un moyen pratique pour les dĂ©veloppeurs de logiciels d’intĂ©grer Cardano Ă  d’autres applications et systĂšmes.

Nous conseillons aux utilisateurs avancés qui souhaitent utiliser Cardano de commencer par Daedalus.

cardano-db-sync

Le node cardano ne stocke que la blockchain elle-mĂȘme et les informations associĂ©es nĂ©cessaires Ă  la validation de la blockchain. Ce principe de conception vise Ă  minimiser la complexitĂ© du code et Ă  rĂ©duire le coĂ»t de calcul et l’utilisation des ressources, afin de garder les interfaces locales du node aussi minimes que possible et d’utiliser des clients externes pour fournir une variĂ©tĂ© d’interfaces pratiques et de fonctionnalitĂ©s supplĂ©mentaires. En particulier, le node ne fournit pas d’interface de requĂȘte pratique pour les informations historiques sur la blockchain. Ce service de donnĂ©es est fourni par un composant sĂ©parĂ© utilisant une base de donnĂ©es en langage SQL (Structured Query Language).

Plus d’informations sur:

À propos des Ă©poques et des implĂ©mentations de Cardano

Cardano est un grand livre distribuĂ© de troisiĂšme gĂ©nĂ©ration. Il est basĂ© sur Ouroboros, un algorithme de consensus de blockchain de type preuve d’enjeu (PoS-Proof of Stake) Ă©valuĂ© par les pairs, qui est apparu pour la premiĂšre fois dans la plus grande confĂ©rence de recherche en cryptologie au monde (the International Association for Cryptologic Research 37th International Cryptology CXonference - Crypto 2017).

Le nom Cardano est le nom général donné à la plateforme, qui a traversé de multiples époques et implémentations . Ces concepts nécessitent des explications supplémentaires.

Époques

Il y a plusieurs Ă©poques dans l’évolution de Cardano. Chaque Ăšre (Byron, Shelley, Goguen, Basho et Voltaire) fait rĂ©fĂ©rence aux rĂšgles du grand livre. Par exemple, quels types de transactions et quelles donnĂ©es sont stockĂ©s dans le grand livre, ou la validitĂ© et la signification des transactions.

L’évolution du rĂ©seau principal Cardano a commencĂ© avec les rĂšgles du ledger Byron (Ăšre Byron). Le rĂ©seau principal a subi un hard fork fin juillet 2020 pour passer des rĂšgles Byron aux rĂšgles Shelley. Ce hard fork a donc marquĂ© le dĂ©but de l’ùre Shelley.

Implémentations

La premiĂšre mise en Ɠuvre de Cardano a Ă©tĂ© introduite au dĂ©but du mainnet de Cardano, en septembre 2017. Cette implĂ©mentation prenait en charge exclusivement les rĂšgles du grand livre de Byron.

Nous avons ensuite entrepris une rĂ©implĂ©mentation complĂšte de Cardano, qui a permis deux changements fondamentaux : la prise en charge de plusieurs ensembles de rĂšgles de grand livre, et la gestion du processus de hard fork consistant Ă  passer d’un ensemble de rĂšgles Ă  un autre. En d’autres termes, la nouvelle implĂ©mentation peut prendre en charge Ă  la fois les rĂšgles de Byron et les rĂšgles de Shelley, ce qui signifie que, lorsqu’elle a Ă©tĂ© dĂ©ployĂ©e sur le rĂ©seau principal au dĂ©but de 2020, l’implĂ©mentation Ă©tait Ă©galement entiĂšrement compatible avec les rĂšgles de Byron. Cela a permis une transition en douceur de l’ancienne Ă  la nouvelle mise en Ɠuvre. Une fois que tous les utilisateurs de Cardano ont mis Ă  niveau leurs nodes vers la nouvelle implĂ©mentation, il a Ă©tĂ© possible d’invoquer le hard fork et de passer aux rĂšgles Shelley.

Une troisiĂšme implĂ©mentation Cardano a Ă©tĂ© utilisĂ©e sur le Shelley Incentivized Testnet (ITN). Ce systĂšme supporte un sous-ensemble significatif des rĂšgles de Shelley, et nous l’avons utilisĂ© pour tester la dynamique Ă©conomique et sociale du systĂšme de dĂ©lĂ©gation de Shelley.

Cet aperçu de l’architecture de Cardano reflĂšte l’implĂ©mentation actuelle de Cardano dĂ©ployĂ©e sur le rĂ©seau principal, et non les implĂ©mentations originales ou ITN.


Vous trouverez une copie officielle de ce document ici :

https://docs.cardano.org/explore-cardano/cardano-architecture/overview

Plus de traductions de Cardano Ă : Cardano For The World

1 Like