Diseño de GAS de MOVE: exploración de la forma de calcular los gastos de GAS on-chain
La última versión del lenguaje MOVE estaba originalmente destinada a funcionar en un entorno sin GAS, por lo que no se preparó para el plan de GAS. Recientemente, el plan de GAS establecido por una cadena pública se ha denominado "una aventura", este es el primer diseño de GAS del lenguaje MOVE.
El plan de GAS describe los principios, procesos, métodos de cálculo y mecanismos de ajuste posteriores para establecer GAS. La medición de GAS es un concepto fundamental en muchas cadenas de bloques, define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones on-chain. El plan de GAS determinará el costo de consumo de todas las ejecuciones on-chain, utilizado para calcular el gasto de GAS durante la ejecución de transacciones.
proceso
Para lograr una ejecución efectiva, esta cadena pública adopta el siguiente proceso:
Definición de 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 seguro para MOVE
Importar el marco de GAS de upstream
Hacer que el marco de GAS tenga conciencia de almacenamiento
Refinar aún más el plan de GAS
principios
Los principios definidos incluyen:
El costo de operación está directamente relacionado con los recursos disponibles en la red, y después de la mejora tecnológica, el costo de GAS debería disminuir en consecuencia.
GAS es configurado por gobernanza on-chain, se puede configurar sin problemas.
GAS puede prevenir ataques DoS y se puede ajustar rápidamente según las condiciones de la red.
El precio del GAS refleja la visión de un crecimiento acelerado y de mantener la popularidad de la cadena de bloques.
Fomentar la consideración prioritaria de la seguridad, la modularidad y otros factores en el diseño.
cálculo de GAS
El usuario debe especificar dos cantidades al enviar la transacción:
Máximo número de GAS: Medido en unidades de GAS, es el número máximo de unidades de GAS que el usuario está dispuesto a pagar.
Precio del GAS: Se calcula en octal por unidad de GAS, 1 octal = 0.00000001 APT.
Durante el proceso de ejecución de la transacción se cobrará:
Costos fijos: base fija más costos adicionales por transacciones de gran volumen
Costo de ejecución: utilizado para ejecutar instrucciones MOVE
Costo de lectura: utilizado para leer datos del almacenamiento persistente
Costo de escritura: utilizado para escribir datos en almacenamiento persistente
La tarifa de transacción final = Cantidad total de GAS consumido × Precio por unidad de GAS. Por ejemplo, si la transacción consume 670 unidades de GAS y el precio por unidad especificado por el usuario es 100 Octa/unidad, entonces la tarifa final es 670 × 100 = 67000 Octa = 0.00067 APT.
Si la ejecución de la transacción agota el GAS, el remitente será cobrado según la cantidad máxima de GAS, y los cambios realizados por el intercambio serán revertidos.
Establecimiento del plan GAS
1. Configuración básica
El plan de GAS incluye componentes que no están relacionados con una única operación, como el tamaño de la transacción y la unidad máxima de GAS.
2. Escala de la transacción
La mayoría de las transacciones tienen un tamaño del orden de los kilobytes, el módulo Move puede alcanzar varios miles de bytes. El tamaño inicial de la transacción se estableció en 32KB, y luego se ajustó a 64KB según los comentarios de la comunidad, para simplificar el desarrollo de aplicaciones.
Las transacciones a gran escala pueden aumentar los costos de ancho de banda de la red, afectando el rendimiento. El grupo de memoria puede ignorar transacciones que son demasiado grandes, por lo que es necesario lograr un equilibrio entre la máxima escala y la accesibilidad.
3. 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. Si se establece demasiado alto, puede tener un impacto negativo en el rendimiento de la blockchain. Actualmente está fijada en 1,000,000, y ni siquiera con la actualización máxima del marco superará el 90%.
4. Ejecutar
A través de la construcción de un marco de referencia y el uso de Valgrind para analizar Move VM, se estima el costo relativo de todas las instrucciones Move y funciones nativas. Considerando ejemplos de codificación que mejoran la robustez y seguridad del sistema, se determina el número final de instrucciones de máquina ejecutadas y, en relación con el almacenamiento y la máxima unidad de GAS, se establece el valor actual en el plan de GAS.
5. Almacenamiento
Al acceder a los elementos de estado o datos del libro mayor en el almacenamiento persistente, los nodos envían solicitudes de lectura y escritura al dispositivo de almacenamiento. El número total de accesos a datos depende del ancho de banda del dispositivo de almacenamiento y de la capacidad de IOPS. El equipo diseña el plan de GAS de almacenamiento considerando estos costos.
Acceder y almacenar cualquier elemento de estado conlleva un costo relacionado con la estructura de datos que verifica el estado completo 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 tarifas GAS = tarifa del proyecto + ( tarifa por byte × 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.
La operación de lectura es la más común, limitada únicamente por la escasez de recursos momentánea.
La operación de creación agrega nuevos elementos al almacenamiento de estado, con el costo más alto.
La operación de escritura actualiza los elementos existentes sin generar costos adicionales en la estructura de datos de autenticación.
Basado en las consideraciones anteriores, se definen 6 parámetros de GAS:
per_item_read: según la calibración de IOPs
per_byte_read: calibrar 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 fijo en unidades en relación con los costos de almacenamiento y ejecución. El costo fijo por unidad de GAS ayuda a mantener el programa de GAS constante y desvinculado del valor del mercado de tokens. El equipo representa el costo de GAS en unidades con una precisión de aproximadamente 3 dígitos, y el costo de las transacciones de transferencia es de aproximadamente 700 unidades de GAS.
participación de la comunidad
Los miembros de la comunidad pueden:
Identificar las incoherencias en el plan de GAS
Expresar preocupaciones y participar en la discusión
Votar sobre las propuestas de gobernanza relacionadas
ajuste de costos de GAS
El plan GAS se utiliza como almacenamiento de configuración on-chain, que puede ser modificado a través de propuestas de gobernanza y se pueden agregar nuevas instrucciones o funciones nativas sin problemas. Con el tiempo, los parámetros de GAS se pueden ajustar según los comentarios de los usuarios.
Los cambios complejos en la fórmula de GAS requieren actualizar el software del nodo y distinguirse mediante nuevas características de GAS. Después de que los operadores de nodos adopten el nuevo software, deberán publicar y aprobar propuestas de gobernanza para utilizar la nueva versión.
trabajo futuro
Como el primer marco de GAS viable de MOVE, las direcciones de trabajo futuras incluyen:
Reducir los costos de ejecución
Implementar cálculos de GAS multidimensionales, permitiendo a los usuarios especificar presupuestos separados para la ejecución y el almacenamiento.
Aliviar el estado de sobrecarga, explorar el concepto TTL de cada proyecto, eliminar los elementos de estado no visitados cuando el TTL expire.
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.
8 me gusta
Recompensa
8
2
Republicar
Compartir
Comentar
0/400
BoredWatcher
· hace15h
Realmente debería llamarlo lenguaje sin Gas
Ver originalesResponder0
NeverVoteOnDAO
· hace15h
move también comenzará a cobrar GAS, es un poco lamentable.
El primer plan de GAS del lenguaje MOVE se presenta, discutiendo un nuevo modelo de facturación de recursos on-chain.
Diseño de GAS de MOVE: exploración de la forma de calcular los gastos de GAS on-chain
La última versión del lenguaje MOVE estaba originalmente destinada a funcionar en un entorno sin GAS, por lo que no se preparó para el plan de GAS. Recientemente, el plan de GAS establecido por una cadena pública se ha denominado "una aventura", este es el primer diseño de GAS del lenguaje MOVE.
El plan de GAS describe los principios, procesos, métodos de cálculo y mecanismos de ajuste posteriores para establecer GAS. La medición de GAS es un concepto fundamental en muchas cadenas de bloques, define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones on-chain. El plan de GAS determinará el costo de consumo de todas las ejecuciones on-chain, utilizado para calcular el gasto de GAS durante la ejecución de transacciones.
proceso
Para lograr una ejecución efectiva, esta cadena pública adopta el siguiente proceso:
principios
Los principios definidos incluyen:
cálculo de GAS
El usuario debe especificar dos cantidades al enviar la transacción:
Máximo número de GAS: Medido en unidades de GAS, es el número máximo de unidades de GAS que el usuario está dispuesto a pagar.
Precio del GAS: Se calcula en octal por unidad de GAS, 1 octal = 0.00000001 APT.
Durante el proceso de ejecución de la transacción se cobrará:
La tarifa de transacción final = Cantidad total de GAS consumido × Precio por unidad de GAS. Por ejemplo, si la transacción consume 670 unidades de GAS y el precio por unidad especificado por el usuario es 100 Octa/unidad, entonces la tarifa final es 670 × 100 = 67000 Octa = 0.00067 APT.
Si la ejecución de la transacción agota el GAS, el remitente será cobrado según la cantidad máxima de GAS, y los cambios realizados por el intercambio serán revertidos.
Establecimiento del plan GAS
1. Configuración básica
El plan de GAS incluye componentes que no están relacionados con una única operación, como el tamaño de la transacción y la unidad máxima de GAS.
2. Escala de la transacción
La mayoría de las transacciones tienen un tamaño del orden de los kilobytes, el módulo Move puede alcanzar varios miles de bytes. El tamaño inicial de la transacción se estableció en 32KB, y luego se ajustó a 64KB según los comentarios de la comunidad, para simplificar el desarrollo de aplicaciones.
Las transacciones a gran escala pueden aumentar los costos de ancho de banda de la red, afectando el rendimiento. El grupo de memoria puede ignorar transacciones que son demasiado grandes, por lo que es necesario lograr un equilibrio entre la máxima escala y la accesibilidad.
3. 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. Si se establece demasiado alto, puede tener un impacto negativo en el rendimiento de la blockchain. Actualmente está fijada en 1,000,000, y ni siquiera con la actualización máxima del marco superará el 90%.
4. Ejecutar
A través de la construcción de un marco de referencia y el uso de Valgrind para analizar Move VM, se estima el costo relativo de todas las instrucciones Move y funciones nativas. Considerando ejemplos de codificación que mejoran la robustez y seguridad del sistema, se determina el número final de instrucciones de máquina ejecutadas y, en relación con el almacenamiento y la máxima unidad de GAS, se establece el valor actual en el plan de GAS.
5. Almacenamiento
Al acceder a los elementos de estado o datos del libro mayor en el almacenamiento persistente, los nodos envían solicitudes de lectura y escritura al dispositivo de almacenamiento. El número total de accesos a datos depende del ancho de banda del dispositivo de almacenamiento y de la capacidad de IOPS. El equipo diseña el plan de GAS de almacenamiento considerando estos costos.
Acceder y almacenar cualquier elemento de estado conlleva un costo relacionado con la estructura de datos que verifica el estado completo 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 tarifas GAS = tarifa del proyecto + ( tarifa por byte × 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.
Basado en las consideraciones anteriores, se definen 6 parámetros de GAS:
costo unitario de GAS estable
Cada operación y transacción en sí misma requiere un costo fijo en unidades en relación con los costos de almacenamiento y ejecución. El costo fijo por unidad de GAS ayuda a mantener el programa de GAS constante y desvinculado del valor del mercado de tokens. El equipo representa el costo de GAS en unidades con una precisión de aproximadamente 3 dígitos, y el costo de las transacciones 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 utiliza como almacenamiento de configuración on-chain, que puede ser modificado a través de propuestas de gobernanza y se pueden agregar nuevas instrucciones o funciones nativas sin problemas. Con el tiempo, los parámetros de GAS se pueden ajustar según los comentarios de los usuarios.
Los cambios complejos en la fórmula de GAS requieren actualizar el software del nodo y distinguirse mediante nuevas características de GAS. Después de que los operadores de nodos adopten el nuevo software, deberán publicar y aprobar propuestas de gobernanza para utilizar la nueva versión.
trabajo futuro
Como el primer marco de GAS viable de MOVE, las direcciones de trabajo futuras incluyen: