Premier design de GAS pour le langage MOVE : Analyse de la méthode de calcul des frais de GAS off-chain
La dernière version du langage MOVE était initialement prévue pour fonctionner sans GAS, et n'était donc pas préparée pour le mécanisme GAS. Récemment, un projet de blockchain a lancé le premier schéma de conception GAS pour sa chaîne MOVE, ce qui a été qualifié par les autorités de "une aventure".
Le plan GAS du projet clarifie les principes, les processus, les méthodes de calcul, le mécanisme d'ajustement ultérieur, ainsi que l'attitude à l'égard de l'acceptation des suggestions de la communauté concernant la définition du GAS. La mesure du GAS est un concept fondamental de cette blockchain et de nombreuses autres blockchains, définissant le calcul abstrait de la quantité de ressources de calcul et de stockage nécessaires à l'exécution et au stockage des transactions sur la chaîne. Le plan GAS déterminera le coût de toutes les exécutions sur la chaîne, utilisé pour calculer les dépenses en GAS durant l'exécution des transactions.
Processus
Pour une exécution efficace, le processus off-chain de ce projet est :
Principes de définition
Préparer le cadre d'évaluation, déterminer le prix de chaque exécution
É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
Rendre le cadre GAS conscient du stockage
Affiner davantage le plan GAS
Principes
Les principes définis par ce projet incluent :
Les coûts d'opération doivent être directement liés aux ressources disponibles sur le réseau, telles que le CPU, la mémoire, le réseau, le stockage I/O et l'utilisation de l'espace. Avec les améliorations technologiques et de processus, le coût en GAS requis devrait également diminuer.
GAS doit être configuré par la gouvernance off-chain et peut être configuré sans couture.
GAS peut empêcher les attaques DoS sur les ressources fixes du réseau, et il peut être nécessaire d'ajuster rapidement en fonction de la situation du réseau par le biais de propositions de gouvernance.
Le prix du GAS reflète la vision d'une croissance accélérée et du maintien de la popularité de la blockchain.
Encourager à faire des choix de qualité dans la conception, tels que donner la priorité à la sécurité, à la modularité, aux assertions, etc.
Calculer le GAS
Lors de la soumission d'une transaction, l'utilisateur doit spécifier deux quantités dans la transaction :
Quantité maximale de GAS : mesurée en unités de GAS, elle indique le nombre maximal d'unités de GAS que l'utilisateur est prêt à dépenser pour exécuter la transaction.
Prix unitaire du GAS : calculé en octal par unité de GAS, 1 octal = 0,00000001 jeton local.
Au cours de l'exécution, des frais de transaction seront appliqués :
Coûts fixes : base fixe plus des frais supplémentaires pour les transactions importantes.
Coût d'exécution : utilisé pour exécuter les instructions 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 un stockage permanent.
La méthode de calcul des frais de transaction finale est la suivante : le montant total de GAS consommé multiplié par le prix unitaire du GAS. Par exemple, une transaction consomme 670 unités de GAS, et le prix unitaire du GAS spécifié par l'utilisateur est de 100 Octa par unité, donc les frais de transaction finale sont de 670 * 100 = 67000 Octa = 0.00067 jetons locaux.
Si le GAS est épuisé pendant l'exécution de la transaction, l'expéditeur sera facturé en fonction de la quantité maximale de GAS, et tous les changements effectués par cette transaction seront annulés.
Établir un calendrier GAS
1. Configuration de base
Le plan GAS comprend plusieurs composants qui ne sont pas liés aux détails d'une seule opération, tels que la taille de la transaction et le maximum d'unités de GAS.
2. Échelle de transaction
La plupart des tailles de transaction sont de l'ordre du kilobyte. La publication du module Move peut atteindre plusieurs kilobytes, tandis que le cadre est d'environ 100 Ko. La taille du module utilisateur se situe généralement entre 4 Ko et 40 Ko. La taille de la transaction a été initialement fixée à 32 Ko, puis ajustée à 64 Ko en fonction des besoins de la communauté, afin de simplifier le développement d'applications.
Les transactions à grande échelle augmenteront le coût de la bande passante du réseau et pourraient affecter les performances. Pour équilibrer la taille des transactions à la plus grande échelle et l'accessibilité, le pool de mémoire pourrait ignorer les transactions de plus grande taille.
3. Unité GAS maximale
L'unité maximale de GAS définie dans le plan GAS détermine le maximum d'opérations pouvant être exécutées par une seule transaction. Un réglage trop élevé peut avoir un impact négatif sur la performance de la blockchain. Même après la plus grande mise à niveau de cadre, cela reste inférieur à 90 % de l'unité maximale de GAS du plan GAS (fixée à 1 000 000).
4. Exécution
Lors de l'évaluation des coûts d'exécution, un cadre de référence a été construit et des outils d'analyse ont été utilisés pour analyser le Move VM. L'analyse a abouti à une estimation des coûts relatifs de toutes les instructions Move et des fonctions natives. Après avoir pris en compte des exemples de codage visant à renforcer la robustesse et la sécurité du système, le nombre final d'instructions machine à exécuter a été déterminé, et un compromis a été fait avec le stockage et l'unité maximale de GAS pour obtenir la valeur actuelle dans le plan de GAS.
5. Stockage
Lors de l'accès aux éléments d'état du grand livre ou aux données stockées dans le stockage persistant, le nœud émettra des lectures ou des écritures vers le matériel de stockage. Le nombre total d'accès aux données par seconde dépend de la bande passante et de la capacité IOPS du matériel de stockage. Le plan de stockage GAS prend en compte ces coûts.
L'accès et le stockage de tout élément d'état entraînent des coûts liés à la structure de données associée à la vérification de l'état complet de la blockchain. Ce coût est lié à la cardinalité des différents éléments d'état. Il existe également un coût proportionnel à la taille de chaque élément.
Frais de stockage GAS = item_fee + (byte_fee * bytes)
Lire, créer et écrire
L'accès aux éléments d'état se divise en trois types : lecture, création ou écriture. L'opération de lecture est la plus courante, limitée uniquement par la rareté des ressources instantanées. L'opération de création ajoute de nouveaux éléments au stockage d'état, avec le coût le plus élevé. L'opération d'écriture met à jour les éléments existants dans le stockage d'état.
Sur la base des considérations ci-dessus, six paramètres GAS ont été définis :
per_item_read : correction selon les IOPs
per_byte_read : calibré en fonction de la bande passante réelle
per_item_create : calibrer en fonction du total du projet cible
per_byte_create : ajusté en fonction de la taille totale cible
per_item_write : identique à per_item_read
per_byte_write : identique à per_byte_create
coût unitaire de GAS stable
Chaque opération et transaction nécessite un coût unitaire fixe par rapport aux coûts de stockage et d'exécution. Un coût unitaire de GAS fixe aide à maintenir le plan de GAS constant et à le découpler de la valeur marchande des jetons locaux. Les unités de GAS sont exprimées avec une précision d'environ 3 chiffres, le coût des transactions de transfert étant d'environ 700 unités de GAS.
Participation de la communauté
Les membres de la communauté peuvent :
Identifier les incohérences du plan GAS
Exprimer des inquiétudes concernant le plan GAS et participer aux discussions communautaires
Voter sur les propositions de gouvernance liées au GAS
Ajustement des coûts GAS
Le plan GAS, en tant que stockage de configuration off-chain, peut être modifié par des propositions de gouvernance et permet d'ajouter sans effort de nouvelles instructions ou fonctionnalités natives. La conception du plan GAS est extensible, permettant des mises à niveau via des propositions de gouvernance. Avec des améliorations continues et l'intégration des retours des utilisateurs, les paramètres GAS peuvent être ajustés au fil du temps.
Des modifications complexes de la formule GAS nécessitent une mise à jour du logiciel des nœuds, et une adoption massive par les opérateurs de nœuds. Enfin, une proposition de gouvernance doit être publiée et approuvée pour pouvoir utiliser la nouvelle version de GAS.
Travail futur
En tant que premier cadre GAS viable de MOVE, ce projet ouvre la voie aux travaux futurs :
Réduire les coûts d'exécution : améliorer l'efficacité des compilateurs et des machines virtuelles
Calcul GAS multidimensionnel : permet aux utilisateurs de spécifier un budget séparé pour l'exécution et le stockage.
Soulager l'état d'encombrement : explorer le concept de TTL de chaque projet, supprimer les éléments d'état non visités à l'expiration du TTL.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
19 J'aime
Récompense
19
6
Partager
Commentaire
0/400
ShibaMillionairen't
· 07-24 00:05
Quel frais, quel frais, c'est juste des pigeons qui paient.
Voir l'originalRépondre0
SatoshiHeir
· 07-21 20:58
Hum, le plan de conception de MOVE a clairement plagié la page 127 du livre jaune d'Ethereum.
Voir l'originalRépondre0
GasWaster
· 07-21 01:29
un autre jour, une autre optimisation de gas... tuez-moi maintenant
Voir l'originalRépondre0
GasGrillMaster
· 07-21 01:26
Les paiements mobiles sont arrivés, on joue encore à ça ?
Voir l'originalRépondre0
ImpermanentTherapist
· 07-21 01:12
Innovation et dépenses excessives
Voir l'originalRépondre0
CryptoMotivator
· 07-21 01:09
On parle encore du problème des frais, pourquoi tant de précipitation ?
Mécanisme GAS innovant du langage MOVE : analyse complète du calcul des frais off-chain.
Premier design de GAS pour le langage MOVE : Analyse de la méthode de calcul des frais de GAS off-chain
La dernière version du langage MOVE était initialement prévue pour fonctionner sans GAS, et n'était donc pas préparée pour le mécanisme GAS. Récemment, un projet de blockchain a lancé le premier schéma de conception GAS pour sa chaîne MOVE, ce qui a été qualifié par les autorités de "une aventure".
Le plan GAS du projet clarifie les principes, les processus, les méthodes de calcul, le mécanisme d'ajustement ultérieur, ainsi que l'attitude à l'égard de l'acceptation des suggestions de la communauté concernant la définition du GAS. La mesure du GAS est un concept fondamental de cette blockchain et de nombreuses autres blockchains, définissant le calcul abstrait de la quantité de ressources de calcul et de stockage nécessaires à l'exécution et au stockage des transactions sur la chaîne. Le plan GAS déterminera le coût de toutes les exécutions sur la chaîne, utilisé pour calculer les dépenses en GAS durant l'exécution des transactions.
Processus
Pour une exécution efficace, le processus off-chain de ce projet est :
Principes
Les principes définis par ce projet incluent :
Calculer le GAS
Lors de la soumission d'une transaction, l'utilisateur doit spécifier deux quantités dans la transaction :
Au cours de l'exécution, des frais de transaction seront appliqués :
La méthode de calcul des frais de transaction finale est la suivante : le montant total de GAS consommé multiplié par le prix unitaire du GAS. Par exemple, une transaction consomme 670 unités de GAS, et le prix unitaire du GAS spécifié par l'utilisateur est de 100 Octa par unité, donc les frais de transaction finale sont de 670 * 100 = 67000 Octa = 0.00067 jetons locaux.
Si le GAS est épuisé pendant l'exécution de la transaction, l'expéditeur sera facturé en fonction de la quantité maximale de GAS, et tous les changements effectués par cette transaction seront annulés.
Établir un calendrier GAS
1. Configuration de base
Le plan GAS comprend plusieurs composants qui ne sont pas liés aux détails d'une seule opération, tels que la taille de la transaction et le maximum d'unités de GAS.
2. Échelle de transaction
La plupart des tailles de transaction sont de l'ordre du kilobyte. La publication du module Move peut atteindre plusieurs kilobytes, tandis que le cadre est d'environ 100 Ko. La taille du module utilisateur se situe généralement entre 4 Ko et 40 Ko. La taille de la transaction a été initialement fixée à 32 Ko, puis ajustée à 64 Ko en fonction des besoins de la communauté, afin de simplifier le développement d'applications.
Les transactions à grande échelle augmenteront le coût de la bande passante du réseau et pourraient affecter les performances. Pour équilibrer la taille des transactions à la plus grande échelle et l'accessibilité, le pool de mémoire pourrait ignorer les transactions de plus grande taille.
3. Unité GAS maximale
L'unité maximale de GAS définie dans le plan GAS détermine le maximum d'opérations pouvant être exécutées par une seule transaction. Un réglage trop élevé peut avoir un impact négatif sur la performance de la blockchain. Même après la plus grande mise à niveau de cadre, cela reste inférieur à 90 % de l'unité maximale de GAS du plan GAS (fixée à 1 000 000).
4. Exécution
Lors de l'évaluation des coûts d'exécution, un cadre de référence a été construit et des outils d'analyse ont été utilisés pour analyser le Move VM. L'analyse a abouti à une estimation des coûts relatifs de toutes les instructions Move et des fonctions natives. Après avoir pris en compte des exemples de codage visant à renforcer la robustesse et la sécurité du système, le nombre final d'instructions machine à exécuter a été déterminé, et un compromis a été fait avec le stockage et l'unité maximale de GAS pour obtenir la valeur actuelle dans le plan de GAS.
5. Stockage
Lors de l'accès aux éléments d'état du grand livre ou aux données stockées dans le stockage persistant, le nœud émettra des lectures ou des écritures vers le matériel de stockage. Le nombre total d'accès aux données par seconde dépend de la bande passante et de la capacité IOPS du matériel de stockage. Le plan de stockage GAS prend en compte ces coûts.
L'accès et le stockage de tout élément d'état entraînent des coûts liés à la structure de données associée à la vérification de l'état complet de la blockchain. Ce coût est lié à la cardinalité des différents éléments d'état. Il existe également un coût proportionnel à la taille de chaque élément.
Frais de stockage GAS = item_fee + (byte_fee * bytes)
Lire, créer et écrire
L'accès aux éléments d'état se divise en trois types : lecture, création ou écriture. L'opération de lecture est la plus courante, limitée uniquement par la rareté des ressources instantanées. L'opération de création ajoute de nouveaux éléments au stockage d'état, avec le coût le plus élevé. L'opération d'écriture met à jour les éléments existants dans le stockage d'état.
Sur la base des considérations ci-dessus, six paramètres GAS ont été définis :
coût unitaire de GAS stable
Chaque opération et transaction nécessite un coût unitaire fixe par rapport aux coûts de stockage et d'exécution. Un coût unitaire de GAS fixe aide à maintenir le plan de GAS constant et à le découpler de la valeur marchande des jetons locaux. Les unités de GAS sont exprimées avec une précision d'environ 3 chiffres, le coût des transactions de transfert étant d'environ 700 unités de GAS.
Participation de la communauté
Les membres de la communauté peuvent :
Ajustement des coûts GAS
Le plan GAS, en tant que stockage de configuration off-chain, peut être modifié par des propositions de gouvernance et permet d'ajouter sans effort de nouvelles instructions ou fonctionnalités natives. La conception du plan GAS est extensible, permettant des mises à niveau via des propositions de gouvernance. Avec des améliorations continues et l'intégration des retours des utilisateurs, les paramètres GAS peuvent être ajustés au fil du temps.
Des modifications complexes de la formule GAS nécessitent une mise à jour du logiciel des nœuds, et une adoption massive par les opérateurs de nœuds. Enfin, une proposition de gouvernance doit être publiée et approuvée pour pouvoir utiliser la nouvelle version de GAS.
Travail futur
En tant que premier cadre GAS viable de MOVE, ce projet ouvre la voie aux travaux futurs :