
Auteur: Ali Sheikh, analyste crypté;
Cet article décrira l’architecture de conception parallèle de la blockchain et empruntera trois exemples connexes: Solana, SEI et Monad.Cet article met l’accent sur les différences entre l’optimisme et le parallélisme, et comprend la différence subtile entre le statut et l’accès à la mémoire sur ces chaînes.
1Préface
En 1837, l’informaticien et mathématicien Charles Babbage a conçu le « moteur analytique », qui a jeté les bases théoriques de l’informatique parallèle.Aujourd’hui, la parallélisation est un thème clé du monde crypté.
L’informatique parallèle permet à de nombreux calculs ou processus de fonctionner simultanément au lieu d’effectuer des calculs dans l’ordre ou l’un après l’autre.Le calcul parallèle fait référence à la décomposition de problèmes plus importants en plusieurs pièces indépendantes plus petites.Le système parallèle présente de nombreux avantages, tels que l’amélioration de l’efficacité et de la vitesse, l’évolutivité, l’amélioration de la fiabilité et la tolérance aux défauts, l’optimisation de l’utilisation des ressources et la capacité de gérer de grands ensembles de données.
Cependant, la reconnaissance de l’efficacité du parallélisme dépend de la structure de l’architecture sous-jacente et des détails de la réalisation.Les deux goulots d’étranglement de base de la blockchain sont des fonctions cryptées (fonctions de hachage, signatures, courbes ovales, etc.) et l’accès à la mémoire / statut.Pour la blockchain, l’un des composants clés du système efficace et parallèle est la différence subtile entre l’accès à l’état.L’accès à l’état fait référence à la possibilité de lire et d’écrire l’état de la blockchain, y compris le stockage, les contrats intelligents et les soldes de compte.Afin de rendre la blockchain parallèle efficace et haute performance, l’accès à l’état doit être optimisé.
À l’heure actuelle, il existe deux genres idéologiques dans l’optimisation de l’accès de l’État de la blockchain de parallélisation: la certitude est parallèle et optimiste.Déterminer le parallèle nécessite que le code soit clairement indiqué à l’avance quelles parties de l’état de la blockchain seront accessibles et modifiées.Cela permet au système de déterminer quelles transactions peuvent être traitées parallèles sans conflit.La détermination soutient la prévisibilité et l’efficacité (en particulier dans le cas de la plupart des transactions indépendantes).Cependant, cela apporte plus de complexité aux développeurs.
Le parallèle optimiste ne nécessite pas de code pour pré-déclarer son accès de statut pour traiter avec le trading parallèle, comme s’il n’y avait pas de conflit.S’il y a un conflit, l’optimiste et le parallèle se réorganiseront, les transactions de conflit ou opéreront en série.Bien que l’optimiste et la parallélisation offrent une plus grande flexibilité pour les développeurs, les conflits doivent être réécrits.Quant à quelle méthode est la meilleure, il n’y a pas de bonne réponse.Ce ne sont que deux façons différentes de parallélisation.
Ci-dessous, nous explorons d’abord quelques connaissances de base liées aux systèmes parallèles non cryptés, puis examinez l’espace de conception de l’exécution parallèle de la blockchain. Opportunités pour des opportunités de conception parallèle Essence
2, Système parallèle non crypté
Grâce aux fonctions de l’informatique parallèle et du système parallèle que nous venons d’apprendre, il est facile de comprendre pourquoi l’informatique parallèle est devenue populaire ces dernières années.Et au cours des dernières décennies, l’informatique parallèle a montré une tendance croissante et a réalisé de nombreuses percées.
-
Image médicale: Le traitement parallèle a fondamentalement modifié des images médicales, apportant une augmentation significative de la vitesse et de la résolution de divers modes d’image (tels que l’IRM, la CT, la rayon x et le balayage de défaut optique).Nvidia est à l’avant-garde de ces progrès.
-
astronomie:Certains nouveaux phénomènes astronomiques, tels que la compréhension des trous noirs, ne peuvent être réalisés qu’en utilisant des superordinateurs parallèles.
-
UnitéMoteur de jeu:Le moteur Unity utilise la capacité GPU (spécialement construite pour les charges de travail graphiques à grande échelle) pour aider à améliorer les performances et la vitesse.Le moteur est équipé d’une fonction de traitement multi-thread et parallèle, apportant une expérience de jeu transparente et peut créer un environnement de jeu complexe et réaliste.
Jetons un coup d’œil aux trois blockchains qui ont été déployés en parallèle.Tout d’abord, regardons Solana, puis deux chaînes basées sur EVM -Monad et SEI.
3, Aperçu de la conception parallèle
(1) Solana
Du point de vue des niveaux élevés, le concept de conception de Solan est que l’innovation de la blockchain devrait se développer avec du matériel.Au fil du temps, le matériel est continuellement amélioré selon la loi de Moore, et la conception de Solana bénéficiera de l’amélioration des performances et de l’évolutivité.Le co-fondateur de Solana Anatoly Yakovenko a conçu l’architecture parallèle originale de Solana il y a plus de cinq ans.
Solana utilise une certaine manière en parallèle, qui provient de l’expérience d’Anatoly dans le traitement des systèmes intégrés dans le passé.Cela permet au CPU de connaître toutes les dépendances et lui permet de charger la partie nécessaire de la mémoire à l’avance.Le résultat est d’optimiser l’exécution du système, mais encore une fois, il oblige les développeurs à faire un travail supplémentaire à l’avance.Sur Solana, toutes les dépendances de mémoire du programme sont nécessaires et déclarent dans la transaction construite (c’est-à-dire la liste d’accès), afin que le runtime puisse facilement planifier et effectuer plusieurs transactions en parallèle.
Le prochain composant principal de l’architecture Solana est la machine virtuelle Sealevel, qui est le contrat intelligent parallèle de Solana.Sealevel Native prend en charge plusieurs contrats et transactions en fonction du nombre de noyaux de la vérification.Les vérifications de la blockchain sont les participants au réseau responsables de la vérification des transactions, des nouveaux blocs proposés et de la maintenance de l’intégrité et de la sécurité de la blockchain.Étant donné que la transaction pré-states quels comptes doivent être lus et écrits et verrouillés, le planificateur Solana peut déterminer quelles transactions peuvent être exécutées parallèles.Pour cette raison, en ce qui concerne la vérification, le «producteur de blocs» ou le leader peut trier des milliers de transactions traitées et planifier des transactions non chevauchantes parallèles.
Le dernier élément de conception de Solana est « pipeline ».Lorsque vous devez traiter les données dans une série d’étapes et que chaque étape est responsable du matériel différent, le pipeline est déclenché.L’idée clé ici est d’obtenir des données qui nécessitent un fonctionnement en série et d’utiliser le pipeline pour parallèlement.Ces pipelines peuvent fonctionner parallèles et gérer différents packages de trading à chaque étape du pipeline.
Ces optimisations permettent à Sealevel d’organiser et d’exécuter des transactions indépendantes en même temps et d’utiliser la capacité du matériel à utiliser un programme pour traiter plusieurs points de données en même temps.Sealevel Trier les instructions en fonction de ProgramID et effectuez les mêmes instructions parallèles sur tous les comptes pertinents.
Grâce à ces innovations, nous pouvons voir que Solana est intentionnellement conçue pour soutenir la parallélisation.
2 (2) SEI
SEI est une blockchain General Source L1, qui est dédiée aux transactions d’actifs numériques.SEI V2 utilise une méthode optimiste et parallèle, il est donc plus amical pour les développeurs.Dans le mode parallèle optimiste, les contrats intelligents peuvent être exécutés de manière plus transparente et en parallèle, et aucun développeur ne doit déclarer leurs ressources à l’avance.Cela signifie exécuter toutes les transactions en parallèle.Néanmoins, lorsqu’un conflit se produit (c’est-à-dire le même état de transactions multiples), la blockchain suivra un composant de stockage spécifique affecté par chaque échange de conflits.
La blockchain SEI utilise le mécanisme « Contrôle simultané optimiste (OCC) pour effectuer des transactions.Des transactions simultanées se produisent lors de plusieurs transactions dans le système en même temps.Il existe deux étapes de cette méthode de transaction: l’exécution et la vérification.
Pendant la phase d’exécution, la transaction est optimiste et temporairement stockée dans des transactions spécifiques.Depuis lors, chaque transaction entrera dans la phase de vérification.Si la transaction est indépendante, la transaction s’exécutera parallèle.Si les données lues par une transaction ont été modifiées par une autre transaction, elle sera en conflit.Le système parallèle de SEI identifiera chaque conflit grâce aux derniers changements d’état dans l’ensemble de données de lecture et le dernier stockage d’état (ces modifications sont indexées dans l’ordre de transaction).SEI réécrira et re-vérifiera l’instance à la position de conflit.Il s’agit d’un processus itératif qui implique l’exécution, la vérification et la réorganisation afin de réparer le conflit.La figure ci-dessous montre comment SEI gère la transaction lorsqu’il y a un conflit.
La mise en œuvre de SEI fournit aux développeurs EVM des frais de gaz inférieurs et des espaces de conception plus larges.Pendant longtemps, l’environnement EVM s’est limité à moins de 50 TP, ce qui oblige les développeurs à créer des applications qui suivent le mode anti-mode.SEI V2 permet aux développeurs d’être proches des zones qui nécessitent généralement des performances élevées et des coûts faibles, tels que Defi, Depin et les jeux.
3 (3) Monade
Monad construit un EVM parallèle L1 avec une compatibilité Bytecode complète.Le caractère unique de Monad réside non seulement dans son moteur parallèle, mais aussi le moteur d’optimisation qu’ils construisent en bas.Monad utilise une méthode de conception globale unique qui combine plusieurs caractéristiques clés, telles que le pipeline, les E / S asynchrones, la séparation de l’exécution du consensus et le MonADDB.
Une innovation clé conçue par Monad est le pipeline avec un léger décalage.Le décalage permet plus de processus en exécutant plusieurs instances en même temps.Par conséquent, le pipeline est utilisé pour optimiser de nombreuses fonctions telles que le pipeling, les pipelines d’exécution des transactions, le consensus et l’exécution de pipelining interne et le pipeline dans le mécanisme de consensus lui-même.
Ensuite, nous examinerons la partie parallèle de Monad.À Monad, la transaction est triée linéairement dans le bloc, mais l’objectif est d’atteindre l’état final en utilisant une exécution parallèle.La conception du moteur d’exécution de Monad utilise un algorithme parallèle optimiste.Le moteur de Monad gère la transaction en même temps, puis effectue une analyse pour s’assurer que si la transaction est exécutée les unes après les autres, les mêmes résultats seront obtenus.S’il y a des conflits, vous devez réécrire.L’exécution parallèle ici est un algorithme relativement simple, mais le combiner avec d’autres innovations clés de Monad rend cette méthode nouvelle.Une chose à noter ici est que même si la ré-exécution se produit, elle est généralement très bon marché, car l’entrée requise pour le trading non valide a toujours été conservée dans le cache, ce sera donc une simple recherche de cache.Re-Exécution est garantie pour réussir car vous avez exécuté les transactions précédentes dans le bloc.
Monad améliore également les performances en séparant l’exécution et le consensus (similaires à Solana et SEI) et en retardant l’exécution.L’idée est que si vous détendez les conditions d’exécution afin que vous puissiez terminer l’exécution avant de parvenir à un consensus, vous pouvez exécuter l’exécution et le consensus parallèles pour augmenter le temps supplémentaire aux deux.Bien sûr, Monad utilise un algorithme de certitude pour faire face à cette situation pour s’assurer que l’un d’eux ne fonctionnera pas trop loin et ne deviendra pas hors de contrôle.
4Méthode unique d’accès à l’état et de mémoire
Comme je l’ai mentionné au début de cet article, l’accès à l’état est l’un des goulots d’étranglement typiques de la blockchain.La sélection de conception de l’accès à l’état et de la mémoire peut enfin déterminer si la mise en œuvre spécifique du système parallèle améliorera les performances dans la pratique.Ci-dessous, nous comprendrons et comparerons les différentes méthodes adoptées par Solana, SEI et Monad.
(1) SolanaAccès au statut: Accountsdb / CloudBreak
Solana utilise une expansion horizontale pour distribuer et gérer les données d’état sur plusieurs périphériques SSD.Aujourd’hui, de nombreuses blockchain utilisent des bases de données générales (c.-à-d. LevelDB), qui a des restrictions dans le traitement d’un grand nombre de données d’état de lecture et d’écriture simultanées.Pour éviter cela, Solana a utilisé CloudBread pour créer sa propre base de données de compte personnalisée.
CloudBream est conçu pour un accès parallèle pour les opérations cross -i / o, plutôt que de simplement compter sur RAM, ce qui est rapide.Le fonctionnement des E / S (entrée / sortie) fait référence au fonctionnement des données de lecture de la source externe (telle que le disque, le réseau ou le dispositif périphérique) ou de lui écrire des données.Initialement, CloudBread a utilisé un index interne de RAM pour mapper la clé publique des comptes avec le solde et les données.Cependant, lors de la rédaction de cet article, l’index V1.9 a été déplacé de RAM vers SSD.Cette transformation permet à CloudBread de gérer les opérations 32 (E / S) dans sa file d’attente en même temps, améliorant ainsi le débit de plusieurs SSD.Par conséquent, vous pouvez accéder aux données de la blockchain, telles que des comptes et des transactions, tout comme dans RAM à l’aide de fichiers de mappage de mémoire.La figure ci-dessous montre la structure de la mémoire.Bien que la RAM soit plus rapide, sa capacité est plus petite que le SSD, et elle est généralement plus chère:
Grâce à une extension horizontale et à la distribution des données d’état sur plusieurs dispositifs, CloudBream a réduit le retard et améliore l’efficacité, la décentralisation et l’élasticité du réseau de l’écosystème Solana.
2 (2) SEIVisite de statut: Seidb
SEI a repensé son stockage -seidb – pour résoudre les problèmes suivants: rédiger un grossissement (quelle quantité de méta -ata nécessite la structure des données, plus le plus petit) est petit), l’expansion de l’état, le fonctionnement lent et les performances des performances sur Temps.Le nouveau Re -design est désormais divisé en deux composants: le stockage d’état et l’engagement de statut.Les enregistrements et la vérification de toute modification des données sont traités par l’état et, à tout moment, la base de données de toutes les données est traitée par le stockage d’état (SS).
Dans SEI V2, l’État promet d’utiliser la cartographie de la mémoire IAVL Tree Architecture (MEMIAVL).Mappage de mémoire IAVL Arborescence stockée moins de métadonnées, ce qui réduit le temps de stockage et de synchronisation d’état, et facilite l’exécution d’un nœud complet.L’arborescence IAVL de cartographie de mémoire est exprimée en trois fichiers sur le disque (fichiers KV, fichiers de branche et fichiers de feuilles);La nouvelle structure MEMIAVL aide à réduire la rédaction de grands facteurs car il réduit les métadonnées nécessaires pour maintenir la structure des données.
Le SEIDB mis à jour permet une prise en charge de la base de données flexible de la base de données sur la couche de stockage d’état.SEI estime que les besoins et les besoins de stockage des différents opérateurs de nœuds sont différents.Par conséquent, SS Design offre aux opérateurs la liberté et la flexibilité, tels que PebbledB, RocksDB, SQLite, etc. pour les opérateurs.
3 (3) MonadeVisite de statut: Monaddb
Il existe des différences importantes dans l’accès de l’État de Monad.Tout d’abord, la plupart des clients Ethereum utilisent deux types de bases de données: Base de données Base de données B-Tree (IE LMDB) ou Structure de journal combinée (LSM) Base de données (c.-à-d. ROCKSDB, NIVEALDB).Tous deux sont des structures de données universelles, non spécialement conçues pour la blockchain.De plus, ces bases de données n’ont pas utilisé les derniers progrès de la technologie Linux, en particulier dans les opérations asynchrones et l’optimisation des E / S.Enfin, Ethereum lui-même utilise le statut de gestion de l’arborescence MPT.Le principal problème est que le client doit intégrer cet arbre MPT spécifique dans une base de données plus courante (c’est-à-dire B-Tree / LSM), ce qui apportera de sérieux défauts de performance, tels que l’accès excessif au disque.
Tous aident à jeter les bases de Monad pour décider de créer une base de données monaddb personnalisée.Certaines des principales caractéristiques de MonADDB incluent la base de données d’accès parallèle, l’optimisation de la base de données personnalisée pour les données de Trie Merkle, l’accès à un statut à haute efficacité, les caractéristiques et l’évolutivité décentralisées qui sont meilleures que l’utilisation de la RAM standard.
Monaddb est conçu pour que la blockchain soit plus de performances que l’utilisation de la base de données universelle.Custom MonADDB est dédié à une gestion efficace des données de type Trie Merkle et prend en charge l’interview de plusieurs nœuds de trie en parallèle.Bien que MonADDB soit le même que le coût de lecture unique de certaines bases de données universelles mentionnées ci-dessus, la caractéristique clé de MonadDB est qu’elle peut exécuter plusieurs lectures en parallèle, ce qui apporte une énorme vitesse.
MonADDB prend en charge l’accès synchrone à la base de données d’accès parallèle.Parce que Monad démarre cette base de données à partir de zéro, elle peut utiliser la dernière technologie du noyau Linux et toutes les fonctions de SSD pour atteindre des E / S asynchrones.En utilisant des E / S asynchrones, si une transaction doit lire l’état à partir d’un disque, cela ne devrait pas apporter une résistance à l’opération.Au lieu de cela, il devrait commencer à lire et continuer à gérer d’autres transactions en même temps.C’est ainsi que les E / S asynchrones accélèrent considérablement la vitesse de traitement de monaddb.Monad peut obtenir de meilleures performances matérielles en optimisant l’utilisation du SSD et en réduisant l’excès de RAM.Cela présente un avantage supplémentaire à la décentralisation et à l’alignement de l’évolutivité.
5,en conclusion
En bref, l’exploration du développement parallèle dans la blockchain à travers la perspective de Solana, SEI et Monad peut pleinement comprendre comment différentes architectures et méthodes peuvent améliorer les performances et l’évolutivité.La confirmation de Solana parallèle fait attention à l’accès à l’état de pré-déclaration, offrant une prévisibilité et une efficacité, ce qui en fait un choix puissant pour les applications avec des exigences à haut débit.D’un autre côté, l’optimisme de SEI et les méthodes parallèles donnent la priorité à la flexibilité des développeurs, et il est très adapté aux conflits environnementaux.Avec sa manière optimiste et parallèle unique et monaddb personnalisée, Monad fournit une solution innovante pour optimiser l’accès et les performances du statut en utilisant les derniers progrès technologiques.
Chaque blockchain fournit une méthode unique pour résoudre les défis de parallélisation et a un ensemble de ses propres bénéfices et inconvénients.La conception de Solana vise à maximiser l’utilisation maximale du matériel et le débit, tandis que SEI se concentre sur la simplification du processus de développement, et Monad se concentre sur la solution de base de données adaptée aux données de la blockchain.Ces différences mettent en évidence la diversité des écosystèmes de la blockchain et l’importance de choisir une plate-forme appropriée en fonction des besoins spécifiques de l’application.
Avec le développement continu du champ de blockchain, l’avancement des technologies de parallélisation montré par SOI, Monad et SEI stimulera sans aucun doute l’innovation supplémentaire.Le voyage vers une blockchain plus efficace, plus évolutive et plus amicale est en cours.