/* void block_gen_loop() { try { while( true ) { fc::usleep( fc::seconds(5) ); auto order_trxs = chain.match_orders(); pending.insert( pending.end(), order_trxs.begin(), order_trxs.end() ); if( pending.size() ) { auto new_block = chain.generate_next_block( pending ); pending.clear(); if( new_block.trxs.size() ) { chain.push_block( new_block ); fc::async( [=](){ broadcast_block(new_block); } ); } } } } catch ( const fc::exception& e ) { elog("${e}", ("e", e.to_detail_string() ) ); exit(-1); } } */ void broadcast_block( const bts::blockchain::trx_block& blk ) { // copy list to prevent yielding in middle... auto cons = connections; block_message blk_msg; blk_msg.block_data = blk; for( auto itr = cons.begin(); itr != cons.end(); ++itr ) { try { if( itr->second->get_last_block_id() == blk.prev ) { itr->second->send( message( blk_msg ) ); itr->second->set_last_block_id( blk.id() ); } } catch ( const fc::exception& w ) { wlog( "${w}", ( "w",w.to_detail_string() ) ); } } }