Transações versionadas

Resumo

As transações V0 adicionam tabelas de pesquisa de endereços (ALTs), permitindo referências a contas através de índices de 1 byte em vez de chaves de 32 bytes. Isto poupa 31 bytes por conta resolvida por ALT.

A Solana suporta dois formatos de transação: legado e versionado (v0).

O validator determina o formato ao inspecionar o primeiro byte da mensagem:

  • Se o primeiro byte tiver o prefixo de versão bit definido, é uma mensagem versionada. Atualmente apenas a versão 0 é suportada. Os próximos 3 bytes são o MessageHeader.
  • Caso contrário, é uma mensagem legada. O primeiro byte é num_required_signatures, e os próximos 2 bytes completam o cabeçalho.

Quando usar transações V0

Use V0 quando a sua transação referenciar muitas contas e se aproximar do limite de pacote de 1.232 bytes. Se a sua transação couber dentro do limite de tamanho com todas as contas inline, as transações legadas são mais simples e têm suporte de ferramentas mais amplo. V0 é necessário para usar tabelas de pesquisa de endereços.

Formato de mensagem V0

Uma mensagem v0 tem os mesmos campos que uma mensagem legada, mais um array adicional address_table_lookups anexado após as instruções:

CampoTamanhoDescrição
0x801 byteByte de prefixo de versão
header3 bytesMessageHeader (igual ao legado)
static_account_keyscompact-u16 + N x 32 bytesChaves que aparecem literalmente na transação
recent_blockhash32 bytesBlockhash
instructionscompact-u16 + variávelMesmo formato que o legado
address_table_lookupscompact-u16 + variávelReferências ALT (ver abaixo)

Cada entrada da tabela de pesquisa de endereços contém:

CampoTamanhoDescrição
account_key32 bytesA chave pública da conta ALT
writable_indexescompact-u16 + N x 1 byteÍndices na ALT para contas graváveis
readonly_indexescompact-u16 + N x 1 byteÍndices na ALT para contas somente leitura

Resolução da tabela de pesquisa de endereços

Uma ALT é uma conta on-chain que armazena até 256 chaves públicas. Ao referenciar uma ALT, uma transação pode incluir contas adicionais usando índices de 1 byte em vez de chaves públicas de 32 bytes, reduzindo significativamente a sobrecarga por conta.

Em tempo de execução, antes do início da execução, o validator resolve todas as referências ALT em chaves públicas completas. Os endereços resolvidos são anexados às chaves de conta estáticas para formar a lista completa de chaves de conta. As contas resolvidas por ALT seguem a mesma ordenação das contas estáticas: pesquisas graváveis vêm antes das pesquisas somente leitura.

As tabelas de pesquisa de endereços afetam apenas como as contas são referenciadas na transação transmitida. Em tempo de execução, o runtime resolve todos os índices para endereços de conta completos. As contas resolvidas por ALT podem ser apenas graváveis ou somente leitura (não signatárias); elas não podem ser signatárias.

Is this page helpful?

Índice

Editar Página

Gerenciado por

© 2026 Fundação Solana.
Todos os direitos reservados.
Conecte-se
  • Blog