1. Rename the states:eer module to states::elder.
2. Create a new state/module states::non_elder.
3. Support the following transitions:
joining_node → non_elder
joining_node → elder
elder → non_elder
non_elder → elder
elder → terminate
non_elder → terminate
Note that allowing a transition from elder → non_elder would only be usable in cases where we don’t change the PublicInfo, i.e. during section merges. For a normal demotion due to an elder being relocated into our section, we’d be restarting from bootstrapping again. If crust can handle changing PublicInfo without restart, then demotion can also be treated as elder → non_elder instead of elder → terminate.
4. Create a new trait struct states::common::node where Node implements Bootstrapped containing all the common functionality of the NonElder and Elder states (most of which is currently in states:eer).
-Create a new composition states::common::node::Node where Node containing all the common functionality of the NonElder and Elder states (most of which is currently in states:eer). Convert traits into composition - so Node will compose Bootstrapped etc.-