I am attempting to know the format of key/worth pairs in LevelDB for Bitcoin information storage.
Given the next uncooked key and worth:
Uncooked Key: 6200005BD1B034B80F7C08EA312BBCDBCFDB647E366B85EC6B206F0D0000000000
Uncooked Worth: 8EA010848A2D1D04008FDAEC0A81FAC8420100000093FC79C5606493FC6051E334231BC7B6E765BAE097A5A6A82D960500000000006ED298FA7CCD23916490EDB1D8DADF981FFB6A6CF99B518677A30CBAE04767A1B118A94CA3B2311B110468F0
https://bitcoin.stackexchange.com/a/67569/157164
https://bitcoin.stackexchange.com/a/29418/157164
From my understanding primarily based on these two feedback, I anticipated the worth to include, on this order:
Block header
Block peak
Transaction rely
Validation standing
Knowledge file
Knowledge offset
Undo file
Undo offset
Nevertheless, it seems the block header is on the finish of the worth as an alternative of the start. After stripping the header bytes, I am left with: 8EA010848A2D1D04008FDAEC0A81FAC842
I anticipated to extract block peak, transaction rely, validation standing, and so on., from this, however I am unable to appear to take action, whatever the endian format used.
May somebody make clear the proper construction of this worth? Are these parts encoded as Varint or CompactSize? Any perception can be enormously appreciated!