Mécanisme GAS innové par le langage MOVE : analyse complète du plan de facturation des ressources off-chain

robot
Création du résumé en cours

Conception du premier GAS pour le langage MOVE : analyse de la méthode de calcul des frais de GAS off-chain

La première version du langage MOVE était initialement prévue pour fonctionner dans un environnement sans GAS, et n'était donc pas préparée pour le mécanisme GAS. Récemment, une équipe de blockchain publique a conçu le premier plan GAS pour le langage MOVE sur sa blockchain, ce qui est considéré comme une "tentative audacieuse".

Dans ce plan GAS, l'équipe de rédaction a exposé les principes de conception, le processus de mise en œuvre, la méthode de calcul du GAS, le mécanisme d'ajustement ultérieur et a exprimé son souhait de recevoir des suggestions de la part de la communauté.

La mesure du GAS est un concept fondamental de nombreuses blockchains, qui définit de manière abstraite la quantité de ressources de calcul et de stockage nécessaires pour exécuter et stocker des transactions on-chain. Le schéma de GAS détermine le coût de toutes les opérations exécutées on-chain, utilisé pour calculer les dépenses en GAS pendant l'exécution des transactions.

processus d'implémentation

Pour une exécution efficace, le processus off-chain comprend :

  1. Définir les principes de conception
  2. Préparer le cadre d'évaluation, déterminer le prix de chaque opération exécutée
  3. Établir un système de mesure de GAS et une algèbre de GAS sécurisée pour MOVE
  4. Importer le cadre GAS en amont dans la chaîne de blocs
  5. Rendre le cadre GAS capable de percevoir le stockage
  6. Optimiser davantage le plan GAS

principes de conception

  1. Les coûts d'opération devraient être directement liés aux ressources disponibles sur le réseau (comme le CPU, la mémoire, le réseau, le stockage I/O et l'utilisation de l'espace, etc.). Avec les améliorations technologiques et des processus, le coût du GAS devrait diminuer en conséquence.

  2. GAS doit être configuré par la gouvernance off-chain et peut être configuré sans couture.

  3. GAS peut prévenir les attaques DoS sur les ressources fixes du réseau et peut être rapidement ajusté par la gouvernance en fonction de la situation du réseau.

  4. Le prix du GAS devrait refléter la vision d'une croissance accélérée et du maintien de la popularité de la blockchain.

  5. Encourager à faire des choix excellents dans la conception, tels que privilégier la sécurité, la modularité et les assertions.

méthode de calcul GAS

L'utilisateur doit spécifier deux valeurs lors de la soumission de la transaction :

  • Quantité maximale de GAS : le nombre maximal d'unités de GAS que l'utilisateur est prêt à payer pour exécuter une transaction.
  • Prix unitaire du GAS : calculé en octal par unité de GAS, 1 octal = 0.00000001 jeton natif.

Des frais seront appliqués lors de l'exécution de la transaction :

  1. Coûts fixes : frais de base plus les frais supplémentaires pour les grosses transactions
  2. Coût d'exécution : utilisé pour exécuter des instructions MOVE
  3. Coût de lecture : frais de lecture des données à partir du stockage persistant
  4. Coût d'écriture : le coût d'écriture des données dans un stockage persistant

Frais de transaction final = Quantité totale de GAS consommée × Prix du GAS

Par exemple, une transaction consomme 670 unités de GAS, le prix du GAS spécifié par l'utilisateur est de 100 Octa/unité, donc le coût final est de 670 × 100 = 67000 Octa = 0,00067 jetons natifs.

Si le GAS s'épuise pendant l'exécution de la transaction, l'expéditeur sera facturé selon la quantité maximale de GAS, et toutes les modifications seront annulées.

Explication détaillée du plan GAS

  1. Configuration de base

Le plan GAS comprend certains composants qui ne sont pas liés à une opération unique, tels que la taille de la transaction et le maximum d'unités de GAS.

  1. Taille de la transaction

La plupart des tailles de transaction sont au niveau du kilooctet. La publication du module Move peut atteindre quelques kilooctets, tandis qu'un certain cadre est d'environ 100 Ko. Les modules utilisateurs varient généralement entre 4 Ko et 40 Ko. La taille initiale de la transaction est fixée à 32 Ko, puis ajustée à 64 Ko en fonction des retours de la communauté, afin de simplifier le développement des applications.

Des transactions trop importantes augmenteront le coût de la bande passante du réseau et pourraient affecter les performances. Pour équilibrer l'échelle et l'accessibilité, le pool de mémoire pourrait ignorer les transactions trop volumineuses.

  1. Maximum unité de GAS

La définition de l'unité maximale de GAS dans le plan GAS détermine le nombre maximal d'opérations pouvant être exécutées par une seule transaction. Cela diffère de la quantité maximale de GAS spécifiée par l'utilisateur. Un réglage trop élevé peut entraîner des problèmes de performance, tels que des boucles infinies. Actuellement, même lors de la mise à niveau de cadre à grande échelle, moins de 90 % de l'unité maximale de GAS (fixée à 1 000 000) est utilisée.

  1. Évaluation des coûts d'exécution

L'équipe utilise un cadre de référence et l'outil d'analyse Valgrind pour évaluer le coût d'exécution, en déterminant le coût relatif des instructions MOVE et des fonctions natives. En tenant compte des exemples de codage qui améliorent la robustesse et la sécurité du système, le nombre final d'instructions machine exécutées a été déterminé.

  1. Coût de stockage

Le plan de stockage de GAS prend en compte la bande passante d'accès aux données, la capacité IOPS ainsi que le coût de stockage permanent. L'accès à tout élément d'état implique des coûts liés à la vérification de l'état de la blockchain. La formule de calcul des frais de stockage de GAS est :

Frais de stockage de GAS = Frais de projet + ( frais par octet × Nombre d'octets )

  1. Lire, créer et écrire des opérations
  • Lecture : opération la plus courante, calibrage des frais en fonction des IOPS du disque et de la capacité de bande passante.
  • Création : Ajout de nouveaux éléments dans le stockage d'état, coût maximal, calibré en fonction de l'espace disque du réseau.
  • Écriture : mettre à jour un élément existant, les frais en octets sont les mêmes que pour la création.

Les coûts de stockage sont évalués sur la base de chaque transaction, même si la même ressource est lue/écrite plusieurs fois, des frais ne sont facturés qu'une seule fois.

participation communautaire

En tant que projet communautaire, les membres peuvent :

  1. Indiquer les incohérences dans le plan GAS.
  2. Exprimer des préoccupations et participer à la discussion
  3. Voter sur les propositions de gouvernance pertinentes

ajustement des coûts de GAS

Le plan GAS, en tant que stockage de configuration off-chain, peut être modifié par des propositions de gouvernance. Il est conçu pour être évolutif, permettant des mises à niveau via la gouvernance. Avec les avancées technologiques et les retours des utilisateurs, les paramètres GAS peuvent être ajustés au fil du temps.

Des modifications complexes des formules de GAS peuvent nécessiter une mise à jour du logiciel des nœuds, et être différenciées par de nouveaux indicateurs de caractéristiques de GAS. Cela nécessite une adoption large de la nouvelle version par les opérateurs de nœuds, et l'approbation de son utilisation par des propositions de gouvernance.

Travail futur

En tant que premier cadre de GAS pour le langage MOVE, cette conception jette les bases pour le travail futur :

  1. Réduire les coûts d'exécution : en améliorant l'efficacité du compilateur et de la machine virtuelle.

  2. Calcul GAS multidimensionnel : permet aux utilisateurs de spécifier des budgets séparés pour l'exécution et le stockage, réalisant ainsi une définition de prix maximum du GAS plus granulaire.

  3. Atténuer l'expansion des états : explorer le concept de TTL pour chaque projet, en supprimant automatiquement les éléments d'état non visités à l'expiration du TTL, afin d'encourager les développeurs à nettoyer les données off-chain.

Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Récompense
  • 5
  • Partager
Commentaire
0/400
GateUser-3824aa38vip
· 07-06 09:00
Économiser le gas, c'est tout.
Voir l'originalRépondre0
CascadingDipBuyervip
· 07-06 08:56
bull ah enfin quelqu'un s'occupe du gas
Voir l'originalRépondre0
GigaBrainAnonvip
· 07-06 08:54
Ce gas est trop fort, il est si cher que mes jambes fléchissent.
Voir l'originalRépondre0
ZkSnarkervip
· 07-06 08:53
techniquement, ce modèle de gas n'est que zkvm avec des étapes supplémentaires
Voir l'originalRépondre0
RugpullAlertOfficervip
· 07-06 08:38
Encore une nouvelle façon de faire un Rug Pull ?
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)