I am trying to understand what is actually in Simple NightShade, the phase0 of the sharding strategy in NEAR. I have read all the relevant medium posted and also the videos in them, I have also search Zulip chat, got some understanding for the coming chunk and block producer selection algo, whic I "think" might be in phase 1. But I cannot understand what was actually implemented
Here are some of the information I got from the medium posts:
- There are now 4 shards, only states are sharded, computation is not sharded (all validators, aka block producers, have to track all shards). article [near-launches-simple-nightshade-]
-
Above all, it will be far cheaper to reach consensus — i.e., add a block to NEAR’s chain, since each block will only require a backing of 0.1% of all of the staked coins in NEAR’s ecosystem. In article [how-simple-nightshade-works]
- Under the section: What makes simple nightshade unique - In article [primer]
On a physical level, no participant downloads either the full state or the full logical block. Instead, they maintain the state that is connected to the shards for which they validate transactions.
Here are my questions of what is in phase0:
- What is meant by all validators track all the shards? As in, do they compute all the state transitions in all the shards for the same block? or do they get assigned to one shard for each epoch but will rotate to all shards?
- If the former case is true for Q1, and that the runtime is not aware of sharding, does this mean all validators will have 4 runtime running at the same time to accommodate for cross-shard transactions? And that how can the validators not download all the states?
- How are shards currently split? by merkle trie hash address?
- How does this phase require less backing per block?
- I saw from this stackoverflow post that now the gas-limit per block is 4 times that of pre-phase0. So this means (in this phase) that validators may be doing 4x the work as before (until chunk producers come in).
I would really appreciate help on understanding this! thank you!