* @param protocol The asynchronous protocol.
* @param config The replica configuration.
* @param <M> The cluster member type.
*/
public <M extends Member> Copycat(StateMachine stateMachine, Log log, Cluster<M> cluster, Protocol<M> protocol, CopycatConfig config) {
this(new StateContext(stateMachine, log, cluster, protocol, config), cluster, config);
}