Maison  >  Article  >  La modularité par rapport à l'architecture monolithique est morte

La modularité par rapport à l'architecture monolithique est morte

王林
王林avant
2024-05-06 08:22:01937parcourir

Depuis l'essor des Rollups, la mise à l'échelle de la blockchain s'est concentrée sur le débat entre modularité et monolithisation. Initialement, cette opposition binaire était un modèle mental utile pour raisonner sur l'évolutivité de la blockchain, mais maintenant, les deux camps sont allés au-delà.

Aujourd'hui, la modularité versus monolithique impose des limitations inutiles à nos modèles mentaux d'évolutivité.

Alors, qu'est-ce qu'il y a d'autre ? Dans cet article, nous

allons

montrer la mise à l'échelle horizontale et la mise à l'échelle verticale qui ont été les cadres de base pour l'évolutivité de la blockchain, et expliquer comment adopter la mise à l'échelle horizontale aboutir à de meilleures solutions d'expansion .

Comprendre la modularité par rapport au monolithique

Tout d'abord, quelques définitions :

La chaîne modulaire sépare la fonctionnalité de base de la blockchain en différentes couches.

Monolithisation

Chain intègre toutes les fonctionnalités de base dans une seule couche interconnectée. Nous pouvons considérer les "couches" comme des "machines" - les

chaînes monolithiques ont un

unique nœud de validation qui exécute toutes les tâches, tandis que les chaînes modulaires ont plusieurs (2-3) nœuds complets qui exécutent différentes tâches.

模块化 vs. 单体化架构已死

Par exemple, Rollup a généralement deux nœudsd'exécution : un nœud complet Rollup pour l'exécution et un nœud complet Ethereumpour le règlement + la disponibilité des données (DA). Et Validium utilisera probablement trois nœuds running : un nœud complet Rollup pour l'exécution, un nœud complet Ethereum pour le règlement et un nœud complet de couche de disponibilité des données de sauvegarde pour DA.

Distribuez de manière modulaire les tâches de la blockchain sur au moins deux nœuds complets. En faisant cela, les blockchains modulaires peuvent exploiter la puissance de calcul de plusieurs ordinateurs lors de la construction de chaque bloc.

C'est une forme d'expansion horizontale.

La modularité est utile lorsque l'on pense à l'évolutivité de la blockchain car il s'agit d'un type de mise à l'échelle horizontale.

模块化 vs. 单体化架构已死

D'un autre côté, la majorité du camp monolithique choisit d'optimiser via des logiciels, de mettre en œuvre des machines virtuelles parallèles, des pipelines de données, des protocoles réseau plus rapides et (surtout) un matériel plus puissant pour développer. Essentiellement, une chaîne monolithique tente d’extraire autant de puissance de calcul que possible à partir d’un seul nœud complet.

Il s'agit d'une forme de

mise à l'échelle verticale.

Les critiques

affirment que cette approche tend vers la centralisation : si vous comptez sur l'augmentation de la puissance d'un seul nœud pour évoluer, vous vous heurterez inévitablement aux limitations physiques du matériel sous-jacent et serez obligé d'augmenter les exigences matérielles pour évoluer davantage.

Cependant, cette critique est

incorrecte, car toutes les chaînes singularisées ne reposent pas uniquement sur une mise à l'échelle verticale.

Par exemple, Near est une blockchain monolithiqueL1 construite sur une architecture de réseau fragmentée. Cela signifie que les nœuds complets de Near sont responsables de toutes les tâches (c'est-à-dire l'exécution, le règlement et la disponibilité des données), mais ils ne sont responsables que d'une petite partie de l'état global de Near. Par conséquent, Near exploite la puissance de calcul de plusieurs ordinateurs (tout comme une chaîne modulaire) en distribuant le travail en fonction du statut plutôt que des tâches .

模块化 vs. 单体化架构已死Nous pouvons voir que non

qu'il s'agisse d'une chaîne monolithiqueou d'une chaîne modulaire,n'a aucune restriction en termes de technologies d'expansion qu'elles mettent en œuvre. Les deux peuvent être étendus horizontalement et/ou verticalement . De plus, le débat entre modularité et monolithisation

est toujours enraciné dans le cadre de l'expansion horizontale ou verticale

. D'un point de vue strictement technique, le modulaire a tendance à évoluer horizontalement, ce qui est inhérent à sa conception, tandis que le monolithique a tendance à évoluer verticalement.

Maintenant que nous avons lancé avec succès la chaîne modulaire, l'avantage d'évolutivité supplémentaire n'est plus « plus modulaire ». L'accent est désormais mis sur la manière dont la chaîne peut utiliser la technologie de mise à l'échelle horizontale ou verticale.

adopter un modèle de penser horizontal versus vertical nous permet de raisonner facilement sur les compromis que chaque chaîne fait en cours de route.

Redéfinir la conversation : mise à l'échelle horizontale ou verticale 

Avant de se plonger dans le cadre de la mise à l'échelle horizontale ou verticale, il est important de reconnaître que ses origines remontent aux années 1970, lorsque l'informatique distribuée était étudiée en tant que mise à l'échelle horizontale. Les concepts jettent les bases . De nos jours, Toutes les technologies de mise à l'échelle peuvent être classées en mise à l'échelle horizontale ou verticale.

Mise à l'échelle verticale

La mise à l'échelle verticale augmente l'utilisation du matériel ou les exigences matérielles de chaque nœud. Dans la blockchain, cela se fait généralement via des optimisations logicielles telles que des machines virtuelles parallèles (c'est-à-dire des processus multithread). Un exemple courant est

EVM

contre SVM. EVM

exécute les transactions dans l'ordre

, tandis que SVM exécute les transactions en parallèle. SVM y parvient en utilisant plus de cœurs de processeur, de sorte que SVM peut gérer plus de transactions par seconde qu'EVM. REMARQUE : Ce type d'extension verticale est la base d'Eclipse L2.

En termes de compromis, la mise à l'échelle verticale est limitée par le matériel disponible, a tendance à être centralisée en raison des exigences matérielles accrues et est moins évolutive que la mise à l'échelle horizontale.

模块化 vs. 单体化架构已死

Mise à l'échelle horizontale

D'autre part, la

Mise à l'échelle horizontale

augmente le nombre de machines auxquelles un système peut accéder en répartissant la charge de travail sur plusieurs nœuds. Comme mentionné précédemment, le chaînage modulaire répartit essentiellement les tâches sur plusieurs machines. Cependant, les chaînes peuvent souvent atteindre un plus grand degré de mise à l'échelle horizontale grâce au sharding.

模块化 vs. 单体化架构已死

=nil;Un exemple utile est fourni ici.

En novembre dernier, la Fondation =nil; a lancé une architecture de partage vérifiable appelée zkSharding, qui est la base du nouvel Ethereum L2. =nil; Le cœur de la conception est de diviser son état global en plusieurs fragments. Chaque fragment est géré par un =nil;comité décentralisé, qui construit des blocs et gère les transactions entre fragments. De plus, chaque fragment génère une preuve de validité qui est envoyée au fragment maître pour agrégation, puis publiée et vérifiée sur Ethereum. =nil; exploite la capacité de mise à l'échelle horizontale de deux manières :

  • Premièrement, =nil ; est une blockchain modulaire qui exploite le fort consensus et la disponibilité des données d'Ethereum comme garanties, répartissant ainsi les tâches sur plusieurs nœuds.

  • Deuxièmement ,=nil; est une blockchain fragmentée, donc les états partiels sont distribués sur de nombreux nœuds full.

Les deux techniques réduisent la charge que toute machine doit supporter et

augmentent l'évolutivité globale du réseau. Alors, quels sont les compromis pour une mise à l'échelle horizontale

 ? Cela se résume à deux choses : la complexité du réseau et du consensus et la communication asynchrone entre les machines ou les fragments.

La fin du jeu pour l'évolutivité d'Ethereum

Ni la mise à l'échelle horizontale ni la mise à l'échelle verticale

ne sont

limitées aux architectures modulaires ou monolithiques. C'est pourquoi le cadre de mise à l'échelle horizontale vs verticale offre plus d'espace pour explorer de nouvelles solutions, rendant les blockchains modulaires plus évolutives.

Par exemple, une option consiste à mettre à l'échelle verticalement une couche de la pile modulaire. Une méthode couramment utilisée consiste à implémenter des machines virtuelles parallèles pour améliorer le débit d'exécution. Comme mentionné ci-dessus, Eclipse exploite SVM et d'autres Rollups, tels que Starknet, pour implémenter BlockSTM pour la parallélisation.

Cependant, l'expansion verticale est toujours limitée par les limites d'une seule machine, et nous ne pouvons pas enfreindre les lois de la physique .

Une solution pourrait être d'opter pour une mise à l'échelle horizontale via le partage .

Les conceptions modulaires actuelles commencent tout juste à exploiter tout le potentiel de l’échelle horizontale. Avec le sharding, nous pouvons exploiter la puissance de calcul de n'importe quel nombre de machines (plutôt que seulement 2-3 machines partageant des tâches).

En d’autres termes, de nombreuses machines peuvent exécuter le même type de tâches en parallèle. C’est ce qu’Ethereum et Celestia espèrent réaliser respectivement grâce au Danksharding et au Data Sharding. Cependant, le partitionnement n'est pas intrinsèquement limité à la couche de disponibilité des données : il peut également être combiné avec l'exécution (comme dans le cas de =nil ; L2).

模块化 vs. 单体化架构已死

Si nous combinons la mise à l'échelle horizontale obtenue grâce à l'empilement modulaire avec la mise à l'échelle horizontale fournie par le sharding, nous obtiendrons une énorme augmentation de la puissance de calcul disponible .

Mais nous pouvons faire mieux...

Le but ultime de l'évolutivité de la blockchain sera fusionner la mise à l'échelle horizontale et verticale, résultant en une blockchain fragmentée avec des machines virtuelles parallèles.

模块化 vs. 单体化架构已死

À la =nil;Fondation, nous nous dirigeons systématiquement vers cette conception de l'état final. Le L2 de =nil; adopte une feuille de route de mise à l'échelle agressive en tirant parti d'une architecture modulaire et évolutive horizontalement (zkSharding) et d'une implémentation de validateur évolutive verticalement (parallélisation intra-shard).

Ainsi, la conception de =nil; permet une échelle mondiale sans sacrifier l'état, la liquidité ou la fragmentation des utilisateurs.

模块化 vs. 单体化架构已死

Si vous êtes curieux de connaître la mise à l'échelle horizontale et le zkSharding, vous pouvez rejoindre la conversation sur Discord et X de la Fondation =nil ;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer