Ejecución
En Aptos, la ejecución se refiere al proceso donde los validators ejecutan y aplican transacciones de contratos inteligentes de un bloque ordenado. La salida de ejecución luego se aplica al estado de la blockchain.
Es crucial que la ejecución sea determinística, y todos los validators deberían idealmente acordar el mismo estado final del ledger. Una mayoría de validators (más de 2/3 de los validators) debe acordar el estado final del ledger para llegar a un consenso. Para más información detallada sobre propiedades de consenso, ver la sección sobre BFT y consenso.
La ejecución eficiente, particularmente la ejecución paralela, es clave para escalar el rendimiento y throughput de la blockchain. El impacto de esto se puede sentir en el tiempo de bloque. A diciembre de 2024, los bloques de Aptos se cierran dentro de 250ms.
¿Por qué Ejecución Paralela?
Sección titulada «¿Por qué Ejecución Paralela?»El enfoque más simple para la ejecución de contratos inteligentes es ejecutar las transacciones en un bloque secuencialmente, una a la vez. Sin embargo, esto no escala bien. Tener un gran número de transacciones secuenciales, especialmente con tiempos de ejecución variables, puede causar que la latencia y throughput de la blockchain caigan drásticamente.
Para resolver este problema, las blockchains comenzaron a adoptar la ejecución paralela, o la capacidad de procesar múltiples transacciones en paralelo. El desafío con la ejecución paralela, sin embargo, es que ciertas transacciones pueden leer o escribir el mismo recurso, causando conflictos.
Paralelismo Estático
Sección titulada «Paralelismo Estático»Un enfoque para abordar el problema de conflictos en la ejecución paralela es el paralelismo estático, que requiere que los desarrolladores especifiquen los conflictos entre transacciones con anticipación. Esto, sin embargo, trae una carga mayor al desarrollador, y en muchos casos fuerza transacciones que realmente no entran en conflicto a ser secuenciales.
Paralelismo Dinámico
Sección titulada «Paralelismo Dinámico»El paralelismo dinámico computa el ordenamiento de ejecución de transacciones sobre la marcha, detectando dinámicamente dependencias y evitando conflictos durante la ejecución. Una propiedad adicional que es importante para el paralelismo dinámico en una blockchain es que la salida de ejecución es consistente con ejecutar transacciones según un orden preestablecido.
Al no requerir que los desarrolladores especifiquen los conflictos con anticipación, el paralelismo dinámico permite a los desarrolladores escribir aplicaciones flexiblemente sin enfrentar las restricciones de diseño de declarar estáticamente dependencias de transacciones.
Block-STM
Sección titulada «Block-STM»Aptos usa un motor de ejecución paralela en memoria, multi-hilo, altamente eficiente llamado Block-STM. Block-STM aprovecha el orden preestablecido de transacciones y combina técnicas de Memoria Transaccional de Software con un cronograma colaborativo novedoso.
Block-STM es el motor de ejecución de paralelismo dinámico de vanguardia desarrollado por el equipo de Aptos Labs.
Desde su lanzamiento, Polygon, Sei, Starknet, y otras blockchains lo han adoptado para lograr ejecución paralela en sus respectivas cadenas.
Para aprender más, ver: