La lengua MOVE introduce por primera vez el mecanismo de GAS: análisis completo de los principios de diseño y métodos de cálculo

Discusión sobre el primer diseño de GAS del lenguaje MOVE

La última versión del lenguaje MOVE estaba originalmente planeada para funcionar en un entorno sin GAS, por lo que no se preparó para el mecanismo de GAS. Recientemente, un proyecto de blockchain diseñó por primera vez un plan de GAS para el lenguaje MOVE, lo que se considera un intento innovador. El equipo del proyecto publicó los principios, procesos, métodos de cálculo y planes de ajuste posteriores para la elaboración de GAS, y expresó su bienvenida a las sugerencias de la comunidad.

La medición de GAS es un concepto básico en muchas blockchains, utilizado para cuantificar los recursos de cálculo y almacenamiento necesarios para ejecutar y almacenar transacciones en la cadena. El plan de GAS determina el costo de todas las ejecuciones en la cadena, utilizado para calcular el consumo de GAS durante la ejecución de la transacción.

Proceso de diseño

Para lograr una ejecución efectiva, el proyecto ha adoptado el siguiente proceso:

  1. Definir principios
  2. Preparar el marco de evaluación, determinar los precios de ejecución.
  3. Establecer un sistema de medición de GAS y un álgebra de GAS seguro para MOVE
  4. Importar el marco GAS de upstream en el proyecto
  5. Hacer que el marco GAS tenga capacidad de percepción de almacenamiento
  6. Mejorar aún más el plan GAS

Principios de diseño

Los principios que sigue el proyecto incluyen:

  1. El costo de operación debe estar directamente relacionado con los recursos disponibles de la red y disminuir con el avance de la tecnología.
  2. GAS debe ser establecido por la gobernanza en cadena, y puede ser configurado de manera flexible.
  3. GAS debe prevenir ataques DoS a los recursos fijos de la red, y puede ajustarse rápidamente según la situación de la red.
  4. El precio del GAS debe reflejar la visión del proyecto para fomentar el crecimiento y la difusión de la blockchain.
  5. Fomentar hacer excelentes elecciones en el diseño, como centrarse en la seguridad, la modularidad, etc.

Método de cálculo de GAS

El usuario debe especificar dos valores 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 la ejecución de la transacción.
  • Precio del GAS: calculado en octal, 1 octal = 0.00000001 token nativo

Se cobrará durante el proceso de ejecución de la transacción:

  1. Costos fijos: tarifas básicas más tarifas adicionales por transacciones grandes
  2. Costo de ejecución: utilizado para ejecutar la instrucción MOVE
  3. Costo de lectura: utilizado para leer datos desde el almacenamiento persistente
  4. Costo de escritura: utilizado para escribir datos en almacenamiento persistente

Costo total de la transacción = Total de GAS consumido × Precio del GAS

Si se agota el GAS durante la ejecución de la transacción, el remitente será cobrado por la cantidad máxima de GAS, y los cambios realizados por el intercambio se revertirán.

Construcción del plan GAS

configuración básica

El plan GAS incluye varios componentes que no están relacionados con operaciones específicas, 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 de tamaño KB, pero el módulo MOVE publicado puede alcanzar varios miles de bytes. El marco del proyecto es de aproximadamente 100 KB, y la mayoría de los módulos de usuarios están entre 4 y 40 KB. El tamaño de transacción inicial se estableció en 32 KB y luego se ajustó a 64 KB según los comentarios de la comunidad.

Las transacciones de gran escala aumentarán los costos de ancho de banda de la red y pueden afectar el rendimiento. Para equilibrar la escala y la accesibilidad, el pool de memoria puede ignorar transacciones demasiado grandes.

unidad máxima de GAS

La unidad máxima de GAS definida en el plan de GAS establece la cantidad máxima de operaciones que se pueden ejecutar en una sola transacción. Establecerla demasiado alta puede causar problemas de rendimiento, como bucles infinitos. Incluso con una actualización de marco a gran escala, se utiliza menos del 90% de la unidad máxima de GAS ( establecida en 1,000,000 ).

evaluación de costos de ejecución

Evaluar el costo de ejecución a través de marcos de referencia y herramientas de análisis, estimar el costo relativo de las instrucciones MOVE y las funciones nativas. Tras considerar la estabilidad y seguridad del sistema, se obtiene el número final de instrucciones de máquina ejecutadas y se determina el valor actual en el plan de GAS, equilibrando con el almacenamiento y la unidad máxima de GAS.

costo de almacenamiento

El acceso al almacenamiento está limitado por el ancho de banda y IOPS del dispositivo. El plan de GAS para el almacenamiento considera la escasez instantánea y los costos de ocupación permanente. Acceder a cualquier elemento de estado incurre en costos asociados con la verificación de todo el estado de la cadena de bloques.

El costo de almacenamiento de GAS = tarifa del proyecto + ( tarifa por byte × número de bytes )

lectura, creación y escritura operaciones

  • Lectura: la operación más común, calibración basada en IOPS de disco y capacidad de ancho de banda
  • Crear: costo más alto, calibrado en función del espacio en disco de referencia
  • Escribir: Actualizar elementos existentes, la tarifa por byte es la misma que la de creación

Cada transacción solo incurre en una tarifa de lectura/escritura por el mismo recurso una vez.

costo unitario de GAS estable

El costo fijo del GAS por unidad ayuda a mantener estable el plan de GAS, sin verse afectado por el valor de mercado de los tokens nativos. Con una precisión de aproximadamente 3 cifras, el costo de una transacción de transferencia normal es de aproximadamente 700 unidades de GAS.

Participación de la comunidad

El proyecto anima a los miembros de la comunidad:

  1. Descubrir las irregularidades del plan GAS
  2. Participar en discusiones comunitarias, expresar preocupaciones sobre el plan GAS
  3. Votar sobre las propuestas de gobernanza relacionadas con GAS

Ajuste del costo de GAS

El plan GAS se configura como almacenamiento en cadena y se puede modificar a través de propuestas de gobernanza. Diseñado con escalabilidad, permite actualizaciones a través de propuestas. Cambios complejos requieren actualizar el software de los nodos y una adopción amplia, y finalmente, la nueva versión debe ser aprobada a través de propuestas de gobernanza.

Dirección futura del trabajo

Como el primer marco de GAS viable de MOVE, este diseño sienta las bases para el trabajo futuro:

  1. Reducir los costos de ejecución: optimizar el compilador y la máquina virtual
  2. Cálculo de GAS multidimensional: permite a los usuarios asignar presupuestos separados para la ejecución y el almacenamiento
  3. Aliviar la expansión del estado: explorar la introducción del concepto de TTL para elementos de estado, eliminar automáticamente los elementos no visitados que han caducado.

Este GAS ofrece nuevas posibilidades al ecosistema del lenguaje MOVE, y en el futuro hay un gran espacio para el desarrollo y la mejora.

Ver originales
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.
  • Recompensa
  • 5
  • Compartir
Comentar
0/400
FUD_Whisperervip
· hace22h
move parece haber salido adelante, eh
Ver originalesResponder0
0xLostKeyvip
· hace22h
Sentado esperando perder gas.
Ver originalesResponder0
HappyToBeDumpedvip
· hace22h
Otra vez se está hablando del concepto, ¿no sería mejor sin gas?
Ver originalesResponder0
HalfIsEmptyvip
· hace22h
¡Hermano, tu gas finalmente está en línea!
Ver originalesResponder0
EthMaximalistvip
· hace22h
¿¡También hay que quemar gas para mover?! Qué aburrido.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)