Uma transação inclui uma ou mais instruções, as assinaturas das contas que autorizam as alterações e um blockhash recente. A rede processa todas as instruções numa transação em conjunto. Se alguma instrução falhar, toda a transação falha e todas as alterações de estado são revertidas.
Um diagrama simplificado mostrando duas transações
Estrutura de transação
Assinaturas, formato de mensagem (cabeçalho, endereços de conta, blockhash, instruções compiladas), codificação binária, limite de tamanho e um exemplo de transferência SOL.
Transações versionadas
Formato legacy vs V0, tabelas de pesquisa de endereços, resolução ALT e comparação de versões.
Pipeline de transação
Pipeline completo de processamento em 8 fases (receção até confirmação), leitura de detalhes de transação da rede e referência de erros de validação.
Nonces duráveis
Assinatura offline com nonces duráveis, ciclo de vida do nonce, deteção, fluxo de validação e comportamento em caso de falha.
Factos principais
- Execução atómica: todas as instruções têm sucesso ou todas são revertidas. As taxas continuam a ser cobradas em caso de falha.
- Limite de tamanho: máximo de 1.232 bytes, derivado do MTU mínimo IPv6 (1.280 bytes) menos 48 bytes para cabeçalhos de rede.
- Assinaturas: cada signatário fornece uma assinatura Ed25519 de 64 bytes.
- Expiração de blockhash: o blockhash recente de uma transação é válido por 150 slots.
Limites
| Limite | Valor | Fonte |
|---|---|---|
| Tamanho máximo de transação | 1.232 bytes | PACKET_DATA_SIZE |
| Máximo de contas por transação | 64 | Limite imposto (128 quando increase_tx_account_lock_limit estiver ativado, atualmente inativo) |
| Expiração de blockhash | 150 slots | MAX_PROCESSING_AGE |
| Tamanho de assinatura | 64 bytes (Ed25519) | -- |
| Taxa base por assinatura | 5.000 lamports | Taxas |
| Máximo de instruções executadas | 64 (nível superior + CPIs) | MAX_INSTRUCTION_TRACE_LENGTH |
| Máximo de assinaturas por pacote | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?