We are all aware with the current lack of protocol layer enforcement to get Sub P-Reps to run a node, and we all agree this is an issue that should be solved.
For ICON 2.0, the current plan is to add a rotating slot(s) for Sub P-Reps to produce blocks. Sub P-Reps will be pseudo-randomly selected (based on their bonded delegation) to produce blocks for 1 term. This solution can be seen in action on EOS.
If a Sub P-Rep is offline, they will suffer a validation penalty. If they miss too many blocks, eventually they will get slashed. Specifics on the penalty structure for ICON 2.0 will be discussed on a separate post, but for this discussion just understand that the point of this solution is that we have found a way to penalize inactive Sub P-Rep nodes.
Assuming there is no serious pushback to this solution, this will be the plan for ICON 2.0. It is also relatively easy to develop and implement.
We are also still considering how many rotating slots to have. Currently considering between 1-3, but open to suggestions. More rotating slots would be more decentralized because more entities will be producing blocks more often. The downside of more slots is that, if all the Sub P-Rep nodes happen to be offline and too many Main P-Reps are also offline at the time, it increases the chances of the edge case where we have too many offline nodes to produce a block. Remember that to produce a block, we must have 2/3 + 1 nodes online.
Finally, the last thing to consider is whether or not the rotating sub p-rep slots should have governance power and governance responsibilities. If there is a network proposal vote, will the rotating sub p-reps get to vote? If yes, they will also be susceptible to the governance slashing we agreed to. I am leaning toward “yes”, they should be involved in governance, just to keep things simple.
Disclaimer: Everything said here is subject to change due to development hurdles.