public synchronized void start() {
        checkState(setupConversion);
        checkState(initialized);

        if (running) {
            return;
        }

        LOGGER.info("starting raft agent");

        timer.start();
        raftNetworkClient.start();
        raftAlgorithm.start();

        running = true;
    }
public synchronized void start ( ) { checkState ( setupConversion ) ; checkState ( initialized ) ; if ( running ) { return ; } LOGGER . info ( "starting raft agent" ) ; timer . start ( ) ; raftNetworkClient . start ( ) ; raftAlgorithm . start ( ) ; running = true ; }
Start the local Raft server.
<p/>
This call <strong>must</strong> only be made <strong>after</strong>:
<ol>
<li>one of {@link RaftAgent#setupJacksonAnnotatedCommandSerializationAndDeserialization(Class)} or
{@link RaftAgent#setupCustomCommandSerializationAndDeserialization(CommandSerializer, CommandDeserializer)}</li>
<li>{@link RaftAgent#initialize()}</li>
</ol>
Following a successful call to {@code start()} callers
<strong>no longer</strong> have exclusive access to system resources.
<p/>
Once a successful call to {@code start()} is made subsequent calls are noops.

@throws IllegalStateException if this method is called before {@code RaftAgent} is initialized