Solana est actuellement la blockchain la plus performante de l’écosystème crypto. Pour arriver à un débit de 50,000 transactions par seconde, son équipe de développement, sous l’égide d’Anatoly Yakovenko, a dû apporter son lot d’innovations dont fait partie Sealevel. Cet environnement d’exécution permet de traiter plusieurs dizaines de milliers d’opérations simultanément.
Lors de précédents articles, nous avons étudié le fonctionnement de la Proof of History, son système d’horodatage des blocs; puis Tower BTF, son mécanisme de consensus ; ou encore Turbine, sa méthode de propagation des blocs, ainsi que Gulfstream, sa propagation des transactions sans mempool.
Dans cet article, focus sur Sealevel, le tour de passe-passe ingénieux qui permet d’exécuter simultanément des milliers de smart contracts.
Cet article vous est proposé dans le cadre d’une campagne de communication éducative, et soutenue par Solana.
Sealevel est l’environnement d’exécution de Solana. Tout comme sur Ethereum ou encore EOS, ce runtime permet de modifier l’état de la blockchain, en fonction des instructions programmées au sein des contrats autonomes. Mais à la grande différence de ses prédécesseurs, Solana permet d’exécuter des dizaines de milliers de smart contracts en parallèle.
Sur l’Ethereum Virtual Machine, les instructions forment une pile, et un seul contrat peut modifier l’état de la blockchain lorsque son temps est venu. Sur Solana, chaque cœur des processeurs d’un nœud validateur du réseau peut exécuter une instruction, en même temps que les autres.
Toute transaction sur Solana décrit précisément les différents changements d’état de la blockchain qui en découleront, en lecture comme en écriture. Cela confère des avantages notables :
Sealevel est donc l’environnement d’exécution de Solana, déployé sur n’importe quel nœud validateur. Son déploiement requiert le matériel informatique suivant :
Comme vous le constatez, le matériel requis reste assez conséquent pour déployer Sealevel. Pour autant, le runtime de Solana est assez simple à comprendre.
En effet, comme sur Ethereum, toutes les opérations des contrats ont un coût (compute budget).
La base de données recensant les comptes sur la blockchain de Solana s’appelle Cloudbreak. Elle permet d’établir une correspondance entre chaque clef publique et le compte associé. Chaque compte comporte un solde et des données. Il a aussi un propriétaire : la clef publique du programme qui gouverne ses changements d’état.
En revanche, les programmes (smart contracts) n’ont pas d’état : ils sont seulement une suite de lignes de code. Afin de modifier l’état d’un compte, ils s’appuient sur les données inscrites sur le ou les comptes impliqués.
Les smart contracts ont donc des autorisations, mais aussi des limitations vis-à-vis des comptes avec lesquels ils interagissent :
Tous les comptes, au départ, ont le même propriétaire : le programme système. Il est le seul qui peut assigner la propriété d’un compte (une seule fois pour toute la duré de vie du compte) ou lui allouer des données vierges (zero-initialized data).
Lorsqu’un développeur déploie un programme, il a recours au loader program. C’est lui qui permet de définir comme « exécutables » les données associées à un compte. Il s’agit simplement d’une série de transactions :
Bien évidemment, le loader va vérifier le bytecode : s’il est correct, le compte sur lequel ce code a été téléversé pourra alors être utilisé comme un programme exécutable. Les nouveaux comptes qui seront créés seront la propriété dudit programme. Ce programme aura donc un accès en écriture privilégié à tout un sous-ensemble de clefs.
Sur Solana, les transactions consistent en une série d’instructions, assorties de la liste des comptes concernés (accès en lecture ou en écriture). Ces instructions ressemblent à celles d’un système opérationnel de bas niveau. Avant leur exécution, le noyau du système (kernel) connaît chaque case mémoire que le programme souhaite lire ou écrire. Cela permet au système/nœud de prétraiter l’opération, puis de l’exécuter (en parallèle d’autres opérations) si sa configuration matérielle le permet.
C’est ce « pré-traitement » qui permet à la machine virtuelle de Solana d’optimiser l’exécution de ces instructions et de les exécuter en parallèle. Les transactions en attente sont ordonnées, et toutes celles qui ne se chevauchent pas peuvent être exécutées simultanément (dans la limite de la capacité de traitement des processeurs).
L’environnement d’exécution de Solana – Sealevel – tire donc parti de la conception physique des CPU et des GPU. En taxonomie informatique, on parle de Single instruction, multiple data (SIMD). Les processeurs sont composés de différents cœurs, qui peuvent traiter une même opération, sur de multiples données, en parallèle.
Par exemple, les processeurs graphiques (GPU) modernes de Nvidia comportent 4000 cœurs, pour 50 multiprocesseurs. Chaque multiprocesseur peut donc traiter simultanément 80 entrées différentes (pour une seule instruction).
Ainsi, si une série de transactions sur Solana (chargée via Sealevel) fait appel aux instructions d’un même programme, elles pourront être traitées en même temps, de façon parallèle, en fonction du nombre de cœurs.
Pour approfondir la notion d’architecture des multiprocesseurs multitâches et de SIMD, il faut lire la documentation de CUDA, disponible sur le site de Nvidia.
Sealevel est tout simplement un environnement d’exécution qui tire partie des possibilités offertes par les processeurs d’aujourd’hui. C’est la première fois qu’un réseau blockchain peut traiter des instructions en parallèle, et non une par une. Cette innovation (entre autres) permet à Solana d’atteindre son débit et son usabilité hors-normes. Mais rassurez-vous, il nous reste encore quelques briques technologiques révolutionnaires de plus à étudier !
Cofounder @ 8Decimals - Journal du Coin / BitConseil / Trading du Coin
Pour aller plus loin
Démarches fiscales pour détenteur de crypto-actifs : ce qu’il faut savoir
Le trading du coin propose CryptoTax, une suite d’outils pour automatiser et faciliter les démarches fiscales des possesseur de cryptomonnaies
Dans la même catégorie
Entrez dans la cour des grands du trading de cryptos : nos astuces pour performer sur FTX
Afin de vous familiariser avec le trading de produits dérivés, nous vous proposons une entrevue complète de FTX et son interface de trading. Rappel : le trading comporte des risques importants, et vous pouvez perdre la totalité de votre capital. Cet article est conçu dans un but éducatif, et ne constitue en aucun cas un … Continued
Recevez un condensé d'information chaque jour
Suivant
Ce site utilise des cookies afin que nous puissions vous fournir la meilleure expérience utilisateur possible. Les informations sur les cookies sont stockées dans votre navigateur et remplissent des fonctions telles que vous reconnaître lorsque vous revenez sur notre site Web et aider notre équipe à comprendre les sections du site que vous trouvez les plus intéressantes et utiles.
Cette option doit être activée à tout moment afin que nous puissions enregistrer vos préférences pour les réglages de cookie.
Si vous désactivez ce cookie, nous ne pourrons pas enregistrer vos préférences. Cela signifie que chaque fois que vous visitez ce site, vous devrez activer ou désactiver à nouveau les cookies.
Ce site utilise Google Analytics pour collecter des informations anonymes telles que le nombre de visiteurs du site et les pages les plus populaires.
Garder ce cookie activé nous aide à améliorer notre site Web.
Veuillez activer d’abord les cookies strictement nécessaires pour que nous puissions enregistrer vos préférences !