Currently, if a validator times out and increments self.view it will then ignore any block proposals received which are before self.view. It is correct that we shouldn't try to vote on proposals which are before our self.view, but we should still store them in case the rest of the network chooses that block as the canonical chain. We can maintain a condition of ignoring proposals if they are less than self.finalised_view, since these are blocks which are definitely not canonical.
A natural way of doing this is to keep them in block_store's (upcoming!) block response cache, where all the other blocks which we don't recognise (yet) as being canonical sit.
Currently, if a validator times out and increments
self.view
it will then ignore any block proposals received which are beforeself.view
. It is correct that we shouldn't try to vote on proposals which are before ourself.view
, but we should still store them in case the rest of the network chooses that block as the canonical chain. We can maintain a condition of ignoring proposals if they are less thanself.finalised_view
, since these are blocks which are definitely not canonical.