Added initializing bitcoin_confirmations when node starts; made correct reindex

This commit is contained in:
Alexander Suslikov 2019-02-12 12:15:49 +03:00 committed by Anzhy Cherrnyavski
parent b33c5bf86f
commit a229d0acc4
4 changed files with 21 additions and 3 deletions

View file

@ -108,18 +108,21 @@ void database::reindex(fc::path data_dir, const genesis_state_type& initial_allo
skip_transaction_dupe_check |
skip_tapos_check |
skip_witness_schedule_check |
skip_authority_check);
skip_authority_check |
skip_btc_tx_sending);
else
apply_block(*block, skip_witness_signature |
skip_transaction_signatures |
skip_transaction_dupe_check |
skip_tapos_check |
skip_witness_schedule_check |
skip_authority_check);
skip_authority_check |
skip_btc_tx_sending);
}
if (!_slow_replays)
_undo_db.enable();
auto end = fc::time_point::now();
restore_bitcoin_transaction_status();
ilog( "Done reindexing, elapsed time: ${t} sec", ("t",double((end-start).count())/1000000.0 ) );
} FC_CAPTURE_AND_RETHROW( (data_dir) ) }

View file

@ -378,4 +378,17 @@ fc::optional<operation> database::create_bitcoin_revert_proposals( const witness
return fc::optional<operation>();
}
void database::restore_bitcoin_transaction_status()
{
const auto& btc_tx_idx = get_index_type<bitcoin_transaction_index>().indices().get<by_id>();
for( const auto& bto : btc_tx_idx ) {
std::set<fc::sha256> valid_vins;
for( const auto& v : bto.transaction.vin ) {
valid_vins.insert( v.prevout.hash );
}
bitcoin_confirmations.insert( bitcoin_transaction_confirmations( bto.transaction.get_txid(), valid_vins ) );
}
}
} }

View file

@ -565,6 +565,8 @@ namespace graphene { namespace chain {
private:
void restore_bitcoin_transaction_status(); // db_sidechain
vector< processed_transaction > _pending_tx;
fork_database _fork_db;

View file

@ -86,7 +86,7 @@ namespace graphene { namespace chain {
} } // graphene::chain
FC_REFLECT( graphene::chain::bitcoin_transaction_send_operation::fee_parameters_type, (fee)(price_per_kbyte) )
FC_REFLECT( graphene::chain::bitcoin_transaction_send_operation, (fee)(payer)(vins)(vouts)(transaction)(fee_for_size) )
FC_REFLECT( graphene::chain::bitcoin_transaction_send_operation, (fee)(payer)(pw_vin)(vins)(vouts)(transaction)(fee_for_size) )
FC_REFLECT( graphene::chain::bitcoin_transaction_sign_operation::fee_parameters_type, (fee)(price_per_kbyte) )
FC_REFLECT( graphene::chain::bitcoin_transaction_sign_operation, (fee)(payer)(proposal_id)(signatures) )