Primer diseño de GAS del lenguaje MOVE: explorando el método de cálculo de tarifas de GAS on-chain
La versión anterior del lenguaje MOVE estaba originalmente planeada para funcionar en un entorno sin GAS, por lo que no estaba preparada para el GAS. Recientemente, un equipo de proyecto de blockchain lanzó la primera propuesta de diseño de GAS para su cadena basada en el lenguaje MOVE, lo que se considera un intento de "aventura".
En este plan de GAS, el equipo ha definido los principios, procesos, métodos de cálculo y mecanismos de ajuste posteriores para establecer el GAS, y ha expresado su bienvenida a las sugerencias de la comunidad.
La medición de GAS es un concepto fundamental en este proyecto y en muchas otras blockchains, que define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones on-chain. El esquema de GAS determina el costo de todas las ejecuciones on-chain, que se utiliza para calcular las tarifas de GAS utilizadas durante la ejecución de transacciones.
proceso
Para una ejecución efectiva, el proceso del proyecto en la cadena es:
Principios de definición
Preparar un marco de evaluación, determinar el precio de cada ejecución.
Establecer un sistema de medición de GAS y álgebra de GAS seguro para MOVE
Importar el marco GAS upstream en el proyecto
Hacer que el marco GAS tenga conciencia de almacenamiento
Refinar aún más el plan de GAS
principio
Los principios definidos incluyen:
El costo de operación debe estar directamente relacionado con los recursos disponibles en la red y disminuirá con los avances tecnológicos.
GAS debe ser configurado por la gobernanza on-chain, y puede ser configurado de manera flexible.
GAS puede prevenir ataques DoS y ajustar rápidamente según la situación de la red.
El precio del GAS refleja la visión de la fundación del proyecto para fomentar el crecimiento y mantener la accesibilidad de la blockchain.
Fomentar la realización de elecciones excelentes en el diseño, como centrarse en la seguridad, la modularidad, etc.
calcular GAS
El usuario debe especificar dos cantidades al enviar la transacción:
Cantidad máxima de GAS: el número máximo de unidades de GAS que el usuario está dispuesto a pagar para ejecutar la transacción.
Precio del GAS: calculado en octal por unidad de GAS, 1 octal = 0.00000001 token nativo
Durante el proceso de ejecución, se cobrará una transacción:
Costos fijos
Costo de ejecución
Leer costo
Costo de escritura
Costo final de la transacción = Cantidad total de GAS consumido × Precio por GAS
Por ejemplo, si una transacción consume 670 unidades de GAS, y el precio del GAS especificado por el usuario es de 100 Octa por unidad, entonces la tarifa de transacción final es 670 × 100 = 67000 Octa = 0.00067 token nativo.
Si se agota el GAS durante el proceso de ejecución de la transacción, el remitente será cobrado por la cantidad máxima de GAS y todos los cambios realizados por la transacción serán revertidos.
establecer tabla de planificación de GAS
Configuración básica
El plan de GAS incluye varios componentes que no están relacionados con una operación individual, como el tamaño de la transacción y la unidad máxima de GAS.
Escala de transacciones
La mayoría de las transacciones son del tamaño de kilobytes, pero el módulo Move puede alcanzar varios kilobytes, y el marco del proyecto es de aproximadamente 100 KB. El tamaño de transacción inicial se estableció en 32KB, y luego se ajustó a 64KB según las necesidades de la comunidad para simplificar el desarrollo de aplicaciones.
Máximo unidad de GAS
La unidad máxima de GAS definida en el plan de GAS establece el número máximo de operaciones que se pueden ejecutar en una sola transacción. Establecerlo demasiado alto puede tener un impacto negativo en el rendimiento de la blockchain. Actualmente está establecido en 1,000,000, y ni siquiera con la máxima actualización del marco supera el 90%.
Ejecutar
Evaluar el costo de ejecución a través de un marco de referencia y herramientas de análisis, estimar el costo relativo de todas las instrucciones MOVE y funciones nativas. Considerar la robustez y la seguridad del sistema, llegar al número final de instrucciones de máquina ejecutadas y ponderar esto con el almacenamiento y la unidad máxima de GAS.
Almacenamiento
El plan de almacenamiento de GAS considera la escasez temporal de acceso a datos y el costo de ocupación permanente en disco. El acceso y almacenamiento de elementos de estado generan costos relacionados con la verificación del estado completo de la cadena de bloques. La tarifa de almacenamiento de GAS = tarifa del proyecto + costo por ( bytes × número de bytes ).
leer, crear y escribir
El acceso a los elementos de estado se divide en tres tipos: lectura, creación y escritura, cada uno con un método de cálculo de costos diferente. La operación de lectura es la más común, la operación de creación tiene el costo más alto, y la operación de escritura se encuentra entre las dos.
Basado en estas consideraciones, se definen 6 parámetros de GAS:
per_item_read
per_byte_read
per_item_create
per_byte_create
per_item_write
per_byte_write
costo unitario de GAS estable
Cada operación y transacción en sí misma requiere un costo unitario fijo en relación con el costo de almacenamiento y ejecución, lo que ayuda a mantener estable el plan de GAS. El equipo del proyecto representa las unidades de GAS con una precisión de aproximadamente 3 dígitos, lo que hace que el costo de las transacciones de transferencia sea de alrededor de 700 unidades de GAS.
participación de la comunidad
Como proyecto comunitario, los miembros pueden:
Señalar las irregularidades en el plan GAS
Expresar preocupaciones sobre el plan GAS y participar en la discusión
Votar sobre propuestas de gobernanza relacionadas con GAS
¿Cómo ajustar el costo de GAS?
El plan GAS se configura como almacenamiento en la cadena y puede ser modificado a través de propuestas de gobernanza, así como añadir nuevas instrucciones o funciones nativas sin problemas. Los parámetros de GAS pueden ajustarse con el tiempo para adaptarse al desarrollo del proyecto y de la comunidad.
Algunos cambios complejos en las fórmulas de GAS pueden requerir la actualización del software de los nodos y diferenciarse mediante nuevas características de GAS. Esto requiere que los operadores de nodos adopten ampliamente el nuevo software y aprueben el uso de la nueva versión a través de propuestas de gobernanza.
trabajo futuro
Como el primer marco de GAS viable para el lenguaje MOVE, este proyecto allana el camino para el trabajo futuro:
Reducir los costos de ejecución
Implementar cálculos de GAS multidimensionales, permitiendo a los usuarios asignar presupuestos separados para la ejecución y el almacenamiento.
Aliviar el estado de sobrecarga, explorar el concepto de TTL de cada proyecto, eliminar los elementos de estado no visitados cuando expire el TTL.
Este GAS proporciona una base importante para el desarrollo del ecosistema del lenguaje MOVE, y en el futuro aún hay mucho espacio para optimizaciones y mejoras.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
22 me gusta
Recompensa
22
7
Compartir
Comentar
0/400
LongTermDreamer
· hace21h
El diseño de base es clave
Ver originalesResponder0
SingleForYears
· 07-16 03:51
Buena dirección de ruptura
Ver originalesResponder0
TokenTaxonomist
· 07-16 03:05
Todavía hay que probar más.
Ver originalesResponder0
ConsensusDissenter
· 07-15 08:49
Apoyar intentos de innovación audaz
Ver originalesResponder0
liquidation_watcher
· 07-15 08:47
Es muy importante la facturación justa.
Ver originalesResponder0
HodlKumamon
· 07-15 08:46
El diseño de tarifas es realmente elegante
Ver originalesResponder0
LiquidationWizard
· 07-15 08:42
Cuando se pone serio, incluso se hace daño a sí mismo.
Diseño de GAS pionero en el lenguaje MOVE: Análisis completo del cálculo de tarifas on-chain
Primer diseño de GAS del lenguaje MOVE: explorando el método de cálculo de tarifas de GAS on-chain
La versión anterior del lenguaje MOVE estaba originalmente planeada para funcionar en un entorno sin GAS, por lo que no estaba preparada para el GAS. Recientemente, un equipo de proyecto de blockchain lanzó la primera propuesta de diseño de GAS para su cadena basada en el lenguaje MOVE, lo que se considera un intento de "aventura".
En este plan de GAS, el equipo ha definido los principios, procesos, métodos de cálculo y mecanismos de ajuste posteriores para establecer el GAS, y ha expresado su bienvenida a las sugerencias de la comunidad.
La medición de GAS es un concepto fundamental en este proyecto y en muchas otras blockchains, que define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones on-chain. El esquema de GAS determina el costo de todas las ejecuciones on-chain, que se utiliza para calcular las tarifas de GAS utilizadas durante la ejecución de transacciones.
proceso
Para una ejecución efectiva, el proceso del proyecto en la cadena es:
principio
Los principios definidos incluyen:
calcular GAS
El usuario debe especificar dos cantidades al enviar la transacción:
Durante el proceso de ejecución, se cobrará una transacción:
Costo final de la transacción = Cantidad total de GAS consumido × Precio por GAS
Por ejemplo, si una transacción consume 670 unidades de GAS, y el precio del GAS especificado por el usuario es de 100 Octa por unidad, entonces la tarifa de transacción final es 670 × 100 = 67000 Octa = 0.00067 token nativo.
Si se agota el GAS durante el proceso de ejecución de la transacción, el remitente será cobrado por la cantidad máxima de GAS y todos los cambios realizados por la transacción serán revertidos.
establecer tabla de planificación de GAS
El plan de GAS incluye varios componentes que no están relacionados con una operación individual, como el tamaño de la transacción y la unidad máxima de GAS.
La mayoría de las transacciones son del tamaño de kilobytes, pero el módulo Move puede alcanzar varios kilobytes, y el marco del proyecto es de aproximadamente 100 KB. El tamaño de transacción inicial se estableció en 32KB, y luego se ajustó a 64KB según las necesidades de la comunidad para simplificar el desarrollo de aplicaciones.
La unidad máxima de GAS definida en el plan de GAS establece el número máximo de operaciones que se pueden ejecutar en una sola transacción. Establecerlo demasiado alto puede tener un impacto negativo en el rendimiento de la blockchain. Actualmente está establecido en 1,000,000, y ni siquiera con la máxima actualización del marco supera el 90%.
Evaluar el costo de ejecución a través de un marco de referencia y herramientas de análisis, estimar el costo relativo de todas las instrucciones MOVE y funciones nativas. Considerar la robustez y la seguridad del sistema, llegar al número final de instrucciones de máquina ejecutadas y ponderar esto con el almacenamiento y la unidad máxima de GAS.
El plan de almacenamiento de GAS considera la escasez temporal de acceso a datos y el costo de ocupación permanente en disco. El acceso y almacenamiento de elementos de estado generan costos relacionados con la verificación del estado completo de la cadena de bloques. La tarifa de almacenamiento de GAS = tarifa del proyecto + costo por ( bytes × número de bytes ).
leer, crear y escribir
El acceso a los elementos de estado se divide en tres tipos: lectura, creación y escritura, cada uno con un método de cálculo de costos diferente. La operación de lectura es la más común, la operación de creación tiene el costo más alto, y la operación de escritura se encuentra entre las dos.
Basado en estas consideraciones, se definen 6 parámetros de GAS:
costo unitario de GAS estable
Cada operación y transacción en sí misma requiere un costo unitario fijo en relación con el costo de almacenamiento y ejecución, lo que ayuda a mantener estable el plan de GAS. El equipo del proyecto representa las unidades de GAS con una precisión de aproximadamente 3 dígitos, lo que hace que el costo de las transacciones de transferencia sea de alrededor de 700 unidades de GAS.
participación de la comunidad
Como proyecto comunitario, los miembros pueden:
¿Cómo ajustar el costo de GAS?
El plan GAS se configura como almacenamiento en la cadena y puede ser modificado a través de propuestas de gobernanza, así como añadir nuevas instrucciones o funciones nativas sin problemas. Los parámetros de GAS pueden ajustarse con el tiempo para adaptarse al desarrollo del proyecto y de la comunidad.
Algunos cambios complejos en las fórmulas de GAS pueden requerir la actualización del software de los nodos y diferenciarse mediante nuevas características de GAS. Esto requiere que los operadores de nodos adopten ampliamente el nuevo software y aprueben el uso de la nueva versión a través de propuestas de gobernanza.
trabajo futuro
Como el primer marco de GAS viable para el lenguaje MOVE, este proyecto allana el camino para el trabajo futuro:
Este GAS proporciona una base importante para el desarrollo del ecosistema del lenguaje MOVE, y en el futuro aún hay mucho espacio para optimizaciones y mejoras.