Resumen de Nodos Validator
Un nodo Aptos es una entidad del ecosistema Aptos que rastrea el estado de la blockchain de Aptos. Los clientes interactúan con la blockchain vía nodos Aptos. Hay dos tipos de nodos:
- Nodos validator
- Fullnodes
Cada nodo Aptos comprende varios componentes lógicos:
- Servicio API REST
- Mempool
- Consenso (deshabilitado en fullnodes)
- Ejecución
- Máquina Virtual
- Almacenamiento
- Sincronizador de estado
El software Aptos-core puede configurarse para ejecutarse como un nodo validator o como un fullnode.
Resumen
Sección titulada «Resumen»Cuando una transacción se envía a la blockchain de Aptos, los nodos validator ejecutan un protocolo de consenso distribuido, ejecutan la transacción, y almacenan la transacción y los resultados de ejecución en la blockchain. Los nodos validator deciden qué transacciones se agregarán a la blockchain y en qué orden.
La blockchain de Aptos usa un protocolo de consenso de Tolerancia a Fallas Bizantinas (BFT) para que los nodos validator acuerden el ledger de transacciones finalizadas y sus resultados de ejecución. Los nodos validator procesan estas transacciones y las incluyen en su copia local de la base de datos de blockchain. Esto significa que los nodos validator actualizados siempre mantienen una copia del estado actual de la blockchain, localmente.
Los nodos validator se comunican directamente con otros nodos validator sobre una red privada. Los Fullnodes son un recurso externo de validación y/o diseminación para el historial de transacciones finalizadas. Reciben transacciones de pares y pueden re-ejecutarlas localmente (de la misma manera que un validator ejecuta transacciones). Los fullnodes almacenan los resultados de transacciones re-ejecutadas en almacenamiento local. Al hacerlo, pueden desafiar cualquier juego sucio por validators y proporcionar evidencia si hay algún intento de re-escribir o modificar el historial de blockchain. Esto ayuda a mitigar contra corrupción y/o colusión de validators.
Componentes del nodo validator
Sección titulada «Componentes del nodo validator»Mempool
Sección titulada «Mempool»Mempool es un componente dentro de cada nodo que mantiene un buffer en memoria de transacciones que han sido enviadas a la blockchain, pero aún no han sido acordadas o ejecutadas. Este buffer se replica entre nodos validator y fullnodes.
El servicio JSON-RPC de un fullnode envía transacciones al mempool de un nodo validator. Mempool realiza varias verificaciones en las transacciones para asegurar validez de transacción y proteger contra ataques DOS. Cuando una nueva transacción pasa la verificación inicial y se agrega al mempool, luego se distribuye a los mempools de otros nodos validator en la red.
Cuando un nodo validator temporalmente se convierte en líder en el protocolo de consenso, el consenso extrae las transacciones del mempool y propone un nuevo bloque de transacciones. Este bloque se transmite a otros validators y contiene un ordenamiento total sobre todas las transacciones en el bloque. Cada validator luego ejecuta el bloque y envía votos sobre si aceptar la nueva propuesta de bloque.
Consenso
Sección titulada «Consenso»Consenso es el componente que es responsable de ordenar bloques de transacciones y acordar los resultados de ejecución participando en el protocolo de consenso con otros nodos validator en la red.
Ejecución
Sección titulada «Ejecución»Ejecución es el componente que coordina la ejecución de un bloque de transacciones y mantiene un estado transitorio. Consenso vota sobre este estado transitorio. Ejecución mantiene una representación en memoria de los resultados de ejecución hasta que consenso confirma el bloque a la base de datos distribuida. Ejecución usa la máquina virtual para ejecutar transacciones. Ejecución actúa como la capa de pegamento entre las entradas del sistema (representadas por transacciones), almacenamiento (proporcionando una capa de persistencia), y la máquina virtual (para ejecución).
Máquina virtual (VM)
Sección titulada «Máquina virtual (VM)»La máquina virtual (VM) se usa para ejecutar el programa Move dentro de cada transacción y determinar resultados de ejecución. El mempool de un nodo usa la VM para realizar verificaciones en transacciones, mientras que ejecución usa la VM para ejecutar transacciones.
Almacenamiento
Sección titulada «Almacenamiento»El componente de almacenamiento se usa para persistir bloques acordados de transacciones y sus resultados de ejecución a la base de datos local.
Sincronizador de estado
Sección titulada «Sincronizador de estado»Los nodos usan su componente sincronizador de estado para “ponerse al día” con el último estado de la blockchain y mantenerse actualizados.