Diseño de GAS para el lenguaje MOVE: Análisis del método de cálculo de tarifas de GAS en la cadena
La versión anterior del lenguaje MOVE estaba originalmente planeada para funcionar sin GAS, por lo que no estaba preparada para el mecanismo de GAS. Recientemente, un proyecto de blockchain lanzó el primer diseño de GAS para su cadena de lenguaje MOVE, lo que fue calificado por la oficial como "una aventura".
El plan de GAS del proyecto aclara los principios, procesos, métodos de cálculo, mecanismos de ajuste posteriores y la actitud hacia la aceptación de sugerencias de la comunidad para la formulación de GAS. La medición de GAS es un concepto fundamental en esta blockchain y muchas otras, que define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones on-chain. El plan de GAS determinará el costo consumido por todas las ejecuciones on-chain, utilizado para calcular el gasto de GAS durante la ejecución de transacciones.
Proceso
Para ejecutar de manera efectiva, el proceso en la cadena de este proyecto es:
Definir principios
Preparar el marco de evaluación, determinar el precio de cada ejecución
Establecer un sistema de medición de GAS y un álgebra de GAS seguros para MOVE
Importar el marco GAS upstream
Hacer que el marco de GAS tenga conciencia de almacenamiento
Refinar aún más el plan de GAS
Principio
Los principios definidos por el proyecto incluyen:
El costo de operación debe estar directamente relacionado con los recursos disponibles en la red, como CPU, memoria, red, almacenamiento I/O y uso de espacio, entre otros. A medida que la tecnología y los procesos mejoren, el costo de GAS debería disminuir en consecuencia.
GAS debe ser configurado por la gobernanza on-chain y se puede configurar sin problemas.
GAS puede prevenir ataques DoS a los recursos fijos de la red, y puede ser necesario ajustar rápidamente a través de propuestas de gobernanza según las condiciones de la red.
El precio del GAS refleja la visión de acelerar el crecimiento y mantener la popularidad de la blockchain.
Fomentar la toma de decisiones de calidad en el diseño, como priorizar la seguridad, la modularidad, las afirmaciones, etc.
Cálculo de GAS
Al enviar una transacción, el usuario debe especificar dos cantidades en la transacción:
Cantidad máxima de GAS: medida en unidades de GAS, representa la cantidad máxima de unidades de GAS que el usuario está dispuesto a gastar para ejecutar la transacción.
Precio del GAS: se calcula en octal por unidad de GAS, 1 octal = 0.00000001 token local.
Durante la ejecución, se cobrará una tarifa por la transacción:
Costos fijos: base fija más cargos adicionales por transacciones de gran volumen.
Costo de ejecución: utilizado para ejecutar instrucciones MOVE.
Costo de lectura: utilizado para leer datos desde el almacenamiento persistente.
Costo de escritura: utilizado para almacenar datos en almacenamiento persistente.
El método de cálculo de la tarifa de transacción final es: la cantidad total de GAS consumido multiplicada por el precio por unidad de GAS. Por ejemplo, si una transacción consume 670 unidades de GAS y el precio por unidad de GAS especificado por el usuario es de 100 Octa, entonces la tarifa de transacción final es 670 * 100 = 67000 Octa = 0.00067 token local.
Si se agota el GAS durante la ejecución de la transacción, el emisor será cobrado según la cantidad máxima de GAS, y todos los cambios realizados por la transacción serán revertidos.
Establecer el plan de GAS
1. Configuración básica
El plan GAS incluye varios componentes que no están relacionados con los detalles de una sola operación, como el tamaño de la transacción y la unidad máxima de GAS.
2. Escala de transacciones
La mayoría de los tamaños de transacción están en el orden de kilobytes. La publicación del módulo MOVE puede alcanzar varios kilobytes, mientras que el marco es de aproximadamente 100 KB. El tamaño del módulo de usuario suele estar entre 4 KB y 40 KB. El tamaño de transacción inicial se estableció en 32 KB y luego se ajustó a 64 KB según las necesidades de la comunidad, para simplificar el desarrollo de aplicaciones.
Las transacciones a gran escala aumentarán el costo del ancho de banda de la red y podrían afectar el rendimiento. Para equilibrar el tamaño de las transacciones de gran escala y su accesibilidad, el pool de memoria puede ignorar transacciones de mayor tamaño.
3. Máximo unidad 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. Un establecimiento demasiado alto puede tener un impacto negativo en el rendimiento de la blockchain. Incluso después de la mayor actualización del marco, todavía está por debajo del 90% de la unidad máxima de GAS del plan de GAS (establecida en 1,000,000).
4. Ejecutar
Al evaluar el costo de ejecución, se construyó un marco de referencia y se utilizaron herramientas de análisis para analizar Move VM. A través del análisis, se obtuvo una estimación del costo relativo de todas las instrucciones Move y funciones nativas. Después de considerar ejemplos de codificación que mejoran la robustez y la seguridad del sistema, se determinó el número final de instrucciones de máquina ejecutadas y se realizó un balance con el almacenamiento y la unidad máxima de GAS, obteniendo el valor actual en el plan de GAS.
5. Almacenamiento
Al acceder a los elementos de estado del libro mayor o datos almacenados en el almacenamiento persistente, el nodo emite lecturas o escrituras al dispositivo de almacenamiento. El total de accesos a datos por segundo depende del ancho de banda del dispositivo de almacenamiento y de la capacidad de IOPS. El diseño del plan de GAS de almacenamiento considera estos costos.
Acceder y almacenar cualquier elemento de estado genera costos relacionados con la estructura de datos que verifica todo el estado de la cadena de bloques. Este costo está relacionado con la cardinalidad de los diferentes elementos de estado. También hay un costo que es proporcional al tamaño de cada elemento.
Almacenamiento de la tarifa de GAS = item_fee + (byte_fee * bytes)
leer, crear y escribir
El acceso a los elementos de estado se divide en tres tipos: lectura, creación o escritura. La operación de lectura es la más común y solo está limitada por la escasez de recursos transitorios. La operación de creación agrega nuevos elementos al almacenamiento de estados, siendo la más costosa. La operación de escritura actualiza elementos existentes en el almacenamiento de estados.
Con base en lo anterior, se definen 6 parámetros de GAS:
per_item_read: corrección según IOPs
per_byte_read: calibrado según el ancho de banda real
per_item_create: calibrar según el total del proyecto objetivo
per_byte_create: calibrar según el tamaño total objetivo
per_item_write: igual que per_item_read
per_byte_write: igual que per_byte_create
costo unitario de GAS estable
Cada operación y transacción en sí misma requiere un costo unitario fijo en relación con los costos de almacenamiento y ejecución. El costo unitario fijo de GAS ayuda a mantener el programa de GAS constante y desvinculado del valor de mercado del token local. Las unidades de GAS se representan con una precisión de aproximadamente 3 dígitos, y el costo de transacción de transferencia es de aproximadamente 700 unidades de GAS.
Participación de la comunidad
Los miembros de la comunidad pueden:
Identificar las deficiencias del plan GAS
Expresar preocupaciones sobre el plan GAS y participar en discusiones comunitarias
Votar sobre las propuestas de gobernanza relacionadas con GAS
Ajuste de costos de GAS
El plan GAS se configura como almacenamiento en cadena, que se puede modificar a través de propuestas de gobernanza, y se pueden agregar nuevas instrucciones o funciones nativas sin problemas. El diseño del plan GAS es escalable, permitiendo actualizaciones a través de propuestas de gobernanza. Con mejoras continuas e incorporación de comentarios de usuarios, los parámetros de GAS se pueden ajustar con el tiempo.
Los cambios complejos en la fórmula de GAS requieren la actualización del software del nodo y una adopción masiva por parte de los operadores de nodos. Por último, debe publicarse y aprobarse una propuesta de gobernanza para poder usar la nueva versión de GAS.
Trabajo Futuro
Como el primer marco de GAS viable de MOVE, este proyecto allana el camino para el trabajo futuro:
Reducir los costos de ejecución: mejorar la eficiencia del 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 el estado de sobrecarga: explorar el concepto de TTL de cada proyecto y eliminar los elementos de estado no visitados al expirar el TTL.
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.
19 me gusta
Recompensa
19
6
Compartir
Comentar
0/400
ShibaMillionairen't
· 07-24 00:05
¿Qué costos? Solo son tontos pagando.
Ver originalesResponder0
SatoshiHeir
· 07-21 20:58
Hmph, el diseño de MOVE claramente plagia la página 127 del libro blanco de Ethereum.
Ver originalesResponder0
GasWaster
· 07-21 01:29
otro día, otra optimización de gas... mátame ahora
Ver originalesResponder0
GasGrillMaster
· 07-21 01:26
¿Ya está aquí el pago móvil y todavía juegas con esto?
Ver originalesResponder0
ImpermanentTherapist
· 07-21 01:12
Innovador y costoso
Ver originalesResponder0
CryptoMotivator
· 07-21 01:09
¿Qué pasa con el problema de los costos? ¿Por qué tanta prisa?
Mecanismo GAS innovador del lenguaje MOVE: análisis completo del cálculo de tarifas on-chain
Diseño de GAS para el lenguaje MOVE: Análisis del método de cálculo de tarifas de GAS en la cadena
La versión anterior del lenguaje MOVE estaba originalmente planeada para funcionar sin GAS, por lo que no estaba preparada para el mecanismo de GAS. Recientemente, un proyecto de blockchain lanzó el primer diseño de GAS para su cadena de lenguaje MOVE, lo que fue calificado por la oficial como "una aventura".
El plan de GAS del proyecto aclara los principios, procesos, métodos de cálculo, mecanismos de ajuste posteriores y la actitud hacia la aceptación de sugerencias de la comunidad para la formulación de GAS. La medición de GAS es un concepto fundamental en esta blockchain y muchas otras, que define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones on-chain. El plan de GAS determinará el costo consumido por todas las ejecuciones on-chain, utilizado para calcular el gasto de GAS durante la ejecución de transacciones.
Proceso
Para ejecutar de manera efectiva, el proceso en la cadena de este proyecto es:
Principio
Los principios definidos por el proyecto incluyen:
Cálculo de GAS
Al enviar una transacción, el usuario debe especificar dos cantidades en la transacción:
Durante la ejecución, se cobrará una tarifa por la transacción:
El método de cálculo de la tarifa de transacción final es: la cantidad total de GAS consumido multiplicada por el precio por unidad de GAS. Por ejemplo, si una transacción consume 670 unidades de GAS y el precio por unidad de GAS especificado por el usuario es de 100 Octa, entonces la tarifa de transacción final es 670 * 100 = 67000 Octa = 0.00067 token local.
Si se agota el GAS durante la ejecución de la transacción, el emisor será cobrado según la cantidad máxima de GAS, y todos los cambios realizados por la transacción serán revertidos.
Establecer el plan de GAS
1. Configuración básica
El plan GAS incluye varios componentes que no están relacionados con los detalles de una sola operación, como el tamaño de la transacción y la unidad máxima de GAS.
2. Escala de transacciones
La mayoría de los tamaños de transacción están en el orden de kilobytes. La publicación del módulo MOVE puede alcanzar varios kilobytes, mientras que el marco es de aproximadamente 100 KB. El tamaño del módulo de usuario suele estar entre 4 KB y 40 KB. El tamaño de transacción inicial se estableció en 32 KB y luego se ajustó a 64 KB según las necesidades de la comunidad, para simplificar el desarrollo de aplicaciones.
Las transacciones a gran escala aumentarán el costo del ancho de banda de la red y podrían afectar el rendimiento. Para equilibrar el tamaño de las transacciones de gran escala y su accesibilidad, el pool de memoria puede ignorar transacciones de mayor tamaño.
3. Máximo unidad 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. Un establecimiento demasiado alto puede tener un impacto negativo en el rendimiento de la blockchain. Incluso después de la mayor actualización del marco, todavía está por debajo del 90% de la unidad máxima de GAS del plan de GAS (establecida en 1,000,000).
4. Ejecutar
Al evaluar el costo de ejecución, se construyó un marco de referencia y se utilizaron herramientas de análisis para analizar Move VM. A través del análisis, se obtuvo una estimación del costo relativo de todas las instrucciones Move y funciones nativas. Después de considerar ejemplos de codificación que mejoran la robustez y la seguridad del sistema, se determinó el número final de instrucciones de máquina ejecutadas y se realizó un balance con el almacenamiento y la unidad máxima de GAS, obteniendo el valor actual en el plan de GAS.
5. Almacenamiento
Al acceder a los elementos de estado del libro mayor o datos almacenados en el almacenamiento persistente, el nodo emite lecturas o escrituras al dispositivo de almacenamiento. El total de accesos a datos por segundo depende del ancho de banda del dispositivo de almacenamiento y de la capacidad de IOPS. El diseño del plan de GAS de almacenamiento considera estos costos.
Acceder y almacenar cualquier elemento de estado genera costos relacionados con la estructura de datos que verifica todo el estado de la cadena de bloques. Este costo está relacionado con la cardinalidad de los diferentes elementos de estado. También hay un costo que es proporcional al tamaño de cada elemento.
Almacenamiento de la tarifa de GAS = item_fee + (byte_fee * bytes)
leer, crear y escribir
El acceso a los elementos de estado se divide en tres tipos: lectura, creación o escritura. La operación de lectura es la más común y solo está limitada por la escasez de recursos transitorios. La operación de creación agrega nuevos elementos al almacenamiento de estados, siendo la más costosa. La operación de escritura actualiza elementos existentes en el almacenamiento de estados.
Con base en lo anterior, 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 los costos de almacenamiento y ejecución. El costo unitario fijo de GAS ayuda a mantener el programa de GAS constante y desvinculado del valor de mercado del token local. Las unidades de GAS se representan con una precisión de aproximadamente 3 dígitos, y el costo de transacción de transferencia es de aproximadamente 700 unidades de GAS.
Participación de la comunidad
Los miembros de la comunidad pueden:
Ajuste de costos de GAS
El plan GAS se configura como almacenamiento en cadena, que se puede modificar a través de propuestas de gobernanza, y se pueden agregar nuevas instrucciones o funciones nativas sin problemas. El diseño del plan GAS es escalable, permitiendo actualizaciones a través de propuestas de gobernanza. Con mejoras continuas e incorporación de comentarios de usuarios, los parámetros de GAS se pueden ajustar con el tiempo.
Los cambios complejos en la fórmula de GAS requieren la actualización del software del nodo y una adopción masiva por parte de los operadores de nodos. Por último, debe publicarse y aprobarse una propuesta de gobernanza para poder usar la nueva versión de GAS.
Trabajo Futuro
Como el primer marco de GAS viable de MOVE, este proyecto allana el camino para el trabajo futuro: