:: Re: [Libbitcoin] obelisk chokes on …
Page principale
Supprimer ce message
Répondre à ce message
Auteur: Noel Maersk
Date:  
À: libbitcoin
Sujet: Re: [Libbitcoin] obelisk chokes on block #264000
On Tue, Nov 19, 2013 at 03:55:32PM +0200, Noel Maersk wrote:
> ...
>
> It probably gets called from validate_transaction::handle_previous_tx,
> here:
>
> // Should check for are inputs standard here...
> if (!connect_input(tx_, current_input_, previous_tx,
>     parent_height, last_block_height_, value_in_))
> {
>     handle_validate_(error::validate_inputs_failed, {current_input_});
>     return;
> }

>
> There are 5 `return false` statements in connect_input(), I'm not sure
> about how to go about finding which test returns false.


So, with three breakpoints set in gdb

break validate.cpp:207
break validate.cpp:727
break validate.cpp:766

this one is hit first

Breakpoint 3, libbitcoin::validate_block::validate_inputs (
    this=0x7fffef14aea0, tx=..., index_in_parent=78, 
    value_in=@0x7fffef14ade8: 332780, total_sigops=@0x7fffef14ade0: 376)
    at validate.cpp:766


followed by this, the caller

Breakpoint 2, libbitcoin::validate_block::connect_block
(this=0x7fffef14aea0)
    at validate.cpp:727


The first one is never triggered, so my initiall assertion as to the
origin of this issue is wrong.

error.log shows

WARNING [validate]: Unable to fetch input transaction
WARNING [validate]: Validate input
c942c66ce195d85ac4f8e32294cd683f13234d79666e5cd7fb178a92eb619058:53
failed

Adding more breakpoints, validate.cpp:796 triggers

Breakpoint 5, libbitcoin::validate_block::connect_input
(this=0x7fffee749ea0, 
    index_in_parent=78, current_tx=..., input_index=53, 
    value_in=@0x7fffee749de8: 332780, total_sigops=@0x7fffee749de0: 376)
    at validate.cpp:796


Which leads deeper down the rabbit hole.

Without being too verbose, I think my blockchain might be corrupt. I
could just try re-downloading the blockchain to see if it goes away.
I can't store the current database, since all of this is happening on a
VPS.