Note on resolution
Comment from PR https://github.com/rchain/rchain/pull/2196
The issue for the invalid parents right now is that the last finalized block for each validator is different. And so it is possible that even though you know that the main chain will eventually settle on a certain block B, another validator might add a block that uses something before B as a parent.
So for the purposes of calculating GHOST, we don't need a last finalized block as much as a greatest common ancestor block of all validators. The GCA block could be either before or after the last finalized block on the main chain. The GCA block may surprisingly also not be in the main chain eventually.
TODO: Implement a GCA that doesn't require the genesis block (see https://rchain.atlassian.net/browse/RCHAIN-3002)
TODO: Remove usage of BlockStore by just using BlockDagRepresentation (see https://rchain.atlassian.net/browse/RCHAIN-3003)
rnode|17:15:36.973 [tl-dispatcher-42] WARN coop.rchain.casper.Validate$ - Ignoring block 2d21383e30... because block parents did not match estimate based on justification.
rnode|17:15:36.978 [tl-dispatcher-42] WARN c.r.casper.MultiParentCasperImpl - Recording invalid block 2d21383e30... for InvalidParents.