async fn process_network_blocks(
    blockchain: Blockchain,
    tip_update_mbox: MessageBox<Arc<Ref>>,
    network_msg_box: MessageBox<NetworkMsg>,
    watch_msg_box: MessageBox<WatchMsg>,
    get_next_block_scheduler: FireForgetScheduler<HeaderHash, NodeId, ()>,
    handle: RequestStreamHandle<Block, ()>,
    stats_counter: Metrics
) -> Result<(), Error>