Thanks Neo for answering most of the points already
I have read the primer but I want an explanation in one place.
As Neo mentioned, the “one place” that is currently the most up-to-date and contains the most information about this topic is Data Chains Deeper Dive
Currently, a message is sent from the initial section to the assigned section. This is not set in stone though (depending on profiling etc.)
The current view is:
Sections merge when
- Number of adults drops to 0
- The sibling section wants to merge
A section splits when
- both child halves have at least
GROUP_SIZE + BUFFER_SIZE peers with age
An elder is promoted when
- they become one of the
GROUP_SIZE oldest nodes in the section (with a tie-breaker rule: see Data Chains Deeper Dive)
The constants (
BUFFER_SIZE etc.) are far from set in stone at the moment. We think that by being efficient, PARSEC probably bought us some flexibility to increase them from the initial idea. In the end, testing will determine the right sizes.
For more details, I would recommend reading Data Chains Deeper Dive. Just keep in mind that where there is speech of “quorum agreement”, that bit is replaced with PARSEC for consensus now.