transactionsChunk3 (60)

Planned Upgrade

The transactionsChunk3 message is the response to various transaction requests, including getTransactions2 and getRelevantBlockTransactions. It contains a batch of complete, serialized transaction objects.

If the total number of transactions to be sent is large, they will be split across multiple transactionsChunk3 messages to respect the network's maximum message size.

Core Data Types

Payload Structure

FieldData TypeMinMaxDescription
Entire Payloadbyte[]50MBThe total size of the message payload must not exceed the global maximum.
messageIDIxiVarIntAn identifier linking this chunk to a specific request. Often a block number with negative prefix (e.g. -1234).
totalTxCountIxiVarUInt0The total number of transactions in the logical set (e.g., in the block), not just this chunk.
transactionsTransaction[]05000*An array of full transaction entries.

* The maximum number of transactions per chunk is determined by the node configuration (CoreConfig.maximumTransactionsPerChunk), which defaults to 5000.

Transaction Entry Structure

Each entry in the transactions array is a complete, serialized Transaction object.

FieldData TypeDescription
transactionDataIxiBytesThe full binary representation of a single Transaction object. The internal structure is defined in the Transactions documentation.

Behavioral Notes

  • A node receiving this message should parse each Transaction entry, validate it, and process it. This may involve adding it to a block being constructed or adding it to a light client's wallet.
  • The messageID is used to associate this chunk with a specific request, especially important when multiple requests are in flight. For block-related requests, this is often the negative of the block number (e.g., -50123 for block 50123).