Self-stabilization is a versatile fault-tolerance approach that characterizes the ability of a system to eventually resume a correct behavior after any finite number of transient faults. In this paper, we propose a self-stabilizing reset algorithm working in anonymous networks. This algorithm resets the network in a distributed non-centralized manner, i.e., it is multi-initiator, as each process detecting an inconsistency may initiate a reset. It is also cooperative in the sense that it coordinates concurrent reset executions in order to gain efficiency. Our approach is general since our reset algorithm allows to build self-stabilizing solutions for various problems and settings. As a matter of fact, we show that it applies to both static and dynamic specifications since we propose efficient self-stabilizing reset-based algorithms for the (1minimal) (f, g)-alliance (a generalization of the dominating set problem) in identified networks and the unison problem in anonymous networks. Notice that these two latter instantiations enhance the state of the art. Indeed, in the former case, our solution is more general than the previous ones; while in the latter case, the time complexity of the proposed unison algorithm is better than that of previous solutions of the literature. This study was partially supported by the French ANR projects ANR-16-CE40-0023 (DESCARTES) and ANR-16 CE25-0009-03 (ESTATE). version. However, this so-called transformer is, by essence, inefficient both in terms of space and time complexities: actually, its purpose is only to demonstrate the feasibility of the transformation.Interestingly, many proposed general methods [36,7,4,5] are based on reset algorithms. Such algorithms are initiated when an inconsistency is discovered in the network, and aim at reinitializing the system to a correct (pre-defined) configuration.A reset algorithm may be centralized at a leader process (e.g., see [4]), or fully distributed, meaning multi-initiator (as our proposal here). In the former case, either the reset is coupled with a snapshot algorithm (which makes a global checking of the network), or processes detecting an incoherence (using local checking [6]) should request a reset to the leader. In the fully distributed case, resets are locally initiated by processes detecting inconsistencies. This latter approach is considered as more efficient when the concurrent resets are coordinated. In other words, concurrent resets have to be cooperative (in the sense of [37]) to ensure the fast convergence of the system to a consistent global state.Self-stabilization makes no hypotheses on the nature (e.g., memory corruption or topological changes) or extent of transient faults that could hit the system, and a self-stabilizing system recovers from the effects of those faults in a unified manner. Now, such versatility comes at a price, e.g., after transient faults cease, there is a finite period of time, called the stabilization phase, during which the safety properties of the system are violated. Hence, self-stabilizing al...