code: func matchBlockFilter(ro *rescanOptions, filter *gcs.Filter,
  	blockHash *chainhash.Hash) (bool, error) {
  
  	// Now that we have the filter as well as the block hash of the block
  	// used to construct the filter, we'll check to see if the block
  	// matches any items in our watch list.
  	key := builder.DeriveKey(blockHash)
  	matched, err := filter.MatchAny(key, ro.watchList)
  	if err != nil {
  		return false, err
  	}
  
  	return matched, nil
  }
docs: // matchBlockFilter returns whether the block filter matches the watched items.
  // If this returns false, it means the block is certainly not interesting to
  // us. This method differs from blockFilterMatches in that it expects the
  // filter to already be obtained, rather than fetching the filter from the
  // network.