code: func (ef *FeeEstimator) Rollback(hash *chainhash.Hash) error {
  	ef.mtx.Lock()
  	defer ef.mtx.Unlock()
  
  	// Find this block in the stack of recent registered blocks.
  	var n int
  	for n = 1; n <= len(ef.dropped); n++ {
  		if ef.dropped[len(ef.dropped)-n].hash.IsEqual(hash) {
  			break
  		}
  	}
  
  	if n > len(ef.dropped) {
  		return errors.New("no such block was recently registered")
  	}
  
  	for i := 0; i < n; i++ {
  		ef.rollback()
  	}
  
  	return nil
  }
docs: // Rollback unregisters a recently registered block from the FeeEstimator.
  // This can be used to reverse the effect of an orphaned block on the fee
  // estimator. The maximum number of rollbacks allowed is given by
  // maxRollbacks.
  //
  // Note: not everything can be rolled back because some transactions are
  // deleted if they have been observed too long ago. That means the result
  // of Rollback won't always be exactly the same as if the last block had not
  // happened, but it should be close enough.