Discussion sur la première conception de GAS du langage MOVE
La dernière version du langage MOVE était initialement prévue pour fonctionner dans un environnement sans GAS, et n'était donc pas préparée au mécanisme GAS. Récemment, un projet de blockchain a conçu pour la première fois un plan GAS pour le langage MOVE, ce qui est considéré comme une tentative innovante. L'équipe du projet a publié les principes, le processus, la méthode de calcul et le plan d'ajustement ultérieur pour la création du GAS, et a déclaré qu'elle accueillait les suggestions de la communauté.
La mesure du GAS est un concept fondamental de nombreuses blockchains, utilisé pour quantifier les ressources de calcul et de stockage nécessaires à l'exécution et au stockage des transactions sur la chaîne. Le plan de GAS détermine le coût de toutes les exécutions sur la chaîne, utilisé pour calculer la consommation de GAS pendant l'exécution des transactions.
Processus de conception
Pour assurer une exécution efficace, le projet a adopté les processus suivants :
Définir les principes
Préparer le cadre d'évaluation, déterminer les prix d'exécution des différentes tâches.
Établir un système de mesure de GAS et une algèbre de GAS sécurisée pour MOVE
Importer le cadre GAS en amont dans le projet
Rendre le cadre GAS capable de perception de stockage
Améliorer davantage le plan GAS
Principes de conception
Les principes suivis par ce projet comprennent :
Le coût opérationnel doit être directement lié aux ressources disponibles sur le réseau et doit diminuer avec les progrès technologiques.
GAS devrait être configuré par la gouvernance on-chain, pouvant être configuré de manière flexible.
GAS doit prévenir les attaques DoS sur les ressources fixes du réseau, et peut s'ajuster rapidement en fonction de l'état du réseau.
Le prix du GAS doit refléter la vision de l'équipe de projet pour promouvoir la croissance et la généralisation de la blockchain.
Encourager à faire des choix excellents dans la conception, tels que l'accent sur la sécurité, la modularité, etc.
Méthode de calcul du GAS
L'utilisateur doit spécifier deux valeurs lors de la soumission d'une transaction :
Quantité maximale de GAS : le nombre maximal d'unités de GAS que l'utilisateur est prêt à payer pour l'exécution de la transaction
Prix du GAS : calculé en octal, 1 octal = 0,00000001 jeton natif
Des frais seront appliqués lors de l'exécution de la transaction :
Coûts fixes : frais de base plus frais de transaction supplémentaires importants
Coût d'exécution : utilisé pour exécuter l'instruction MOVE
Coût de lecture : utilisé pour lire des données à partir du stockage persistant
Coût d'écriture : utilisé pour écrire des données dans le stockage persistant
Frais de transaction final = Quantité totale de GAS consommée × Prix unitaire du GAS
Si le GAS s'épuise pendant l'exécution de la transaction, l'expéditeur sera facturé au montant maximal de GAS, les modifications effectuées par l'échange seront annulées.
Construction du plan GAS
configuration de base
Le plan GAS comprend plusieurs composants qui ne sont pas liés à des opérations spécifiques, tels que la taille des transactions et l'unité maximale de GAS.
taille de transaction
La plupart des tailles de transactions sont de l'ordre du KB, mais le module MOVE publié peut atteindre plusieurs milliers d'octets. Le cadre du projet fait environ 100KB, et la plupart des modules utilisateur se situent entre 4 et 40KB. Initialement, la taille de la transaction était fixée à 32KB, mais elle a été ajustée à 64KB en fonction des retours de la communauté.
Des transactions de grande envergure 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 grandes.
unité de GAS maximale
La quantité maximale de GAS définie dans le plan GAS détermine le volume maximal d'opérations pouvant être exécutées par une seule transaction. Un réglage trop élevé peut entraîner des problèmes de performance, tels que des boucles infinies. Même lors d'une mise à niveau majeure du cadre, moins de 90 % de la quantité maximale de GAS ( est utilisée, fixée à 1 000 000 ).
évaluation des coûts d'exécution
Évaluer le coût d'exécution à l'aide d'un cadre de référence et d'outils d'analyse, estimer le coût relatif des instructions MOVE et des fonctions natives. Après avoir pris en compte la stabilité et la sécurité du système, déterminer le nombre d'instructions machine exécutées au final, et établir la valeur actuelle dans le plan GAS en tenant compte du stockage et de l'unité maximale de GAS.
coût de stockage
L'accès au stockage est limité par la bande passante de l'appareil et les IOPS. Le plan de stockage GAS prend en compte la rareté immédiate et le coût d'occupation permanent. L'accès à tout élément d'état entraîne des coûts liés à la validation de l'état complet de la blockchain.
Frais de stockage de GAS = frais de projet + ( frais par octet × nombre d'octets )
opérations de lecture, de création et d'écriture
Lecture : opération la plus courante, calibrée sur la capacité IOPS et bande passante du disque
Création : coût le plus élevé, calibré en fonction de l'espace disque de référence
Écrire : mettre à jour un élément existant, les frais de byte sont les mêmes que lors de la création
Chaque transaction ne facturer qu'une seule fois les frais de lecture/écriture pour la même ressource.
coût unitaire stable du GAS
Le coût unitaire fixe du GAS aide à maintenir la stabilité du plan GAS, indépendamment de la valeur marchande des jetons natifs. Précis à environ 3 chiffres, le coût des transactions de transfert ordinaire est d'environ 700 unités de GAS.
Participation de la communauté
Le projet encourage les membres de la communauté :
Découvrir les incohérences du plan GAS
Participer aux discussions communautaires, exprimer des préoccupations concernant le plan GAS
Voter sur les propositions de gouvernance liées au GAS
Ajustement des coûts de GAS
Le plan GAS est utilisé comme stockage de configuration en chaîne, pouvant être modifié par des propositions de gouvernance. Il est conçu pour être évolutif, permettant des mises à niveau par le biais de propositions. Les changements complexes nécessitent la mise à jour du logiciel des nœuds et une adoption large, et enfin, la nouvelle version est approuvée par une proposition de gouvernance.
Direction de travail future
En tant que premier cadre GAS viable de MOVE, cette conception jette les bases pour le travail futur :
Réduire les coûts d'exécution : optimiser le compilateur et la machine virtuelle
Calcul GAS multidimensionnel : permet aux utilisateurs de spécifier un budget séparé pour l'exécution et le stockage.
Atténuer l'expansion de l'état : explorer l'introduction du concept TTL pour les éléments d'état, suppression automatique des éléments non visités expirés.
Ce GAS ouvre de nouvelles possibilités pour l'écosystème de la langue MOVE, et il reste encore beaucoup de place pour le développement et l'amélioration à l'avenir.
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.
14 J'aime
Récompense
14
5
Partager
Commentaire
0/400
FUD_Whisperer
· 07-02 03:34
move a vraiment réussi à sortir du lot, hein
Voir l'originalRépondre0
0xLostKey
· 07-02 03:34
Attendre de perdre du gas, n'est-ce pas ?
Voir l'originalRépondre0
HappyToBeDumped
· 07-02 03:34
Encore un concept à la mode, hein ? Sans gas, ce n'est pas encore meilleur ?
Voir l'originalRépondre0
HalfIsEmpty
· 07-02 03:24
Gros, ton gas est enfin en ligne !
Voir l'originalRépondre0
EthMaximalist
· 07-02 03:08
move doit aussi brûler du gas maintenant ?! c'est vraiment ennuyeux
Le langage MOVE introduit pour la première fois le mécanisme GAS : analyse complète des principes de conception et des méthodes de calcul.
Discussion sur la première conception de GAS du langage MOVE
La dernière version du langage MOVE était initialement prévue pour fonctionner dans un environnement sans GAS, et n'était donc pas préparée au mécanisme GAS. Récemment, un projet de blockchain a conçu pour la première fois un plan GAS pour le langage MOVE, ce qui est considéré comme une tentative innovante. L'équipe du projet a publié les principes, le processus, la méthode de calcul et le plan d'ajustement ultérieur pour la création du GAS, et a déclaré qu'elle accueillait les suggestions de la communauté.
La mesure du GAS est un concept fondamental de nombreuses blockchains, utilisé pour quantifier les ressources de calcul et de stockage nécessaires à l'exécution et au stockage des transactions sur la chaîne. Le plan de GAS détermine le coût de toutes les exécutions sur la chaîne, utilisé pour calculer la consommation de GAS pendant l'exécution des transactions.
Processus de conception
Pour assurer une exécution efficace, le projet a adopté les processus suivants :
Principes de conception
Les principes suivis par ce projet comprennent :
Méthode de calcul du GAS
L'utilisateur doit spécifier deux valeurs lors de la soumission d'une transaction :
Des frais seront appliqués lors de l'exécution de la transaction :
Frais de transaction final = Quantité totale de GAS consommée × Prix unitaire du GAS
Si le GAS s'épuise pendant l'exécution de la transaction, l'expéditeur sera facturé au montant maximal de GAS, les modifications effectuées par l'échange seront annulées.
Construction du plan GAS
configuration de base
Le plan GAS comprend plusieurs composants qui ne sont pas liés à des opérations spécifiques, tels que la taille des transactions et l'unité maximale de GAS.
taille de transaction
La plupart des tailles de transactions sont de l'ordre du KB, mais le module MOVE publié peut atteindre plusieurs milliers d'octets. Le cadre du projet fait environ 100KB, et la plupart des modules utilisateur se situent entre 4 et 40KB. Initialement, la taille de la transaction était fixée à 32KB, mais elle a été ajustée à 64KB en fonction des retours de la communauté.
Des transactions de grande envergure 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 grandes.
unité de GAS maximale
La quantité maximale de GAS définie dans le plan GAS détermine le volume maximal d'opérations pouvant être exécutées par une seule transaction. Un réglage trop élevé peut entraîner des problèmes de performance, tels que des boucles infinies. Même lors d'une mise à niveau majeure du cadre, moins de 90 % de la quantité maximale de GAS ( est utilisée, fixée à 1 000 000 ).
évaluation des coûts d'exécution
Évaluer le coût d'exécution à l'aide d'un cadre de référence et d'outils d'analyse, estimer le coût relatif des instructions MOVE et des fonctions natives. Après avoir pris en compte la stabilité et la sécurité du système, déterminer le nombre d'instructions machine exécutées au final, et établir la valeur actuelle dans le plan GAS en tenant compte du stockage et de l'unité maximale de GAS.
coût de stockage
L'accès au stockage est limité par la bande passante de l'appareil et les IOPS. Le plan de stockage GAS prend en compte la rareté immédiate et le coût d'occupation permanent. L'accès à tout élément d'état entraîne des coûts liés à la validation de l'état complet de la blockchain.
Frais de stockage de GAS = frais de projet + ( frais par octet × nombre d'octets )
opérations de lecture, de création et d'écriture
Chaque transaction ne facturer qu'une seule fois les frais de lecture/écriture pour la même ressource.
coût unitaire stable du GAS
Le coût unitaire fixe du GAS aide à maintenir la stabilité du plan GAS, indépendamment de la valeur marchande des jetons natifs. Précis à environ 3 chiffres, le coût des transactions de transfert ordinaire est d'environ 700 unités de GAS.
Participation de la communauté
Le projet encourage les membres de la communauté :
Ajustement des coûts de GAS
Le plan GAS est utilisé comme stockage de configuration en chaîne, pouvant être modifié par des propositions de gouvernance. Il est conçu pour être évolutif, permettant des mises à niveau par le biais de propositions. Les changements complexes nécessitent la mise à jour du logiciel des nœuds et une adoption large, et enfin, la nouvelle version est approuvée par une proposition de gouvernance.
Direction de travail future
En tant que premier cadre GAS viable de MOVE, cette conception jette les bases pour le travail futur :
Ce GAS ouvre de nouvelles possibilités pour l'écosystème de la langue MOVE, et il reste encore beaucoup de place pour le développement et l'amélioration à l'avenir.