anchor.diff:  %% @private
   %% @doc Send an heartbeat to a list of nodes, except this one.
   send_heartbeat(Nodes, StateName, StateData) ->
  -    Args = {heartbeat, node(), StateName,
  -            [{peers, StateData#state.peers}]},
  +    NodeInfo = node_info(StateData),
  +
  +    Args = {heartbeat, NodeInfo, StateName,
  +            [{peers, StateData#state.peers},
  +             {versioning, true}]},
       try
           misc:parallel_map(
             fun (Node) ->
  
positive.code: %% @private
  %% @doc Update the list of peers in the state. Also logs when it
  %% changes.
  update_peers(StateData, Peers) ->
      O = lists:sort(StateData#state.peers),
      P = lists:sort(Peers),
      case O == P of
  
negative.code:         Eaten ->
              ?log_warning("Skipped ~p heartbeats~n", [Eaten])
      end,
  
      Self = node(),
  
      %% Make sure our name hasn't changed
      StateData1 = case StateData#state.master of
                       Self ->
                           StateData;
                       N1 ->
                           ?log_info("Node changed name from ~p to ~p. "
  