Optimización de EVM en paralelo: Mejora del rendimiento del procesamiento de transacciones
Como todos saben, EVM es el motor de ejecución central de Ethereum, responsable de la ejecución de contratos inteligentes. Para garantizar la coherencia de los resultados de ejecución de los contratos en diferentes nodos, EVM utiliza tecnología de máquina virtual, logrando compatibilidad entre plataformas.
Los contratos inteligentes, al ser desplegados en la cadena, se compilan primero en código de bytes EVM. Cuando EVM ejecuta el contrato, lee secuencialmente este código de bytes, donde cada instrucción tiene un costo de Gas correspondiente. EVM rastrea el consumo de Gas durante el proceso de ejecución de las instrucciones, y la cantidad consumida depende de la complejidad de la operación.
La EVM tradicional procesa las transacciones de manera secuencial, con todas las transacciones en una única cola para su ejecución. Este diseño es simple y fácil de mantener, pero a medida que aumenta el número de usuarios y se incrementan las demandas de TPS y rendimiento, los cuellos de botella de rendimiento de la ejecución secuencial se vuelven cada vez más evidentes, especialmente en Layer 2.
Además de EVM, otro componente central relacionado con la ejecución de transacciones en go-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, los datos en stateDB se modifican, lo que finalmente se refleja en el árbol de estado global.
En modo de serie, las transacciones deben ejecutarse en orden. Si hay transacciones de contratos complejos que tardan mucho tiempo, las otras transacciones solo pueden esperar, lo que impide aprovechar plenamente los recursos de hardware y limita considerablemente la eficiencia.
Para resolver este problema, la industria ha propuesto un esquema de optimización de paralelismo multihilo para EVM. Este esquema puede mejorar la eficiencia varias veces al abrir múltiples hilos para procesar varias transacciones simultáneamente. Sin embargo, la ejecución paralela enfrenta el desafío de conflictos de estado, lo que requiere tomar medidas adecuadas.
Algunas ideas sobre la optimización paralela de EVM son: asignar una base de datos de estado temporal (pending-stateDB) para cada hilo. Cuando un hilo ejecuta una transacción, los cambios de estado se almacenan temporalmente en pending-stateDB, en lugar de modificar directamente la base de datos de estado global. Después de que se completen todas las transacciones, los cambios de pending-stateDB se sincronizan con la base de datos de estado global.
Esta solución también optimiza las operaciones de lectura y escritura: al leer, primero se verifica el pending-stateDB, y si no hay datos, se lee del global stateDB; las operaciones de escritura se registran en el pending-stateDB y, una vez completadas, se fusionan en el global stateDB.
Para manejar los conflictos de estado, el esquema introdujo un mecanismo de detección de conflictos. Se monitorean los conjuntos de lectura y escritura de diferentes transacciones, y cuando se detecta un conflicto, las transacciones relacionadas se marcan para su reejecución.
La optimización de paralelismo multihilo ha mejorado significativamente el rendimiento de EVM, especialmente al manejar contratos inteligentes complejos. Los estudios muestran que, con cargas de trabajo de bajo conflicto, el TPS puede aumentar de 3 a 5 veces; con cargas de alto conflicto, teóricamente puede alcanzar hasta 60 veces.
Este enfoque de optimización en paralelo logra una paralelización a gran escala de las transacciones a través de una biblioteca de estados temporales y detección de conflictos, garantizando la consistencia del estado, lo que sienta una base importante para el desarrollo de Rollup en Ethereum. En el futuro, se puede mejorar aún más el rendimiento desde aspectos como la optimización de la eficiencia del almacenamiento, el manejo de escenarios de alta conflictividad y la aceleración por GPU.
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.
11 me gusta
Recompensa
11
6
Compartir
Comentar
0/400
¯\_(ツ)_/¯
· hace5h
Los usuarios finalmente no tendrán que esperar hasta el fin del mundo.
Ver originalesResponder0
ReverseTradingGuru
· hace5h
Finalmente algo realmente duro.
Ver originalesResponder0
TxFailed
· hace5h
psa: aprendí sobre evm paralelo de la manera costosa... rip mis 2.3 eth
Ver originalesResponder0
rugpull_survivor
· hace5h
¿Se dice que puede ser hasta 60 veces más rápido? ¿Puede reducir la tarifa de gas?
Ver originalesResponder0
SilentAlpha
· hace5h
60 veces, esto no puede no ganar mucho.
Ver originalesResponder0
LiquiditySurfer
· hace5h
Martini ya ha tocado fondo, finalmente no hay que esperar más por el gas.
Optimización paralela de EVM para mejorar el rendimiento de procesamiento de transacciones de Ethereum hasta 60 veces.
Optimización de EVM en paralelo: Mejora del rendimiento del procesamiento de transacciones
Como todos saben, EVM es el motor de ejecución central de Ethereum, responsable de la ejecución de contratos inteligentes. Para garantizar la coherencia de los resultados de ejecución de los contratos en diferentes nodos, EVM utiliza tecnología de máquina virtual, logrando compatibilidad entre plataformas.
Los contratos inteligentes, al ser desplegados en la cadena, se compilan primero en código de bytes EVM. Cuando EVM ejecuta el contrato, lee secuencialmente este código de bytes, donde cada instrucción tiene un costo de Gas correspondiente. EVM rastrea el consumo de Gas durante el proceso de ejecución de las instrucciones, y la cantidad consumida depende de la complejidad de la operación.
La EVM tradicional procesa las transacciones de manera secuencial, con todas las transacciones en una única cola para su ejecución. Este diseño es simple y fácil de mantener, pero a medida que aumenta el número de usuarios y se incrementan las demandas de TPS y rendimiento, los cuellos de botella de rendimiento de la ejecución secuencial se vuelven cada vez más evidentes, especialmente en Layer 2.
Además de EVM, otro componente central relacionado con la ejecución de transacciones en go-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, los datos en stateDB se modifican, lo que finalmente se refleja en el árbol de estado global.
En modo de serie, las transacciones deben ejecutarse en orden. Si hay transacciones de contratos complejos que tardan mucho tiempo, las otras transacciones solo pueden esperar, lo que impide aprovechar plenamente los recursos de hardware y limita considerablemente la eficiencia.
Para resolver este problema, la industria ha propuesto un esquema de optimización de paralelismo multihilo para EVM. Este esquema puede mejorar la eficiencia varias veces al abrir múltiples hilos para procesar varias transacciones simultáneamente. Sin embargo, la ejecución paralela enfrenta el desafío de conflictos de estado, lo que requiere tomar medidas adecuadas.
Algunas ideas sobre la optimización paralela de EVM son: asignar una base de datos de estado temporal (pending-stateDB) para cada hilo. Cuando un hilo ejecuta una transacción, los cambios de estado se almacenan temporalmente en pending-stateDB, en lugar de modificar directamente la base de datos de estado global. Después de que se completen todas las transacciones, los cambios de pending-stateDB se sincronizan con la base de datos de estado global.
Esta solución también optimiza las operaciones de lectura y escritura: al leer, primero se verifica el pending-stateDB, y si no hay datos, se lee del global stateDB; las operaciones de escritura se registran en el pending-stateDB y, una vez completadas, se fusionan en el global stateDB.
Para manejar los conflictos de estado, el esquema introdujo un mecanismo de detección de conflictos. Se monitorean los conjuntos de lectura y escritura de diferentes transacciones, y cuando se detecta un conflicto, las transacciones relacionadas se marcan para su reejecución.
La optimización de paralelismo multihilo ha mejorado significativamente el rendimiento de EVM, especialmente al manejar contratos inteligentes complejos. Los estudios muestran que, con cargas de trabajo de bajo conflicto, el TPS puede aumentar de 3 a 5 veces; con cargas de alto conflicto, teóricamente puede alcanzar hasta 60 veces.
Este enfoque de optimización en paralelo logra una paralelización a gran escala de las transacciones a través de una biblioteca de estados temporales y detección de conflictos, garantizando la consistencia del estado, lo que sienta una base importante para el desarrollo de Rollup en Ethereum. En el futuro, se puede mejorar aún más el rendimiento desde aspectos como la optimización de la eficiencia del almacenamiento, el manejo de escenarios de alta conflictividad y la aceleración por GPU.