Una transacción incluye una o más instrucciones, las firmas de las cuentas que autorizan los cambios y un blockhash reciente. La red procesa todas las instrucciones de una transacción juntas. Si alguna instrucción falla, toda la transacción falla y todos los cambios de estado se revierten.
Un diagrama simplificado que muestra dos transacciones
Estructura de transacción
Firmas, formato de mensaje (encabezado, direcciones de cuenta, blockhash, instrucciones compiladas), codificación binaria, presupuesto de tamaño y un ejemplo de transferencia de SOL.
Transacciones versionadas
Formato legacy vs V0, tablas de búsqueda de direcciones, resolución de ALT y comparación de versiones.
Pipeline de transacciones
Pipeline completo de procesamiento de 8 etapas (desde recepción hasta commit), lectura de detalles de transacción desde la red y referencia de errores de validación.
Nonces duraderos
Firma offline con nonces duraderos, ciclo de vida del nonce, detección, flujo de validación y comportamiento ante fallos.
Datos clave
- Ejecución atómica: Todas las instrucciones tienen éxito o todas se revierten. Las tarifas se cobran igualmente en caso de fallo.
- Límite de tamaño: Máximo de 1.232 bytes, derivado del MTU mínimo de IPv6 (1.280 bytes) menos 48 bytes para encabezados de red.
- Firmas: Cada firmante proporciona una firma Ed25519 de 64 bytes.
- Caducidad de blockhash: El blockhash reciente de una transacción es válido durante 150 slots.
Límites
| Límite | Valor | Fuente |
|---|---|---|
| Tamaño máximo de transacción | 1.232 bytes | PACKET_DATA_SIZE |
| Máximo de cuentas por transacción | 64 | Límite aplicado (128 cuando increase_tx_account_lock_limit está activado, actualmente inactivo) |
| Caducidad de blockhash | 150 slots | MAX_PROCESSING_AGE |
| Tamaño de firma | 64 bytes (Ed25519) | -- |
| Tarifa base por firma | 5.000 lamports | Tarifas |
| Máximo de instrucciones ejecutadas | 64 (nivel superior + CPIs) | MAX_INSTRUCTION_TRACE_LENGTH |
| Máximo de firmas por paquete | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?