tenthirtyone / blocktools

Block Parser for Bitcoin
143 stars 73 forks source link

struct.error #15

Open Luigini opened 5 years ago

Luigini commented 5 years ago

Hi, I'm newbie in Python Language and I need some help, please:

Executing "python sight.py .../blocks/blk00976.dat", this error appears me in Block nº 33 into file blk00976.dat and program stops:

####################Block counter No. 33#################### Traceback (most recent call last): File "sight.py", line 42, in main() File "sight.py", line 37, in main parse(blockchain,blkNo) File "sight.py", line 14, in parse block = Block(blockchain) File "/home/donvito/Escritorio/blocktools/block.py", line 47, in init tx = Tx(blockchain) File "/home/donvito/Escritorio/blocktools/block.py", line 102, in init output = txOutput(blockchain) File "/home/donvito/Escritorio/blocktools/block.py", line 160, in init self.value = uint8(blockchain) File "/home/donvito/Escritorio/blocktools/blocktools.py", line 14, in uint8 return struct.unpack('Q', stream.read(8))[0] struct.error: unpack requires a string argument of length 8

Executing with blocks blk00977.dat and blk00978 , the error is: struct.error: unpack requires a string argument of length 4

Executing from blk00979 to blk00999 , the error is: OverflowError: Python int too large to convert to C long

And from blk01000.dat to final blkXXXXX.dat which I've downloaded it (blk01565.dat in this case), the errors are the same as mentioned above or simply: MemoryError

I'm stuck and I do not know how to continue. I wish you can help me fix the problem soon

Regards!

vincenzopalazzo commented 4 years ago

@Luigini The parser does not support the Segregated Witness, this is another issue correlated, I have added the support at this and this is my PR