You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a node is restarted (during non finality periods?) while following the chain correctly, it happens that our head can go back to a very old past slot (like 4 days prior).
We should doublecheck how we resume our forkcoice and head.
This could be that we load back all the nodes in proto array, than when we call findHead for the first time, all the heads are in tie so the tie breaker kicks in and give us essentially a random head which then becomes our canonical. We should check if we always get an actual chain head or we get there even with a random block which isn't a head.
Doing the check.
I remote-debug on a node with the problem and at startup it actually has 815 heads
the choosen head as a canonical it resolve the canonical chain by tie-breaking them because all nodes are initialized with 0 weight.
An option would save in a DB variable our canonical head root once in a while (like on epoch transition) and upon startup add just one vote to that node in the proto array just to make it the head again.
When a node is restarted (during non finality periods?) while following the chain correctly, it happens that our head can go back to a very old past slot (like 4 days prior).
We should doublecheck how we resume our forkcoice and head.
for instance a restarted holesky node prints:
but the dumped fork choice clearly shows that most recent nodes:
The text was updated successfully, but these errors were encountered: