Elrond Node Reshuffling
In Elrond, every epoch has a predetermined duration, originally set to 24 hours (may suffer upgrades following several testnet(0 confirmation phases ). In this period, the setup of this shards stays unchanged. The system adjusts to scalability requirements between epochs by changing the number of shards. To avoid a collision, following an epoch, the arrangement of every shard should modify. Even though reshuffling all nodes involving shards would offer the maximum security level, it might influence the system's liveness by introducing extra latency because of bootstrapping. Because of this, at the end of every epoch, less than 1/3 of those qualified validators, belonging to some shard will probably be reverted non-deterministically and uniformly into another shard' waiting lists.
Only prior to the start of a new epoch, the validator distribution to shards can be determined, without additional communication as displayed in the figure below:
The node shuffling process Works in multiple steps:
The new nodes enrolled in the present epoch e.i land at the unassigned node pool until the end of the current epoch;
Greater than 1/3 of those nodes in every shard are randomly selected to be reshuffled and are added to the assigned node pool;
The new number of shards Nsh,I+1 is computed based on the number of nodes in the community ki and network usage;
Nodes formerly in most shard's waiting lists, that are currently synchronized, are added to the qualified validator's lists;
The recently added nodes from the unassigned node pool are randomly distributed across all shards' waiting lists through epoch ei+1;
The reshuffled nodes from the assigned node pool have been redistributed with higher ratios to shards' waiting lists that will have to divide in the next epoch ei+2.
The node shuffling procedure Works in numerous steps: The brand new nodes registered in the current epoch e.i land in the unassigned node pool before the conclusion of the present epoch; Greater than 1/3 of these nodes in each shard are randomly chosen to be reshuffled and are inserted into the assigned node pool;The new number of shards Nsh, I+1 is calculated depending on the number of nodes at the area ki and community use;Nodes previously in many shard's waiting lists, which are synchronized, are inserted into the skilled validator's lists;The newly added nodes in the unassigned node pool are arbitrarily dispersed across all shards' waiting lists via epoch ei+1;The reshuffled nodes in the assigned node pool happen to be redistributed with greater ratios into shards' waiting lists which are going to need to split within another epoch ei+2.