I'm parsing in blocks from my local blk*.dat files, using this excellent website as a guide.
All goes well until file blk00976.dat
, block 000000000000000000daf7a26d903543377d5cdddb962077e58fd11212479eea
In my copy of the file, when the parser reaches byte 27871335
, it is about to iterate through a set of 64 transaction outputs.
When it reaches the 48th of these, it gets the value c4f1c2b3b69c42c5
and then reads a VarInt of fe80ffffff
. This is the number of bytes to read for the next scriptPubKey
.
The integer value of the VarInt is 2164260863
bytes (larger than the blk.dat
file of 133768162
bytes).
Note the transaction begins with ffffffff58
. Implying a version of ffffffff
.
A hexdump of the block in question can be found here: https://blockchain.info/rawblock/000000000000000000daf7a26d903543377d5cdddb962077e58fd11212479eea?format=hex (Find "fe80ffffff" to see where I am looking)
A. Is this transaction and/or the block legitimate?
B. If not, why is it in my blk.dat archive?
C. What does a transaction version of ffffffff
imply?
D. Is the scriptPubKey size VarInt fe80ffffff
correct?
E. What is the story behind this block?
fe80ffffff
VarInt.