When local DB is synced up to block 1000 but beacon chain sends us a request to set our head block to 20,000 with a last FinalizedBlock hash that is not yet in our local DB, the firehose plugin will output the previously found FinalizedBlock until we actually get to that block 20,000. When reprocessing a chain to produce firehose blocks, this is an issue, the FinalizedBlockNum (LIB, from LastIrreversibleBlock ...) must progress !
By NOT outputing any FinalizedBlock in the firehose output, we allow the Reader component of the firehose to take other business decision (ex: LIBnum = blockNum - 200)
When local DB is synced up to block 1000 but beacon chain sends us a request to set our head block to 20,000 with a last FinalizedBlock hash that is not yet in our local DB, the firehose plugin will output the previously found FinalizedBlock until we actually get to that block 20,000. When reprocessing a chain to produce firehose blocks, this is an issue, the FinalizedBlockNum (LIB, from LastIrreversibleBlock ...) must progress ! By NOT outputing any FinalizedBlock in the firehose output, we allow the Reader component of the firehose to take other business decision (ex: LIBnum = blockNum - 200)