Node Ageing RFC

Age is surprisingly quite limited in range.

Age increments at an exponentially slower rate, incrementing after roughly double the previous amount of time [0]. This is described in RFC0045 Node Ageing.

For example, if a node starts at age 1 and then after 1 hour is age 2, it would take double that ie 2 hours to reach age 3, double again ie 4 hours to reach age 4, 8 hours to reach age 5, 16h to reach age 6 etc.

If we extrapolate this and work with accumulated time, we end up with age 7 coming after 5 days and age 17 coming after 15 years. Age 20 happens after 120 years.

So virtually all age will be roughly within the range 7-20.

Is it more useful to have a broader spread of age? Would a linear rather than exponential period for age increment be more useful? Considering that age is used to determine elders and to determine reward portions, it seems to me that exponential change maybe is losing too much information for no real need…? Age is a u8 (source) so can be 0-255 but in reality would probably only span a range of about 20 values.

Considering changing adoption rate over the lifetime of the network and section splits etc I appreciate this can get very complex to analyse, so I’d be interested to hear other thoughts about it.

[0] Ageing is event driven rather than time driven but I use the term interchangeably since all nodes see progress in the same way, so it doesn’t matter that the rate of events will vary against a wall clock in real life; substitute ‘years’ for ‘approx 2^n events’ if it’s bothersome.

3 Likes