El camino de la paralelización de EVM: de la ejecución en serie a la multiprocesamiento
Como todos saben, EVM es el motor de ejecución central de Ethereum, encargado de la ejecución de contratos inteligentes. Para garantizar que los contratos inteligentes en diferentes nodos puedan obtener el mismo resultado de ejecución, EVM proporciona un entorno virtual unificado, similar a la máquina virtual Java (JVM).
Los contratos inteligentes, cuando se despliegan en la cadena de bloques, se compilan primero en código de bytes EVM. Al ejecutar el contrato, EVM lee estas instrucciones de bytes en orden, y cada instrucción tiene un costo de Gas correspondiente. EVM rastrea el consumo de Gas de cada instrucción ejecutada, y la cantidad consumida depende de la complejidad de la operación.
El EVM tradicional procesa las transacciones de manera secuencial, donde todas las transacciones se encolan y se ejecutan en orden en una única cola. Este diseño es simple y fácil de mantener, pero a medida que crece la base de usuarios y aumentan las demandas de TPS, los cuellos de botella de rendimiento de la ejecución secuencial se vuelven cada vez más evidentes, especialmente en las soluciones de Capa 2.
Además de EVM, otro componente central en la ejecución de transacciones de Ethereum es stateDB, que se utiliza para gestionar el estado de las cuentas y el almacenamiento de datos. Cada vez que EVM ejecuta una transacción, actualiza los datos en stateDB, y estos cambios se reflejan finalmente en el árbol de estado global.
En el modo de ejecución en serie, el proceso en el que EVM y stateDB colaboran para procesar transacciones es el siguiente:
Las transacciones dentro de un bloque se procesan secuencialmente.
Cada transacción utiliza una instancia EVM independiente, pero comparte la misma stateDB.
Durante el proceso de ejecución de EVM, interactúa continuamente con stateDB, leyendo y escribiendo datos.
Después de que todas las transacciones se hayan procesado, se enviarán los cambios en stateDB al árbol de estado global.
El principal problema de este modo de funcionamiento en serie es que las transacciones complejas de contratos inteligentes pueden bloquear otras transacciones, impidiendo así el uso óptimo de los recursos de hardware.
Para abordar este problema, algunos proyectos han comenzado a explorar soluciones de optimización paralela para EVM. Tomando como ejemplo un proyecto de Layer 2, su idea central es asignar una base de datos de estado temporal a cada hilo (pending-stateDB):
Ejecución paralela de diferentes transacciones en múltiples hilos
Cada hilo utiliza un registro de estado pendiente independiente en stateDB para registrar los cambios de estado.
Después de que se complete la ejecución de todas las transacciones, los cambios en pending-stateDB se sincronizarán con el stateDB global.
El plan ha hecho un tratamiento especial para las operaciones de lectura y escritura:
La operación de lectura verifica primero el pending-stateDB, y si no hay datos, lee el stateDB global.
Las operaciones de escritura se almacenan temporalmente en pending-stateDB y no modifican directamente el stateDB global.
Para evitar conflictos de estado, este plan introduce un mecanismo de detección de conflictos:
Monitorear si hay superposición en los conjuntos de lectura y escritura de diferentes transacciones.
Marcar las transacciones relevantes para su reejecución cuando se detecten conflictos.
Finalmente, se combinan múltiples cambios de pending-stateDB en el stateDB global, generando una nueva raíz de estado.
Esta solución de optimización paralela puede aumentar el TPS de 3 a 5 veces bajo cargas de trabajo de bajo conflicto. En situaciones de alto conflicto, teóricamente puede alcanzar un aumento de 60 veces.
En general, la paralelización del EVM es una dirección importante para mejorar el rendimiento de Ethereum y su Layer 2. A través de tecnologías como la ejecución paralela multihilo y bibliotecas de estados temporales, se puede aumentar significativamente la capacidad de procesamiento de transacciones, garantizando la coherencia. En el futuro, también se puede mejorar aún más el rendimiento del EVM mediante la optimización de la eficiencia del almacenamiento, la mejora de las estrategias de manejo de conflictos y otros métodos.
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
5
Compartir
Comentar
0/400
FlatTax
· 07-24 20:11
¿60 veces? Alcista sin impuestos.
Ver originalesResponder0
FastLeaver
· 07-22 02:02
No está mal, puede aumentar el TPS por 60 veces.
Ver originalesResponder0
NftDeepBreather
· 07-22 00:27
Después, el rey BTC regresa
Ver originalesResponder0
CounterIndicator
· 07-22 00:11
alcista es el techo, caída es el suelo
Ver originalesResponder0
SerumDegen
· 07-22 00:10
solo otro copium para pump eth tbh... muéstrame los números reales de tps primero
Ruptura de la paralelización EVM: la ejecución multihilo mejora la capacidad de procesamiento de transacciones
El camino de la paralelización de EVM: de la ejecución en serie a la multiprocesamiento
Como todos saben, EVM es el motor de ejecución central de Ethereum, encargado de la ejecución de contratos inteligentes. Para garantizar que los contratos inteligentes en diferentes nodos puedan obtener el mismo resultado de ejecución, EVM proporciona un entorno virtual unificado, similar a la máquina virtual Java (JVM).
Los contratos inteligentes, cuando se despliegan en la cadena de bloques, se compilan primero en código de bytes EVM. Al ejecutar el contrato, EVM lee estas instrucciones de bytes en orden, y cada instrucción tiene un costo de Gas correspondiente. EVM rastrea el consumo de Gas de cada instrucción ejecutada, y la cantidad consumida depende de la complejidad de la operación.
El EVM tradicional procesa las transacciones de manera secuencial, donde todas las transacciones se encolan y se ejecutan en orden en una única cola. Este diseño es simple y fácil de mantener, pero a medida que crece la base de usuarios y aumentan las demandas de TPS, los cuellos de botella de rendimiento de la ejecución secuencial se vuelven cada vez más evidentes, especialmente en las soluciones de Capa 2.
Además de EVM, otro componente central en la ejecución de transacciones de Ethereum es stateDB, que se utiliza para gestionar el estado de las cuentas y el almacenamiento de datos. Cada vez que EVM ejecuta una transacción, actualiza los datos en stateDB, y estos cambios se reflejan finalmente en el árbol de estado global.
En el modo de ejecución en serie, el proceso en el que EVM y stateDB colaboran para procesar transacciones es el siguiente:
El principal problema de este modo de funcionamiento en serie es que las transacciones complejas de contratos inteligentes pueden bloquear otras transacciones, impidiendo así el uso óptimo de los recursos de hardware.
Para abordar este problema, algunos proyectos han comenzado a explorar soluciones de optimización paralela para EVM. Tomando como ejemplo un proyecto de Layer 2, su idea central es asignar una base de datos de estado temporal a cada hilo (pending-stateDB):
El plan ha hecho un tratamiento especial para las operaciones de lectura y escritura:
Para evitar conflictos de estado, este plan introduce un mecanismo de detección de conflictos:
Finalmente, se combinan múltiples cambios de pending-stateDB en el stateDB global, generando una nueva raíz de estado.
Esta solución de optimización paralela puede aumentar el TPS de 3 a 5 veces bajo cargas de trabajo de bajo conflicto. En situaciones de alto conflicto, teóricamente puede alcanzar un aumento de 60 veces.
En general, la paralelización del EVM es una dirección importante para mejorar el rendimiento de Ethereum y su Layer 2. A través de tecnologías como la ejecución paralela multihilo y bibliotecas de estados temporales, se puede aumentar significativamente la capacidad de procesamiento de transacciones, garantizando la coherencia. En el futuro, también se puede mejorar aún más el rendimiento del EVM mediante la optimización de la eficiencia del almacenamiento, la mejora de las estrategias de manejo de conflictos y otros métodos.