Saltearse al contenido

Análisis Profundo de la Blockchain de Aptos

Para una comprensión más profunda del ciclo de vida de una transacción en Aptos (desde una perspectiva operacional), seguiremos una transacción en su recorrido, desde que se envía a un nodo completo de Aptos hasta que se confirma en la blockchain de Aptos. Luego nos enfocaremos en los componentes lógicos de los nodos de Aptos y veremos cómo la transacción interactúa con estos componentes.

  • Alice y Bob son dos usuarios que cada uno tiene una cuenta en la blockchain de Aptos.
  • La cuenta de Alice tiene 110 Monedas Aptos.
  • Alice está enviando 10 Monedas Aptos a Bob.
  • El número de secuencia actual de la cuenta de Alice es 5 (lo que indica que ya se han enviado 5 transacciones desde la cuenta de Alice).
  • Hay un total de 100 nodos validadores — V1 a V100 en la red.
  • Un cliente de Aptos envía la transacción de Alice a un servicio REST en un Nodo Completo de Aptos. El nodo completo reenvía esta transacción a un nodo completo validador que a su vez la reenvía al validador V1.
  • El validador V1 es un proponente/líder para la ronda actual.

En esta sección, describiremos el ciclo de vida de la transacción T5, desde cuando el cliente la envía hasta cuando se confirma en la blockchain de Aptos.

Para los pasos relevantes, hemos incluido un enlace a las interacciones inter-componente correspondientes del nodo validador. Después de que estés familiarizado con todos los pasos en el ciclo de vida de la transacción, puedes querer referirte a la información sobre las interacciones inter-componente correspondientes para cada paso.

graph LR
subgraph Fullnodes
direction TB
REST_Service[Servicio REST]
end
Client(Cliente) -->|1| REST_Service
subgraph Other_Validators[Otros Validadores]
direction TB
end
subgraph Validators
direction TB
Mempool[3\nMempool]
Consensus[Consenso]
Consensus -->|7, 9| Execution
Execution -->|11| Storage
Execution -->|8| Virtual_Machine(Máquina Virtual)
Mempool --> Virtual_Machine
Virtual_Machine --> Storage
end
Other_Validators <-->|6, 10| Consensus
REST_Service -->|2| Mempool
Mempool <-->|4| Other_Validators(Otros Validadores)
Consensus -->|5| Mempool

El ciclo de vida de una transacción tiene cinco etapas:

Hemos descrito lo que sucede en cada etapa a continuación, junto con enlaces a las interacciones de componentes del nodo de Aptos correspondientes.

Un cliente de Aptos construye una transacción sin procesar (llamémosla Traw5) para transferir 10 Monedas Aptos de la cuenta de Alice a la cuenta de Bob. El cliente de Aptos firma la transacción con la clave privada de Alice. La transacción firmada T5 incluye lo siguiente:

  • La transacción sin procesar.
  • La clave pública de Alice.
  • La firma de Alice.

La transacción sin procesar incluye los siguientes campos:

CamposDescripción
Dirección de cuentaLa dirección de cuenta de Alice
Carga útilIndica una acción o conjunto de acciones en nombre de Alice. En el caso de que sea una función Move, llama directamente al bytecode Move en la cadena. Alternativamente, puede ser un script de transacción bytecode Move peer-to-peer. También contiene una lista de entradas a la función o script. Para este ejemplo, es una llamada de función para transferir una cantidad de Monedas Aptos de la cuenta de Alice a la cuenta de Bob, donde la cuenta de Alice está implícita al enviar la transacción y la cuenta de Bob y la cantidad se especifican como entradas de transacción.
Precio de unidad de gasLa cantidad que el remitente está dispuesto a pagar por unidad de gas, para ejecutar la transacción. Esto se representa en Octas.
Cantidad máxima de gasLa cantidad máxima de gas en APT que Alice está dispuesta a pagar por esta transacción. Los cargos de gas son iguales al costo base de gas cubierto por computación e IO multiplicado por el precio del gas. Los costos de gas también incluyen almacenamiento con un modelo de almacenamiento de precio fijo APT. Esto se representa en Octas.
Tiempo de expiraciónTiempo de expiración de la transacción.
Número de secuenciaEl número de secuencia (5, en este ejemplo) para una cuenta indica el número de transacciones que se han enviado y confirmado en la cadena desde esa cuenta. En este caso, se han enviado 5 transacciones desde la cuenta de Alice, incluyendo Traw5. Nota: una transacción con número de secuencia 5 solo puede confirmarse en la cadena si el número de secuencia de la cuenta es 5.
ID de CadenaUn identificador que distingue las redes de Aptos (para prevenir ataques entre redes).

→ Ver interacciones de componentes del nodo de Aptos

  1. El cliente envía la transacción T5 al servicio REST.
  2. El servicio REST reenvía T5 al mempool del validador V1 (el validador líder).
  3. El mempool del validador V1 acepta T5.

Un validador acepta una transacción solo si pasa la validación inicial. Durante la validación, el validador ejecuta verificaciones básicas, como:

  • Verificar la validez de la firma de la transacción.
  • Verificar que el remitente de la transacción (Alice) tenga fondos suficientes para pagar la tarifa máxima de transacción.
  • Verificar que el número de secuencia de la transacción coincida con el número de secuencia de la cuenta del remitente.

La mayoría de los errores de validación son reconocidos inmediatamente y devueltos al cliente. Sin embargo, si el mempool está lleno, la transacción puede ser descartada silenciosamente.

[Continúa con las siguientes etapas del ciclo de vida de la transacción…]

Los nodos de Aptos están compuestos de componentes lógicos que trabajan juntos para procesar transacciones:

El mempool almacena transacciones que han sido enviadas pero aún no han sido incluidas en un bloque.

El motor de consenso es responsable de:

  • Ordenar bloques de transacciones.
  • Coordinar el acuerdo entre validadores.
  • Asegurar la finalidad de las transacciones.

El motor de ejecución ejecuta transacciones usando la Máquina Virtual Move.

La Máquina Virtual ejecuta el bytecode Move y aplica los efectos de las transacciones al estado de la blockchain.

El componente de almacenamiento persiste:

  • Los bloques confirmados
  • El estado de la blockchain
  • Los índices para consultas eficientes

Esta es una versión condensada del análisis profundo de la blockchain. Para la documentación técnica completa, consulta la versión en inglés que incluye detalles exhaustivos sobre cada componente y sus interacciones.