In this commit a change was made to use the presence of rankingData for an epoch to determine whether a node existed in that epoch. This is so that when nodes announce themselves, they don't suddenly appear in the epoch data for the past.
The problem is that there is a small amount of time between the data-node receiving a new epoch event, and it receiving the ranking-data events for that epoch where if you asks for a node list, it may be incomplete.
The rankingData probably isn't the most robust way to determine when a node exist from. We should instead add an epochSeq field to the ValidatorUpdate event so that when a node joins or leaves, this event will tell us exactly for which epoch that happened in.
Observed behaviour
Sometimes node disappear when quering all nodes if done on an epoch boundary.
Expected behaviour
All nodes should always be reported if the exist.
Additional context
Add any other context about the problem here including; system version numbers, components affected.
Definition of Done
ℹ️ Not every issue will need every item checked, however, every item on this list should be properly considered and actioned to meet the DoD.
Before Merging
[ ] Code refactored to meet SOLID and other code design principles
[ ] Code is compilation error, warning, and hint free
[ ] Carry out a basic happy path end-to-end check of the new code
[ ] All APIs are documented so auto-generated documentation is created
[ ] All bug recreation steps can be followed without presenting the original error/bug
[ ] All Unit, Integration and BVT tests are passing
Problem encountered
In this commit a change was made to use the presence of rankingData for an epoch to determine whether a node existed in that epoch. This is so that when nodes announce themselves, they don't suddenly appear in the epoch data for the past.
The problem is that there is a small amount of time between the data-node receiving a new epoch event, and it receiving the ranking-data events for that epoch where if you asks for a node list, it may be incomplete.
The rankingData probably isn't the most robust way to determine when a node exist from. We should instead add an
epochSeq
field to theValidatorUpdate
event so that when a node joins or leaves, this event will tell us exactly for which epoch that happened in.Observed behaviour
Sometimes node disappear when quering all nodes if done on an epoch boundary.
Expected behaviour
All nodes should always be reported if the exist.
Additional context
Add any other context about the problem here including; system version numbers, components affected.
Definition of Done
Before Merging
After Merging
Done
if there is NO requirement for new system-tests