View in context in the libbitcoin Slack #general mirror.
version message was getting handled, but the verack message failed to route. Turns out I had naively use the method names here, as opposed to the message names. This defines that named message gets routed to what method given what parameters. So this is the corrected version:
static constexpr std::tuple methods
{
method<"addr", messages::peer::address::cptr>{},
method<"alert", messages::peer::alert::cptr>{},
method<"block", messages::peer::block::cptr>{},
method<"filteradd", messages::peer::bloom_filter_add::cptr>{},
method<"filterclear", messages::peer::bloom_filter_clear::cptr>{},
method<"filterload", messages::peer::bloom_filter_load::cptr>{},
method<"cfilter", messages::peer::client_filter::cptr>{},
method<"cfcheckpt", messages::peer::client_filter_checkpoint::cptr>{},
method<"cfheaders", messages::peer::client_filter_headers::cptr>{},
method<"cmpctblock", messages::peer::compact_block::cptr>{},
method<"blocktxn", messages::peer::compact_transactions::cptr>{},
method<"feefilter", messages::peer::fee_filter::cptr>{},
method<"getaddr", messages::peer::get_address::cptr>{},
method<"getblocks", messages::peer::get_blocks::cptr>{},
method<"getcfcheckpt", messages::peer::get_client_filter_checkpoint::cptr>{},
method<"getcfheaders", messages::peer::get_client_filter_headers::cptr>{},
method<"getcfilters", messages::peer::get_client_filters::cptr>{},
method<"getblocktxn", messages::peer::get_compact_transactions::cptr>{},
method<"getdata", messages::peer::get_data::cptr>{},
method<"getheaders", messages::peer::get_headers::cptr>{},
method<"headers", messages::peer::headers::cptr>{},
method<"inv", messages::peer::inventory::cptr>{},
method<"mempool", messages::peer::memory_pool::cptr>{},
method<"merkleblock", messages::peer::merkle_block::cptr>{},
method<"notfound", messages::peer::not_found::cptr>{},
method<"ping", messages::peer::ping::cptr>{},
method<"pong", messages::peer::pong::cptr>{},
method<"reject", messages::peer::reject::cptr>{},
method<"sendaddrv2", messages::peer::send_address_v2::cptr>{},
method<"sendcmpct", messages::peer::send_compact::cptr>{},
method<"sendheaders", messages::peer::send_headers::cptr>{},
method<"tx", messages::peer::transaction::cptr>{},
method<"version", messages::peer::version::cptr>{},
method<"verack", messages::peer::version_acknowledge::cptr>{},
method<"wtxidrelay", messages::peer::witness_tx_id_relay::cptr>{}
};"verack" message routes to the version_acknowledge message subscribers. Should have a read on performance impact soon.