Jouez avec Solana, maîtriser le concept principal de Solana

En 2024, Solana a émergé inhabituellement, TVL a grimpé d’un milliard de dollars américains au début de l’année à près de 5 milliards de dollars américains aujourd’hui, et est devenu la quatrième plus grande chaîne publique.

Par rapport à Ethereum, Solana a apporté une meilleure expérience aux utilisateurs à une vitesse plus rapide et à moindre coût.Son mécanisme consensuel basé sur POH et son modèle d’exécution de transactions asynchrones fournit aux développeurs un débit élevé et des performances de blockchain faibles, devenant la plate-forme préférée pour diverses applications décentralisées.

>

Planification spéciale de Blocksec« Jouez à Solana »La série d’articles couvre les concepts de base de Solana, visualisant et analysant les directives pratiques du trading de Solana et rédaction des tutoriels de contrat intelligent Solana.

En tant que première phase de cette série, cet article présentera les concepts clés du réseau Solana, y compris son mécanisme de fonctionnement, son modèle de compte et sa transaction, pour rédiger les bases des contrats Solana corrects et efficaces pour tout le monde.

EBPF: la pierre angulaire de l’exécution de la transaction Solana

Afin d’écrire et d’exécuter des contrats intelligents, la blockchain nécessite souvent un environnement informatique des langages de programmation et de Turing.

Les amis qui connaissent Ethereum doivent savoir que les contrats intelligents sur Ethereum utilisent généralement la solidité du langage de haut niveau pour écrire, tandis que le code d’octet compilé par la solidité s’exécute dans un environnement appelé Machine virtuelle Ethereum.

Solana n’a pas choisi de développer un nouvel environnement et un nouvel environnement virtuel, mais a utilisé pleinement les excellentes technologies existantes.Les machines virtuelles EBPF (Filtre de paquets Berkeley étendue) qui ont été initialement utilisées pour étendre la fonction du noyau Linux ont été sélectionnées par Solana comme environnement d’exécution sous-jacent.

Alors, quels sont les avantages de l’EBPF par rapport à EVM?

Par rapport à l’EVM qui ne prend en charge que l’exécution de l’explication, l’EBPF peut convertir directement le bytecode en une instruction de machine dans le processeur en mode compilation réelle (JIT), exécutant ainsi le programme plus efficacement.

EBPF a un ensemble d’ensembles d’instructions efficaces et d’infrastructure mature.Les développeurs n’ont qu’à utiliser le langage de la rouille pour écrire des contrats intelligents.Le cadre de compilation LLVM fournit un backend de l’EBPF, l’utilisant pour compiler directement le programme écrit par ces langues de rouille dans le code d’octet qui peut s’exécuter sur la machine virtuelle EBPF.

Modèle de compte de Solana

1. Structure du compte Solana

Les données sur Solana sont stockées sous la forme d’un compte.Comme le montre la figure ci-dessous, nous pouvons considérer toutes les données de Solana comme une énorme valeur de clé pour la base de données.La clé de la base de données est l’adresse du compte, pour le compte « Wallet » (c’est-à-dire,

Pour les utilisateurs de Solana via des clés privées publiques pour le contrôle direct sur le compte), cette adresse est une clé publique générée à l’aide du système de signature ED25519;

>

Solana utilise une structure appelée CompteInfo pour décrire un compte, qui est composé comme indiqué dans la figure ci-dessous.

>

Chaque compte de Solana contient quatre champs.Ici, nous l’expliquons un par un.

  • Champ de donnéesLes données liées au compte sont stockées.Si le compte est un programme (c’est-à-dire un contrat intelligent), c’est en fait le Bytecode EBPF.Sinon, le format d’information dans les données est généralement défini par le fondateur du compte.

  • Champ exécutableIl est utilisé pour identifier si le compte est un programme.Il convient de noter que contrairement à Ethereum, le programme de Solana peut être mis à jour.

  • Champ de lampes de lampesEnregistrez le solde du compte Solana Token.Lamports est en fait la plus petite unité de jeton Sol (1 Sol = 1 milliard de lampes).

  • Champ du propriétaireA demandé au propriétaire du compte courant.À Solana, tout compte a un « propriétaire ».Par exemple, le propriétaire de tous les compte « Wallet » est le programme système, qui est un compte spécial sur le réseau Solana, responsable de la création de compte et d’autres fonctions.Le propriétaire du compte est la seule personne qui peut modifier les données du compte et déduire le solde des lamports (mais n’importe qui peut augmenter lesmorties, c’est-à-dire exécuter la fonction de transfert vers le compte).

2. Compte de Solana de l’abandon

Solana a un ensemble appeléProgrammes natifsLe programme d’exécution prédéterminé est déployé sur une adresse fixe.Avec la mise à niveau du réseau Solana, ces programmes prédéfinis peuvent également être mis à jour.Nous pouvons comprendre ces programmes comme des API et des fonctions de bibliothèque qui fournissent des fonctions spécifiques dans le réseau Solana.

Dans les programmes natifs, les développeurs doivent souvent interagir avec lui.Programme systèmeEssenceLe programme système fournit aux développeurs des instructions et nous pouvons comprendre chaque instruction comme une méthode indépendante.Par exemple, les développeurs peuvent utiliser l’instruction CreateAccount pour créer un nouveau compte ou utiliser l’instruction de transfert pour transférer desmorts vers d’autres comptes.

Un autre programme natif commun est un programme de chargeur BPF.Il s’agit du propriétaire de tous les autres comptes de programme, qui est responsable du déploiement, de la mise à jour et de l’exécution de procédures spécifiques.Lorsqu’un compte « Wallet » doit mettre à jour son programme déployé, il est en fait complété par la mise en service du programme de chargeur BPF.

En plus des programmes natifs, Solana fournit également un ensembleSysvarCompte.Ils fournissent des informations et des variables globales liées à l’état actuel du réseau Solana, tels que l’horloge actuelle, le hachage de bloc le plus proche, etc.

3. Loyer du compte

Sur la chaîne Solana, chaque compte doit maintenir un certain nombre de lampes comme le quota minimum, qui s’appellelouerEssenceContrairement au concept de loyer dans la vie réelle, le loyer sur Solana peut être récupéré.Afin de s’assurer que les données du compte sur la chaîne sont disponibles, le compte doit contenir la quantité correspondante de lampiers.Le montant du loyer est lié à la taille de l’espace de stockage du compte sur la chaîne.

Toute transaction tentant de déduire le solde du compte inférieur au montant du loyer échouera, sauf si la transaction déduit directement le solde du compte à zéro.Cette opération indique que le loyer du compte a été récupéré.

Quoi de plus?Afficher « Compte Solana » dans le navigateur

Afin de conduire tout le monde à mieux comprendre les concepts pertinents, nous utilisons le projet « Hello World » fourni par Solana pour créer un compte de programme.Le compte suivantQuoi de plus?Informations connexes.

Cjwhxb4qewbv9egyuktn881bndmdklbzh1fmdwqllhoe

>

Comme le montre la figure ci-dessus, nous pouvons d’abord voir que le compte a été marqué par le navigateur Solana comme « programme ».Lors de la création du compte, certains Lamports est déduit du solde de l’expéditeur comme le loyer du compte.

Deuxièmement, parce que nous créons un programme, son champ exécutable est oui.Il peut y avoir une chose difficile ici, c’est-à-dire que les lecteurs peuvent constater que le champ de données stocke une adresse plutôt que le programme EBPF.Nous avons mentionné plus tôt que Solana autorise les programmes de mise à jour, et il est en fait implémenté via un mode « proxy ».Étant donné que Solana n’autorise pas la modification directe des comptes du programme, il crée un compte de données pour stocker le programme EBPF, et le champ de données du compte du programme stocke uniquement l’adresse du compte de données.Chaque fois que vous devez mettre à jour le programme, vous n’avez qu’à modifier le champ de données dans le compte de données.Nous utilisons SOLSCAN pour vérifier le compte du champ de données exécutable.

>

De retour à l’image précédente, nous pouvons constater que le champ du propriétaire dans plus d’informations est BPF Loader, qui est cohérent avec notre description dans la section précédente.

Il y a aussi un champ appelé « Autorité de mise à niveau » dans la vue d’ensemble.

Comme nous l’avons mentionné précédemment, le compte « Wallet » est mis à jour pour mettre à jour le programme en commandant BPF Loader.Étant donné que le champ du propriétaire du compte du programme est déjà BPF Loader, il n’a pas de place pour stocker les informations, donc Solana choisit de stocker ces informations dans le compte de données du compte de données.La figure ci-dessous montre la relation entre le compte du programme et le compte de données.

>

Les transactions et instructions de Solana

Dans Solana, les utilisateurs exécutent également des programmes en émettant des transactions.Sa chose particulière est queSolana peut exécuter ces transactions en parallèleC’est également une raison importante pour laquelle il peut fournir des transactions de foudre.Ensuite, examinons comment les transactions de Solana sont conçues.

Une transaction Slana se compose de la signature et du sujet du message.Une transaction peut contenir plusieurs signatures.Le corps principal de la transaction est composé de quatre parties, comme le montre la figure ci-dessous.

>

NouvellesInformations de tête(En-tête) etTableau d’adresse du compte(Adresses compactes d’adresses de compte) Les deux champs spécifient les caractéristiques de tous les comptes et comptes impliqués dans la transaction dans les transactions: si le compte fourni des signatures et s’il sera rédigé pendant l’exécution.En utilisant ces informations, Solana peut vérifier les signatures fournies par le compte correspondant et peut exécuter les transactions qui ne touchent pas la même collecte de compte en parallèle.

Le plus procheBloc(Blockhash récent) est l’horodatage de la transaction.Le réseau Solana garantit que la transaction provient des 150 derniers blocs, sinon la transaction sera considérée comme expire et ne sera pas exécutée.

Tableau d’instructions(Tableau compact de l’instructeur) est la partie la plus importante de la transaction et contient une ou plusieurs instructions.Une instruction est en fait appelée une routine fournie par un programme.L’instruction se compose de trois champs, comme le montre la figure ci-dessous:

>

Le premier champ d’index d’identification du programme spécifie le récepteur de l’instruction, c’est-à-dire que le programme de chaîne sur l’instruction doit être traité.Il ne stocke pas directement une adresse de 32 octets, mais place l’adresse dans le tableau d’adresse du compte dans le sujet du message.Ce champ utilise une offre d’un octet pour indiquer que sa position dans le tableau réalise une réutilisation d’espace.

Semblable au premier champ, le deuxième champ est un tableau compact des index d’adresses de compte, qui se compose de l’adresse du compte, qui indique que tous les comptes impliqués dans l’instruction sont spécifiés.

Le dernier champ est un tableau d’octets.

Il convient de noter que Solana gérera toutes les instructions de la transaction dans l’ordre et s’assurera que l’exécution de la transaction est atome.Cela signifie que les instructions d’une transaction sont soit échouées ou toutes les toutes exécutées avec succès, et il n’y aura aucun cas où certaines instructions seront exécutées avec succès et une défaillance partielle.

Quoi de plus?Afficher la « transaction Solana » dans le navigateur

Nous utilisons un autre navigateur Solana pour afficherCréer une transaction d’un compte de programme plus tôt?EssenceDans une vue d’ensemble, vous pouvez voir les signatures des transactions Solana, un hachage de bloc récent et d’autres informations:
3UKQ85LPSNWB5D6CGUNTOMYJX3TSAEGB4PJUOMAMYNVQQNPP5PRG1KJEEEK3YEMZGMOJ5ROWGON8HZWL9D

>

Dans l’entrée du compte, les caractéristiques de tous les comptes et les comptes connexes impliqués dans la transaction actuelle sont répertoriés dans les transactions.Nous pouvons voir qu’en plus des expéditeurs, des comptes de programme et d’autres adresses, les deux programmes natifs et les comptes Sysvar sont également inclus.

>

Étant donné que la transaction est une transaction de création de programme simple, elle ne contient que deux instructions.Programme système, Responsable de la création d’un compte de programme;Chargeur BPFResponsable de la rédaction du code EBPF déployé réel dans le compte de données et de l’adresse de son adresse dans le champ de données du compte du programme.

>

Résumer

Le contrat intelligent sur Solana est développé en langage de rouille et fonctionne sur la machine virtuelle EBPF.Il suit le modèle de compte et le compte sur la chaîne doit maintenir le loyer pour garantir la disponibilité des données.La transaction se compose d’une ou plusieurs instructions, qui définit clairement tous les comptes qui dépendent, afin que la transaction puisse être traitée en parallèle, une augmentation du débit et réduire le retard de réponse.Ces caractéristiques favorisent conjointement le développement rapide de Solana et en font l’une des plates-formes de blockchain populaires.

  • Related Posts

    Une mort pré-provocatrice: l’argent et la nature humaine derrière la fausse mort de Jeffy

    Jessy, vision de Bitchain Meme in the Currency Circle a publié un nouveau récit: la piste de la mort. Le 6 mai, une nécrologie de la mort de Zerebro Jeffy…

    Binance retirée des étagères mais a grimpé en flèche. Trading extrême du concessionnaire alpaca

    Jessy, vision de Bitchain Selon le bon sens, un jeton est retiré de l’échange, qui est une nouvelle négative majeure. Cependant, cette règle n’a pas été parfaitement reproduite le 2…

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    You Missed

    De la pièce de mème à la peau CSGO: la spéculation ne dort jamais

    • By jakiro
    • mai 15, 2025
    • 0 views
    De la pièce de mème à la peau CSGO: la spéculation ne dort jamais

    Cette fois, les investisseurs de détail Ethereum ont vaincu les institutions

    • By jakiro
    • mai 15, 2025
    • 1 views
    Cette fois, les investisseurs de détail Ethereum ont vaincu les institutions

    Sans banque: reconstruire le mécanisme de circulation des produits et de la monnaie d’Ethereum

    • By jakiro
    • mai 15, 2025
    • 1 views
    Sans banque: reconstruire le mécanisme de circulation des produits et de la monnaie d’Ethereum

    9 Expériences d’investissement importantes de Buffett

    • By jakiro
    • mai 15, 2025
    • 1 views
    9 Expériences d’investissement importantes de Buffett

    Wall Street Journal: Pourquoi Buffett a-t-il pris sa retraite?Qui est le prochain successeur?

    • By jakiro
    • mai 15, 2025
    • 2 views
    Wall Street Journal: Pourquoi Buffett a-t-il pris sa retraite?Qui est le prochain successeur?

    Les pets de Fartcoin retentissaient par Wall Street

    • By jakiro
    • mai 14, 2025
    • 5 views
    Les pets de Fartcoin retentissaient par Wall Street
    Home
    News
    School
    Search