Diseño de tarifas de combustible de MOVE: cómo calcular el consumo on-chain
La medición de tarifas de combustible es un concepto básico de muchas cadenas de bloques, define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones en la cadena. El plan de tarifas de combustible determina todos los costos consumidos durante la ejecución en la cadena, utilizados para calcular el gasto de tarifas de combustible durante la ejecución de transacciones.
proceso
Para una ejecución efectiva, el proceso on-chain es:
Definir principios
Preparar el marco de evaluación, determinar el precio de cada ejecución
Establecer un sistema de medición de tarifas de combustible y álgebra de tarifas de combustible para MOVE
Importar el marco de tarifas de combustible upstream
Hacer que el marco de tarifas de combustible tenga conciencia de almacenamiento
Refinar aún más el plan de tarifas de combustible
principio
El principio definido es:
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, etc. Después de las mejoras en tecnología y procesos, el costo del combustible debe disminuir.
La tarifa de combustible debe ser establecida por la gobernanza on-chain y puede configurarse sin problemas.
Las tarifas de combustible pueden prevenir ataques DoS a los recursos fijos de la red, y pueden necesitar ser ajustadas rápidamente a través de propuestas de gobernanza según la situación de la red.
El precio de la tarifa de combustible refleja la visión de un crecimiento acelerado y el mantenimiento de la popularidad de la blockchain.
Fomentar hacer buenas elecciones en el diseño, como priorizar la seguridad, la modularidad, las afirmaciones y otros eventos.
) cálculo de la tarifa de combustible
Al enviar una transacción, el usuario debe especificar dos cantidades en la transacción:
Máximo número de tarifas de combustible: Medido en unidades de tarifas de combustible. Esta es la cantidad máxima de unidades de tarifas de combustible que el usuario está dispuesto a gastar para ejecutar la transacción.
Precio unitario del combustible: Se calcula en octal por unidad de combustible, 1 octal = 0.00000001 APT###=$10^{-8}$(. Este es el precio del combustible que el usuario está dispuesto a pagar.
Durante la ejecución, se cobrará una tarifa por la transacción:
Costos fijos, base fija más los costos adicionales de transacciones grandes.
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 el almacenamiento persistente.
La tarifa de transacción final se puede calcular multiplicando la cantidad total de tarifas de combustible consumidas por el precio por unidad de tarifa de combustible. Por ejemplo, si una transacción consume 670 unidades de tarifa de combustible y el usuario ha especificado un precio de tarifa de combustible de 100 Octa por unidad, entonces la tarifa de transacción final es 670 * 100 = 67000 Octa = 0.00067 APT.
Si se agota la tarifa de combustible durante el proceso de ejecución de la transacción, el remitente será cobrado según la cantidad máxima de tarifa de combustible, y todos los cambios realizados por la transacción serán revertidos.
) Establecer el plan de tarifas de combustible
1. Configuración básica
El plan de tarifas de combustible tiene varios componentes que no están relacionados con los detalles de una sola operación, incluyendo el tamaño de la transacción y la unidad máxima de tarifa de combustible ###, que es diferente de la cantidad máxima de tarifa de combustible especificada por el usuario en la transacción (.
2. Escala de transacciones
La mayoría de los tamaños de transacción pueden estar en el orden de kilobytes. Sin embargo, la publicación del módulo MOVE puede alcanzar fácilmente varios miles de bytes, mientras que el marco tiene alrededor de 100 KB. El tamaño de la mayoría de los módulos de usuario generalmente está entre 4 KB y 40 KB. Inicialmente, el valor del tamaño de la transacción se estableció en 32 KB, pero debido a la demanda de la comunidad para proporcionar más espacio y simplificar el desarrollo de aplicaciones, se ajustó el tamaño de la transacción a 64 KB.
Transacciones de muy gran escala pueden llevar a un aumento en los costos de ancho de banda de toda la red, lo que podría tener un impacto negativo en el rendimiento. Si se abusa, se alentará a la memoria a ignorar transacciones de mayor tamaño, por lo que nuestro enfoque es lograr un equilibrio entre el tamaño de las transacciones de máximo tamaño y su accesibilidad.
3. Unidad máxima de tarifa de combustible
La unidad máxima de tarifa de combustible definida en el plan de tarifas de combustible establece cuántas operaciones se pueden ejecutar como máximo en una transacción. ¡Atención! Esto es diferente de la cantidad máxima de tarifa de combustible que el usuario especifica en la transacción.
La unidad máxima de tarifa de combustible del plan de tarifas de combustible afecta directamente cuánto tiempo puede ejecutarse una transacción; establecerla demasiado alta puede tener un impacto negativo en el rendimiento de la blockchain. Por ejemplo, un usuario puede olvidar tener un incremento en un bucle while, lo que lleva a un bucle infinito, que es un error común. Incluso con la mayor actualización de marco, todavía no alcanza el 90% de la unidad máxima de tarifa de combustible del plan de tarifas de combustible establecida en 1,000,000).
4. Ejecución
Para evaluar los costos de ejecución, se construyó un marco de referencia y se utilizó Valgrind para analizar MOVE VM al ejecutar dicho marco. Su salida es un conjunto de código fuente comentado que indica cuántas instrucciones de máquina genera cada línea de código.
Con la ayuda del análisis anterior, se estimó de manera aproximada el costo relativo de todas las instrucciones MOVE y funciones nativas. Sin embargo, este método presenta algunos problemas con las funciones en línea: no se incluyen automáticamente en el recuento del llamador. También vimos que esto solo ocurre al analizar ciertas instrucciones MOVE, y se puede resolver sumando los números.
Luego, al considerar ejemplos de codificación que mejoran la robustez y seguridad del sistema, el equipo llegó al número final de instrucciones de máquina a ejecutar. Este número se pondera sucesivamente con respecto a la unidad de almacenamiento y al costo máximo de combustible para determinar su valor actual en el plan de costos de combustible.
5. Almacenamiento
Cada vez que se accede a un elemento de estado del libro mayor o a datos almacenados en almacenamiento persistente, el nodo emite una lectura o escritura 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. Al igual que los ciclos de CPU de la parte de cálculo de tarifas de combustible, el acceso a datos es la escasez instantánea por la que los usuarios de blockchain compiten en el mercado de tarifas durante la carga del sistema; además, el costo de ocupación del disco para escribir datos es permanente en la cadena. El equipo diseña el plan de tarifas de combustible de almacenamiento considerando estos costos.
Acceder y almacenar cualquier elemento de estado conlleva costos relacionados 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 ($2^{256}$). También hay un costo que es proporcional al tamaño de cada elemento. Para operar sobre un elemento de estado, la tarifa es (, salvo las excepciones descritas en la siguiente sección ):
Costo de almacenamiento de combustible = item_fee + (byte_fee * bytes)
( leer, crear y escribir
Cualquier acceso a los elementos de estado pertenece a una de las siguientes tres categorías: lectura, creación o escritura. Los accesos se cobran según el costo por elemento y el costo por byte, como se indica en la ecuación anterior.
La operación de lectura es la más común, y solo está limitada por la escasez de recursos momentáneos. Por lo tanto, los costos de lectura se calibran según IOPS de disco ), el costo del proyecto ### y la capacidad de ancho de banda de las especificaciones de hardware de referencia.
create es agregar un nuevo elemento al almacenamiento de estado. Por lo tanto, create aumenta la estructura de datos de autenticación, lo que hace que todo sea más costoso, y por lo tanto, el costo es el más alto. El costo de crear se calibra según el espacio en disco de referencia que tiene la red. Por lo tanto, llenar el disco con el ítem (item_fee) y el byte (byte_fee) requiere una gran cantidad de tarifas de combustible.
Las operaciones de escritura actualizan los elementos existentes en el almacenamiento de estado. Por lo tanto, las operaciones de escritura no generan gastos adicionales en la estructura de datos de autenticación. Sin embargo, al modificar los elementos existentes a un tamaño de byte mayor, se puede comprometer el disco. Por lo tanto, cobramos la misma tarifa por los bytes en los elementos actualizados que al momento de su creación.
Es importante tener en cuenta que los costos relacionados con el almacenamiento se evalúan por cada transacción: incluso si se lee/escribe el mismo recurso varias veces, solo se debe pagar una vez.
Con base en lo anterior, hemos definido 6 parámetros de tarifa de combustible, los cuales constituyen los componentes del costo total de la tarifa de combustible. Ver a continuación:
per_item_read:corrección según IOPs
per_byte_read: calibrar según el ancho de banda real
per_item_create: calibrar de acuerdo con el total del proyecto objetivo
per_byte_create: Calibrar según el tamaño total objetivo - los primeros 1KB incluidos en cada proyecto
per_item_write: igual que per_item_read
per_byte_write: igual que per_byte_create
( costo unitario estable de la tarifa de combustible
Independientemente de cuál sea el costo de ejecutar operaciones en términos del valor de mercado de APT o moneda fiduciaria, cada operación y la transacción en sí requieren un costo unitario fijo en relación con el costo de almacenamiento y ejecución. Un costo unitario fijo de tarifas de gas ayuda a mantener el programa de tarifas de gas constante y desvinculado del valor de mercado libre de APT. Además, elegir correctamente el número de dígitos precisos para la unidad de tarifas de gas ayuda a mantener el programa de tarifas de gas constante. Teniendo esto en cuenta, el equipo representa la unidad de tarifas de gas con una precisión de aproximadamente 3 dígitos. Por lo tanto, el costo de la transacción de transferencia es de aproximadamente 700 unidades de tarifas de gas.
) participación comunitaria
A pesar de haber invertido una gran cantidad de esfuerzo en el plan de tarifas de combustible, aún está lejos de ser perfecto. Como un proyecto comunitario, los miembros de la comunidad pueden elegir:
Según la experiencia, identificar los lugares donde el plan de tarifas de combustible es irracional.
Expresar preocupaciones sobre el plan de tarifas de combustible y participar en discusiones comunitarias
Votar sobre las propuestas de gobernanza relacionadas con las tarifas de combustible
¿Cómo ajustar el costo de la tarifa de combustible?
El plan de tarifas de combustible se almacena como una configuración on-chain, pero se puede modificar a través de propuestas de gobernanza y se pueden agregar nuevas instrucciones o funciones nativas de manera fluida.
El plan de tarifas de combustible está diseñado para ser escalable, permitiendo su actualización a través de propuestas de gobernanza. A medida que se mejora continuamente MOVE VM e incorporan los comentarios de los usuarios, los parámetros de tarifas de combustible pueden ajustarse con el tiempo.
A veces, la fórmula de tarifas de combustible puede requerir cambios complejos que van más allá de la configuración on-chain. Estas fórmulas de tarifas de combustible suelen estar codificadas en Rust y se diferencian mediante las banderas de características de tarifas de combustible on-chain. Para actualizar estas fórmulas, es necesario actualizar el software del nodo con la nueva fórmula y diferenciarlas con una bandera de características de tarifas de combustible diferente. Luego, el software del nodo debe ser publicado y adoptado masivamente por los operadores de nodos, y finalmente, se debe publicar y aprobar una propuesta de gobernanza para poder utilizar la nueva versión de tarifas de combustible.
Trabajo del futuro
Este es el primer marco viable de tarifas de combustible para MOVE. Requiere una gran cantidad de modificaciones en MOVE VM y Core. Esperamos que este trabajo allane el camino para futuros trabajos:
1### reducir el costo de ejecución, tener un modelo real de tarifas de combustible que indique dónde son eficientes el compilador y la máquina virtual, el equipo puede mejorar gran parte de esto para reducir el costo de ejecución.
2### Cálculo de tarifas de combustible multidimensional, permite a los usuarios establecer un presupuesto separado para la ejecución y el almacenamiento. De esta manera, los usuarios no tienen que pagar precios elevados de tarifas de combustible por un tiempo de ejecución prolongado debido a aplicaciones con código deficiente. También permitirá una definición más granular del precio máximo de las tarifas de combustible para transacciones en la cadena.
3) aliviar el estado de hinchazón, actualmente no hay una manera simple de reducir el conjunto de estados, aparte de que el contrato ) o el usuario ) eliminen explícitamente los objetos. Pagar para eliminar datos puede crear oportunidades de arbitraje, donde los usuarios crean almacenamiento cuando es barato y lo eliminan cuando es caro. Retrasar la solución a este desafío podría debilitar la motivación de los desarrolladores para eliminar datos on-chain. El equipo está explorando el concepto de TTL para cada proyecto, que eliminará los elementos de estado no visitados cuando expire 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.
24 me gusta
Recompensa
24
9
Compartir
Comentar
0/400
SatoshiLegend
· 07-18 12:03
La seguridad on-chain es fundamental. La esencia del cálculo de las tarifas de combustible es una reabstractación de la distribución de recursos.
Ver originalesResponder0
LayoffMiner
· 07-18 04:42
move no está familiarizado, solo mira la imagen y diviértete.
Ver originalesResponder0
ZkSnarker
· 07-18 00:42
técnicamente solo es álgebra con pasos adicionales... no voy a mentir, el movimiento necesita mejorar en abstracciones de costos fr
Ver originalesResponder0
wrekt_but_learning
· 07-16 22:19
La tarifa de combustible es complicada, estoy agotado.
Ver originalesResponder0
LightningSentry
· 07-15 20:58
move y tomar a la gente por tonta
Ver originalesResponder0
ZenZKPlayer
· 07-15 20:56
Este gas es un agujero negro.
Ver originalesResponder0
InfraVibes
· 07-15 20:55
¿No es demasiado extravagante? Primero aclara cómo se calcula.
Diseño de tarifa de combustible innovador del lenguaje MOVE: cómo se determina el costo de cálculo on-chain
Diseño de tarifas de combustible de MOVE: cómo calcular el consumo on-chain
La medición de tarifas de combustible es un concepto básico de muchas cadenas de bloques, define la cantidad de recursos computacionales y de almacenamiento necesarios para ejecutar y almacenar transacciones en la cadena. El plan de tarifas de combustible determina todos los costos consumidos durante la ejecución en la cadena, utilizados para calcular el gasto de tarifas de combustible durante la ejecución de transacciones.
proceso
Para una ejecución efectiva, el proceso on-chain es:
principio
El principio definido es:
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, etc. Después de las mejoras en tecnología y procesos, el costo del combustible debe disminuir.
La tarifa de combustible debe ser establecida por la gobernanza on-chain y puede configurarse sin problemas.
Las tarifas de combustible pueden prevenir ataques DoS a los recursos fijos de la red, y pueden necesitar ser ajustadas rápidamente a través de propuestas de gobernanza según la situación de la red.
El precio de la tarifa de combustible refleja la visión de un crecimiento acelerado y el mantenimiento de la popularidad de la blockchain.
Fomentar hacer buenas elecciones en el diseño, como priorizar la seguridad, la modularidad, las afirmaciones y otros eventos.
) cálculo de la tarifa de combustible
Al enviar una transacción, el usuario debe especificar dos cantidades en la transacción:
Máximo número de tarifas de combustible: Medido en unidades de tarifas de combustible. Esta es la cantidad máxima de unidades de tarifas de combustible que el usuario está dispuesto a gastar para ejecutar la transacción.
Precio unitario del combustible: Se calcula en octal por unidad de combustible, 1 octal = 0.00000001 APT###=$10^{-8}$(. Este es el precio del combustible que el usuario está dispuesto a pagar.
Durante la ejecución, se cobrará una tarifa por la transacción:
La tarifa de transacción final se puede calcular multiplicando la cantidad total de tarifas de combustible consumidas por el precio por unidad de tarifa de combustible. Por ejemplo, si una transacción consume 670 unidades de tarifa de combustible y el usuario ha especificado un precio de tarifa de combustible de 100 Octa por unidad, entonces la tarifa de transacción final es 670 * 100 = 67000 Octa = 0.00067 APT.
Si se agota la tarifa de combustible durante el proceso de ejecución de la transacción, el remitente será cobrado según la cantidad máxima de tarifa de combustible, y todos los cambios realizados por la transacción serán revertidos.
) Establecer el plan de tarifas de combustible
1. Configuración básica
El plan de tarifas de combustible tiene varios componentes que no están relacionados con los detalles de una sola operación, incluyendo el tamaño de la transacción y la unidad máxima de tarifa de combustible ###, que es diferente de la cantidad máxima de tarifa de combustible especificada por el usuario en la transacción (.
2. Escala de transacciones
La mayoría de los tamaños de transacción pueden estar en el orden de kilobytes. Sin embargo, la publicación del módulo MOVE puede alcanzar fácilmente varios miles de bytes, mientras que el marco tiene alrededor de 100 KB. El tamaño de la mayoría de los módulos de usuario generalmente está entre 4 KB y 40 KB. Inicialmente, el valor del tamaño de la transacción se estableció en 32 KB, pero debido a la demanda de la comunidad para proporcionar más espacio y simplificar el desarrollo de aplicaciones, se ajustó el tamaño de la transacción a 64 KB.
Transacciones de muy gran escala pueden llevar a un aumento en los costos de ancho de banda de toda la red, lo que podría tener un impacto negativo en el rendimiento. Si se abusa, se alentará a la memoria a ignorar transacciones de mayor tamaño, por lo que nuestro enfoque es lograr un equilibrio entre el tamaño de las transacciones de máximo tamaño y su accesibilidad.
3. Unidad máxima de tarifa de combustible
La unidad máxima de tarifa de combustible definida en el plan de tarifas de combustible establece cuántas operaciones se pueden ejecutar como máximo en una transacción. ¡Atención! Esto es diferente de la cantidad máxima de tarifa de combustible que el usuario especifica en la transacción.
La unidad máxima de tarifa de combustible del plan de tarifas de combustible afecta directamente cuánto tiempo puede ejecutarse una transacción; establecerla demasiado alta puede tener un impacto negativo en el rendimiento de la blockchain. Por ejemplo, un usuario puede olvidar tener un incremento en un bucle while, lo que lleva a un bucle infinito, que es un error común. Incluso con la mayor actualización de marco, todavía no alcanza el 90% de la unidad máxima de tarifa de combustible del plan de tarifas de combustible establecida en 1,000,000).
4. Ejecución
Para evaluar los costos de ejecución, se construyó un marco de referencia y se utilizó Valgrind para analizar MOVE VM al ejecutar dicho marco. Su salida es un conjunto de código fuente comentado que indica cuántas instrucciones de máquina genera cada línea de código.
Con la ayuda del análisis anterior, se estimó de manera aproximada el costo relativo de todas las instrucciones MOVE y funciones nativas. Sin embargo, este método presenta algunos problemas con las funciones en línea: no se incluyen automáticamente en el recuento del llamador. También vimos que esto solo ocurre al analizar ciertas instrucciones MOVE, y se puede resolver sumando los números.
Luego, al considerar ejemplos de codificación que mejoran la robustez y seguridad del sistema, el equipo llegó al número final de instrucciones de máquina a ejecutar. Este número se pondera sucesivamente con respecto a la unidad de almacenamiento y al costo máximo de combustible para determinar su valor actual en el plan de costos de combustible.
5. Almacenamiento
Cada vez que se accede a un elemento de estado del libro mayor o a datos almacenados en almacenamiento persistente, el nodo emite una lectura o escritura 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. Al igual que los ciclos de CPU de la parte de cálculo de tarifas de combustible, el acceso a datos es la escasez instantánea por la que los usuarios de blockchain compiten en el mercado de tarifas durante la carga del sistema; además, el costo de ocupación del disco para escribir datos es permanente en la cadena. El equipo diseña el plan de tarifas de combustible de almacenamiento considerando estos costos.
Acceder y almacenar cualquier elemento de estado conlleva costos relacionados 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 ($2^{256}$). También hay un costo que es proporcional al tamaño de cada elemento. Para operar sobre un elemento de estado, la tarifa es (, salvo las excepciones descritas en la siguiente sección ):
Costo de almacenamiento de combustible = item_fee + (byte_fee * bytes)
( leer, crear y escribir
Cualquier acceso a los elementos de estado pertenece a una de las siguientes tres categorías: lectura, creación o escritura. Los accesos se cobran según el costo por elemento y el costo por byte, como se indica en la ecuación anterior.
La operación de lectura es la más común, y solo está limitada por la escasez de recursos momentáneos. Por lo tanto, los costos de lectura se calibran según IOPS de disco ), el costo del proyecto ### y la capacidad de ancho de banda de las especificaciones de hardware de referencia.
create es agregar un nuevo elemento al almacenamiento de estado. Por lo tanto, create aumenta la estructura de datos de autenticación, lo que hace que todo sea más costoso, y por lo tanto, el costo es el más alto. El costo de crear se calibra según el espacio en disco de referencia que tiene la red. Por lo tanto, llenar el disco con el ítem (item_fee) y el byte (byte_fee) requiere una gran cantidad de tarifas de combustible.
Las operaciones de escritura actualizan los elementos existentes en el almacenamiento de estado. Por lo tanto, las operaciones de escritura no generan gastos adicionales en la estructura de datos de autenticación. Sin embargo, al modificar los elementos existentes a un tamaño de byte mayor, se puede comprometer el disco. Por lo tanto, cobramos la misma tarifa por los bytes en los elementos actualizados que al momento de su creación.
Es importante tener en cuenta que los costos relacionados con el almacenamiento se evalúan por cada transacción: incluso si se lee/escribe el mismo recurso varias veces, solo se debe pagar una vez.
Con base en lo anterior, hemos definido 6 parámetros de tarifa de combustible, los cuales constituyen los componentes del costo total de la tarifa de combustible. Ver a continuación:
per_item_read:corrección según IOPs per_byte_read: calibrar según el ancho de banda real per_item_create: calibrar de acuerdo con el total del proyecto objetivo per_byte_create: Calibrar según el tamaño total objetivo - los primeros 1KB incluidos en cada proyecto per_item_write: igual que per_item_read per_byte_write: igual que per_byte_create
( costo unitario estable de la tarifa de combustible
Independientemente de cuál sea el costo de ejecutar operaciones en términos del valor de mercado de APT o moneda fiduciaria, cada operación y la transacción en sí requieren un costo unitario fijo en relación con el costo de almacenamiento y ejecución. Un costo unitario fijo de tarifas de gas ayuda a mantener el programa de tarifas de gas constante y desvinculado del valor de mercado libre de APT. Además, elegir correctamente el número de dígitos precisos para la unidad de tarifas de gas ayuda a mantener el programa de tarifas de gas constante. Teniendo esto en cuenta, el equipo representa la unidad de tarifas de gas con una precisión de aproximadamente 3 dígitos. Por lo tanto, el costo de la transacción de transferencia es de aproximadamente 700 unidades de tarifas de gas.
) participación comunitaria
A pesar de haber invertido una gran cantidad de esfuerzo en el plan de tarifas de combustible, aún está lejos de ser perfecto. Como un proyecto comunitario, los miembros de la comunidad pueden elegir:
¿Cómo ajustar el costo de la tarifa de combustible?
El plan de tarifas de combustible se almacena como una configuración on-chain, pero se puede modificar a través de propuestas de gobernanza y se pueden agregar nuevas instrucciones o funciones nativas de manera fluida.
El plan de tarifas de combustible está diseñado para ser escalable, permitiendo su actualización a través de propuestas de gobernanza. A medida que se mejora continuamente MOVE VM e incorporan los comentarios de los usuarios, los parámetros de tarifas de combustible pueden ajustarse con el tiempo.
A veces, la fórmula de tarifas de combustible puede requerir cambios complejos que van más allá de la configuración on-chain. Estas fórmulas de tarifas de combustible suelen estar codificadas en Rust y se diferencian mediante las banderas de características de tarifas de combustible on-chain. Para actualizar estas fórmulas, es necesario actualizar el software del nodo con la nueva fórmula y diferenciarlas con una bandera de características de tarifas de combustible diferente. Luego, el software del nodo debe ser publicado y adoptado masivamente por los operadores de nodos, y finalmente, se debe publicar y aprobar una propuesta de gobernanza para poder utilizar la nueva versión de tarifas de combustible.
Trabajo del futuro
Este es el primer marco viable de tarifas de combustible para MOVE. Requiere una gran cantidad de modificaciones en MOVE VM y Core. Esperamos que este trabajo allane el camino para futuros trabajos:
1### reducir el costo de ejecución, tener un modelo real de tarifas de combustible que indique dónde son eficientes el compilador y la máquina virtual, el equipo puede mejorar gran parte de esto para reducir el costo de ejecución.
2### Cálculo de tarifas de combustible multidimensional, permite a los usuarios establecer un presupuesto separado para la ejecución y el almacenamiento. De esta manera, los usuarios no tienen que pagar precios elevados de tarifas de combustible por un tiempo de ejecución prolongado debido a aplicaciones con código deficiente. También permitirá una definición más granular del precio máximo de las tarifas de combustible para transacciones en la cadena.
3) aliviar el estado de hinchazón, actualmente no hay una manera simple de reducir el conjunto de estados, aparte de que el contrato ) o el usuario ) eliminen explícitamente los objetos. Pagar para eliminar datos puede crear oportunidades de arbitraje, donde los usuarios crean almacenamiento cuando es barato y lo eliminan cuando es caro. Retrasar la solución a este desafío podría debilitar la motivación de los desarrolladores para eliminar datos on-chain. El equipo está explorando el concepto de TTL para cada proyecto, que eliminará los elementos de estado no visitados cuando expire el TTL.