View in context in the libbitcoin Slack #general mirror.
protocol_block_out_106 , protocol_block_out_70012 (disables block inv announcement when sendheaders received), protocol_header_out_31800 and protocol_header_out_70012 (enables headers announcement when sendheaders received).
I also added automatic snapshotting when the node is "recent". This includes new is_recent() methods from protocol->session->full_node, a new chaser notification type chase::recent , which is posted by confirmation when a just-organized block is at the configured maximum height or the chain is current (based on is_current() , which is based on configured time from the top confirmed block timestamp (defaults to 60 minutes). Recency is logged at confirmation chaser startup and if it changed to true.
The chase::recent notification is therefore posted 0..1 times for the process. This is caught only by the snapshot chaser, which then takes a snapshot. The snapshot causes all channels to be dropped, the network paused, and restarted when complete. Attachment of protocols to channels tests is_recent() when attaching inbound channels, if delay_inbound is set in node.config , and only attaches block and header inbound protocols when chain is recent. So the recency snapshot serves to reset channels for inbound traffic, and unlike others is not optional/configurable.
I also added duration based events to log the time cost in milliseconds of the snapshot (and a store restart following a disk full resume). Snapshots are typically around a minute. Also added console logging for recency, initial positive state or transition. Finally, added base session_inbound connection acceptance disable and verbose logging, with override in node to disable until is_recent , also only if delay_inbound is configured.