4

In cryptonote_protocol_defs.h block_complete_entry is declare that is used within the monero code right?

The block_complete_entry has a blobdata txs. How does the txs blobdata looks like and what structure does it have?

Bonus question why are tx_output_indices needed within a COMMAND_RPC_GET_BLOCKS_FAST Response. Are the indices not part of the txs blobdata from block_complete_entry ?

onefox
  • 985
  • 6
  • 18

1 Answers1

2

The txs field of the block_comptete_entry structure is a list of serialized transactions. When you get it from the getblocks.bin or getblocks_by_height.bin RPCs, it will appear as a serialized array of serialized transactions (i.e. an array of data strings).

A serialized transaction is made of:

  • version (varint)
  • unlock time (varint)
  • inputs (vector of transaction input targets)
  • outputs (vector of transaction outputs)
  • extra (vector of bytes)
  • signature (ring signature if transaction version is 1, and ringct signature if it is 2)

The outputs' indices are not part of the transactions. The daemon builds a table of output indices in chronological order in its database when it processes blocks (c.f. Where is the global array of outputs of type txout_to_key?).

glv
  • 3,334
  • 10
  • 15