void session::get_blocks(const std::error_code& ec, const get_blocks_type& packet, channel_ptr node) { if (ec) { log_error(LOG_SESSION) << "get_blocks: " << ec.message(); return; } // send 500 invs from last fork point // have memory of last inv, ready to trigger send next 500 once // getdata done for it. node->subscribe_get_blocks( std::bind(&session::get_blocks, this, _1, _2, node)); }
void session::new_channel(const std::error_code& ec, channel_ptr node) { if (ec) { log_warning(LOG_SESSION) << "New channel: " << ec.message(); return; } BITCOIN_ASSERT(node); node->subscribe_inventory( std::bind(&session::inventory, this, _1, _2, node)); node->subscribe_get_data( std::bind(&session::get_data, this, _1, _2, node)); node->subscribe_get_blocks( std::bind(&session::get_blocks, this, _1, _2, node)); // tx // block protocol_.subscribe_channel( std::bind(&session::new_channel, this, _1, _2)); poll_.monitor(node); }