void handle_block_index( const connection_ptr& con, chan_data& cdat, const block_index_message& msg ) { ilog( "${msg}", ("msg",msg) ); cdat.block_mgr.received_response( msg.index.header.id() ); _fork_db.cache_header( msg.index.header ); _new_block_info = true; if( msg.index.name_trxs.size() == 0 ) { submit_block( msg.index.header ); } else { _block_downloads.push_back( block_index_download_manager() ); block_index_download_manager& dlmgr = _block_downloads.back(); dlmgr.incomplete = name_block(msg.index.header); dlmgr.index = msg.index; dlmgr.incomplete.name_trxs.resize( msg.index.name_trxs.size() ); for( uint32_t i = 0; i < msg.index.name_trxs.size(); ++i ) { auto opt_trx = _trx_broadcast_mgr.get_value( msg.index.name_trxs[i] ); if( opt_trx ) { dlmgr.incomplete.name_trxs[i] = *opt_trx; } else { dlmgr.unknown[msg.index.name_trxs[i]] = i; _trx_broadcast_mgr.received_inventory_notice( msg.index.name_trxs[i] ); cdat.trxs_mgr.update_known( msg.index.name_trxs[i] ); } } if( dlmgr.unknown.size() == 0 ) { submit_block( dlmgr.incomplete ); _block_downloads.pop_back(); } } }
void name_miner::set_name_header( const name_header& name_trx_to_mine ) { //ilog( "set header: ${h}", ("h",name_trx_to_mine) ); my->_cur_block = name_block(name_trx_to_mine); // my->start_new_block(); }