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:
Definir principios
Preparar el marco de evaluación, determinar los precios de ejecución.
Establecer un sistema de medición de GAS y un álgebra de GAS seguro para MOVE
Importar el marco GAS de upstream en el proyecto
Hacer que el marco GAS tenga capacidad de percepción de almacenamiento
Mejorar aún más el plan GAS
Principios de diseño
Los principios que sigue el proyecto incluyen:
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.
GAS debe ser establecido por la gobernanza en cadena, y puede ser configurado de manera flexible.
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.
El precio del GAS debe reflejar la visión del proyecto para fomentar el crecimiento y la difusión de la blockchain.
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:
Costos fijos: tarifas básicas más tarifas adicionales por transacciones grandes
Costo de ejecución: utilizado para ejecutar la instrucción MOVE
Costo de lectura: utilizado para leer datos desde el almacenamiento persistente
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:
Descubrir las irregularidades del plan GAS
Participar en discusiones comunitarias, expresar preocupaciones sobre el plan GAS
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:
Reducir los costos de ejecución: optimizar el compilador y la máquina virtual
Cálculo de GAS multidimensional: permite a los usuarios asignar presupuestos separados para la ejecución y el almacenamiento
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.
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 me gusta
Recompensa
14
5
Compartir
Comentar
0/400
FUD_Whisperer
· hace22h
move parece haber salido adelante, eh
Ver originalesResponder0
0xLostKey
· hace22h
Sentado esperando perder gas.
Ver originalesResponder0
HappyToBeDumped
· hace22h
Otra vez se está hablando del concepto, ¿no sería mejor sin gas?
Ver originalesResponder0
HalfIsEmpty
· hace22h
¡Hermano, tu gas finalmente está en línea!
Ver originalesResponder0
EthMaximalist
· hace22h
¿¡También hay que quemar gas para mover?! Qué aburrido.
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:
Principios de diseño
Los principios que sigue el proyecto incluyen:
Método de cálculo de GAS
El usuario debe especificar dos valores al enviar la transacción:
Se cobrará durante el proceso de ejecución de la transacción:
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
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:
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:
Este GAS ofrece nuevas posibilidades al ecosistema del lenguaje MOVE, y en el futuro hay un gran espacio para el desarrollo y la mejora.