What is the correct way to update my cached block when a node of a given type is saved or updated?
As @Clive commented you need a node list cache tag.

Put the slides and the cache tag when you invoke the template in the build array (not in a hook_theme(), this hook is only called when you install the module):

class SliderBlock extends BlockBase {
  public function build() {
    $build = [
     '#theme' =&gt; 'slider_block',
     '#slides' =&gt; getSlides(),
     '#cache' =&gt; ['tags' =&gt; ['node_list']],
    ];
    return $build;
  }
}


Put a TODO annotation in your code to change the list tag to a content type specific node_list:slides, once you have updated to Drupal 8.9.x. See this change record: Added an ENTITY_TYPE_list:BUNDLE cache tag.