python-bitcoin-blockchain-parser icon indicating copy to clipboard operation
python-bitcoin-blockchain-parser copied to clipboard

Testnet. Not getting info (-1) for some blocks.

Open educob opened this issue 7 years ago • 4 comments

Hi.

Thanks for this amazing software.

Unfortunately I couldn't go beyond block 1414414 cause after that block the program returns many -1: DBBlockIndex(000000001098e10889c0ffd39c5d39cc5a54f4f456adda5b52e017072f918a16, height=1414416, file_no=-1, file_pos=-1)

Why is that?

educob avatar Jan 01 '19 09:01 educob

Hi again.

I found the offending blocks:

blkIdx: DBBlockIndex(00000000eba3f43a8624750f39e4520a1678c0dbdf8707bfa4854a12fbf086c5, height=1414411, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(000000000001ad6b24169e3204ca7c35fcefa3d16c88e6f9594d091e4ef66715, height=1414412, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(000000005aa8f3d1b51de8b096b022d0eef054790e2d93134e9a8cb7137effb3, height=1414413, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(0000000065fb984985cd8b30ec9d92a2671baef82479e63252dcfc56e4d60c39, height=1414415, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(000000001098e10889c0ffd39c5d39cc5a54f4f456adda5b52e017072f918a16, height=1414416, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(000000000000002f4044dd9711a8af1bad85ac83cb589cce7a65660c19839657, height=1414419, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(0000000008c38ee746f3996cb2c53c812defe60c376a70c441d6e97e410af971, height=1414421, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(000000000000bb2d3af193fc36494e025ca7fa92e28e8c3d8df13b4ee5d862af, height=1414422, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(00000000414ea1192a71db07bf68535b29ebdea200d6396bb5f1d7f47a648a2a, height=1414423, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(00000000d9abd51b5483d6f0b3d954a72c5c618c05b58e8dc9993b841e8b8fa9, height=1414424, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(0000000070746b06bbec07a7cd35e0c6d47bfa4e2544a6a1d2aa6efc49d47679, height=1414427, file_no=-1, file_pos=-1)
blkIdx: DBBlockIndex(00000000cb7df9801f21ccb4192844281d7da224d2213514050a8ad9a6d9ec7e, height=1414432, file_no=-1, file_pos=-1)

These blocks are included twice in the list that makes it to:

for blkIdx in blockIndexes[start:end]:
            if blkIdx.file == -1 or blkIdx.data_pos == -1:
                break

One copy is ok, the other copy is the one with file_no=-1.

So I have changed break to continue. Why are those invalid DBBlockIndex not filtered out?

Thanks.

educob avatar Jan 01 '19 19:01 educob

More info.

These are all the repeated blocks: Only some of them were filtered. The ones in the previous message wre not filtered

DBBlockIndex(00000000eba3f43a8624750f39e4520a1678c0dbdf8707bfa4854a12fbf086c5, height=1414411, file_no=-1, file_pos=-1)
DBBlockIndex(00000000c56f3315d181723908e27559554d4ab6d6e861a744cc142455cd5ad5, height=1414411, file_no=153, file_pos=41484548)
DBBlockIndex(000000000001ad6b24169e3204ca7c35fcefa3d16c88e6f9594d091e4ef66715, height=1414412, file_no=-1, file_pos=-1)
DBBlockIndex(000000007964ec35c6c97a90c20b5e3ac80b8fe7f39256782a8892fdb8c9235c, height=1414412, file_no=153, file_pos=43501530)
DBBlockIndex(000000005aa8f3d1b51de8b096b022d0eef054790e2d93134e9a8cb7137effb3, height=1414413, file_no=-1, file_pos=-1)
DBBlockIndex(0000000037f0caa6454c7272ab0f8783de373fad57046e630e6bee688c5638e8, height=1414413, file_no=153, file_pos=41589204)
DBBlockIndex(00000000559a16cd2c37853f04500167ec1c20a5d9eff260656aea1b8e0d2465, height=1414414, file_no=153, file_pos=41703153)
DBBlockIndex(0000000000000029e10cbb180d4a09709441ef2232cbc94de305e9cf45f0aedf, height=1414414, file_no=-1, file_pos=-1)
DBBlockIndex(0000000065fb984985cd8b30ec9d92a2671baef82479e63252dcfc56e4d60c39, height=1414415, file_no=-1, file_pos=-1)
DBBlockIndex(0000000076db83d2e0c097e14f244a045eca7bdb961e5d8e8042fc573f7b35a0, height=1414415, file_no=153, file_pos=41730096)
DBBlockIndex(000000001098e10889c0ffd39c5d39cc5a54f4f456adda5b52e017072f918a16, height=1414416, file_no=-1, file_pos=-1)
DBBlockIndex(000000008cf4293b23b40e70a2a9f9c00a0e7d5f66b1126539095ae4f2862c8a, height=1414416, file_no=153, file_pos=41754066)
DBBlockIndex(00000000397573f72c463c2aee62ca0ab8efd58b08b52b332c8f21d58280db27, height=1414417, file_no=153, file_pos=43543445)
DBBlockIndex(0000000000000005385f2ffa9f4687c04accd6d2a7d033c4b6e1d9e4c6541f55, height=1414417, file_no=-1, file_pos=-1)
DBBlockIndex(0000000034a1d12ba9cb17bc3206d02d525a857094bfac86eabbc0ce9f12fa64, height=1414418, file_no=153, file_pos=41773561)
DBBlockIndex(000000003beddbe1e85aba84aa76cd4ef946ab18c084f5d3074ac5672c5a90bb, height=1414418, file_no=-1, file_pos=-1)
DBBlockIndex(000000000000002f4044dd9711a8af1bad85ac83cb589cce7a65660c19839657, height=1414419, file_no=-1, file_pos=-1)
DBBlockIndex(00000000c7ecab1af2efe92f5fd7f3feeffb2a09f76335a75bb13270885cf3f2, height=1414419, file_no=153, file_pos=41936718)
DBBlockIndex(00000000675971aa84ca5e39ba0c4dfaeed4c487ade319872dbbe111e5bf111a, height=1414420, file_no=153, file_pos=41957446)
DBBlockIndex(000000004dbc613505be419285087a580eb44f1f1aec862a4f794af7f9ca3ee9, height=1414420, file_no=-1, file_pos=-1)
DBBlockIndex(0000000008c38ee746f3996cb2c53c812defe60c376a70c441d6e97e410af971, height=1414421, file_no=-1, file_pos=-1)
DBBlockIndex(000000006461823c4ff51b87fb1f6f86f6a3bb95664d1906a46e8180fa2fc4c3, height=1414421, file_no=153, file_pos=46159169)
DBBlockIndex(000000000000bb2d3af193fc36494e025ca7fa92e28e8c3d8df13b4ee5d862af, height=1414422, file_no=-1, file_pos=-1)
DBBlockIndex(0000000076f67096eb34d1c37827a4f7979f6df13632ba909b31f335d073c1bf, height=1414422, file_no=153, file_pos=42228593)
DBBlockIndex(00000000414ea1192a71db07bf68535b29ebdea200d6396bb5f1d7f47a648a2a, height=1414423, file_no=-1, file_pos=-1)
DBBlockIndex(00000000755e8ae7bece459750c453a8361d4703f70cf84a34b734a1f7d2c1ba, height=1414423, file_no=153, file_pos=50411992)
DBBlockIndex(00000000d9abd51b5483d6f0b3d954a72c5c618c05b58e8dc9993b841e8b8fa9, height=1414424, file_no=-1, file_pos=-1)
DBBlockIndex(0000000019198c8b264decad418fd5167e03cfda916f41629db3816f98e79fb5, height=1414424, file_no=153, file_pos=42282459)
DBBlockIndex(000000003e7b13494e73ea4e72517110956cc2f0a06b52fd7ebbb084996e4a21, height=1414425, file_no=153, file_pos=42456502)
DBBlockIndex(0000000028d4e9646a4653ca0cbf64c5e8e75eee4ce2fe9ac4feb2573cd4d138, height=1414425, file_no=-1, file_pos=-1)
DBBlockIndex(0000000095e08c5ea2d54157e21ec01cbcb0d3b465199d6941d92d9114ea2710, height=1414426, file_no=153, file_pos=42519280)
DBBlockIndex(000000000000d6a943d8b5b052c1a59c7f92fb01708f5d7617c1be260182bc4b, height=1414426, file_no=-1, file_pos=-1)
DBBlockIndex(0000000070746b06bbec07a7cd35e0c6d47bfa4e2544a6a1d2aa6efc49d47679, height=1414427, file_no=-1, file_pos=-1)
DBBlockIndex(000000004dab238924d4c0c42699c622b605f0e6b7f971529775f0d712fb34b6, height=1414427, file_no=153, file_pos=46502647)
DBBlockIndex(00000000e2c0ca487cc16972968d5bd66b0ccc968662bd2065077dc87fc23f53, height=1414428, file_no=153, file_pos=42622926)
DBBlockIndex(0000000000010f268e326493412a52f598dd20d270c8e876b82d4b0490b70ec1, height=1414428, file_no=-1, file_pos=-1)
DBBlockIndex(00000000ab3d17dd70837fdaa07ca7a03c8ec7dc4bf6acfc4d544c63aefa8aa1, height=1414429, file_no=153, file_pos=43580124)
DBBlockIndex(00000000000000371faa7f8156f9f98fc0cd27962012a2cfc846142a153652b2, height=1414429, file_no=-1, file_pos=-1)
DBBlockIndex(00000000e9ca87d7af01d7408a7d470255d38afb59ba62a5ac248af2b5aed70e, height=1414430, file_no=153, file_pos=42645500)
DBBlockIndex(000000000000395bc04f5c40dca0fbf16e2c49a7fc25f982b7c531756413612f, height=1414430, file_no=-1, file_pos=-1)
DBBlockIndex(000000000f7b145363186c2d623026bd3f8f551d82f83559246a1397300c984c, height=1414431, file_no=153, file_pos=46603011)
DBBlockIndex(000000004cae813a1a9b282726729e01b43cbaba4feb73bb932b21cb1cef3586, height=1414431, file_no=-1, file_pos=-1)
DBBlockIndex(00000000cb7df9801f21ccb4192844281d7da224d2213514050a8ad9a6d9ec7e, height=1414432, file_no=-1, file_pos=-1)
DBBlockIndex(000000000d7e08353bd8dc625911c8d8cc812b1edfcc26307c1a7298e4609b8d, height=1414432, file_no=153, file_pos=43601547)
DBBlockIndex(00000000210004840364b52bc5e455d888f164e4264a4fec06a514b67e9d5722, height=1414433, file_no=-1, file_pos=-1)
DBBlockIndex(0000000000006b7eb1c17be34085f90c76f507ba0dbfcc92fca4dd49517b43ee, height=1414433, file_no=153, file_pos=43979561)
DBBlockIndex(000000000010408eceeb1afbea4adcf41587f72d1ccf8b5900d058196dc3d283, height=1447501, file_no=155, file_pos=5115731)
DBBlockIndex(000000000007701f5b24db254e97467dd368c30e5993fbe77928ce9051102ec0, height=1447501, file_no=155, file_pos=5045526)

educob avatar Jan 01 '19 19:01 educob

I found what's wrong:

When the sequence is wrong-right blocks:

DBBlockIndex(00000000eba3f43a8624750f39e4520a1678c0dbdf8707bfa4854a12fbf086c5, height=1414411, file_no=-1, file_pos=-1)
DBBlockIndex(00000000c56f3315d181723908e27559554d4ab6d6e861a744cc142455cd5ad5, height=1414411, file_no=153, file_pos=41484548)

_index_confirmed fails.

When the sequence is right-wrong blocks:

DBBlockIndex(00000000559a16cd2c37853f04500167ec1c20a5d9eff260656aea1b8e0d2465, height=1414414, file_no=153, file_pos=41703153)
DBBlockIndex(0000000000000029e10cbb180d4a09709441ef2232cbc94de305e9cf45f0aedf, height=1414414, file_no=-1, file_pos=-1)

_index_confirmed returns the right answer.

educob avatar Jan 01 '19 20:01 educob

It works with this modification to blockchain.py

        first_block = None
        first_index = chain_indexes[0]
        # if this block doesn't have data don't confirm it
        if first_index.file == -1 or first_index.data_pos == -1:
            return False

        # loop through all future blocks
        for i, index in enumerate(chain_indexes):
            # if this block doesn't have data keep going
            if index.file == -1 or index.data_pos == -1:
                continue

educob avatar Jan 01 '19 21:01 educob