anchor.diff:  -export([join/2, join/3, update_members/3, get_leader/1, backend_pong/1]).
   -export([kget/4, kget/5, kupdate/6, kput_once/5, kover/5, kmodify/6, kdelete/4,
            ksafe_delete/5, obj_value/2, obj_value/3]).
  +-export([debug_local_get/2]).
   -export([setup/2]).
   -export([probe/2, election/2, prepare/2, leading/2, following/2,
            probe/3, election/3, prepare/3, leading/3, following/3]).
  
positive.code: -spec local_put(pid(), term(), term(), timeout()) -> fixme().
  local_put(Pid, Key, Obj, Timeout) when is_pid(Pid) ->
      riak_ensemble_router:sync_send_event(Pid, {local_put, Key, Obj}, Timeout).
  
  %%%===================================================================
  %%% Core Protocol
  
negative.code:     TopHash = riak_ensemble_peer_tree:top_hash(Pid),
      Info = {Trust, Ready, TopHash},
      {reply, Info, StateName, State};
  handle_sync_event({debug_local_get, Key}, From, StateName, State) ->
      State2 = do_local_get(From, Key, State),
      {next_state, StateName, State2};
  handle_sync_event(_Event, _From, StateName, State) ->
      Reply = ok,
      {reply, Reply, StateName, State}.
  