anchor.diff:  
   %%%%%%%%%%%%%
   %% Utils
  -
  -observe(DcNodeAddress) ->
  -  {ok, Desc} = rpc:call(DcNodeAddress, inter_dc_manager, get_descriptor, []),
  -  observe_dc(Desc).
   
   wait_for_stable_snapshot(DCID, MinValue) ->
     case DCID == dc_meta_data_utilities:get_my_dc_id() of
  
positive.code: 	    false
      end.
  
  -spec reconnect_dcs_after_restart([#descriptor{}]) -> [ok | inter_dc_conn_err()].
  reconnect_dcs_after_restart(Descriptors) ->
      ok = forget_dcs(Descriptors),
      observe_dcs_sync(Descriptors).
  
  -spec observe_dcs([#descriptor{}]) -> [ok | inter_dc_conn_err()].
  observe_dcs(Descriptors) -> lists:map(fun observe_dc/1, Descriptors).
  
  -spec observe_dcs_sync([#descriptor{}]) -> [ok | inter_dc_conn_err()].
  observe_dcs_sync(Descriptors) ->
      {ok, SS} = dc_utilities:get_stable_snapshot(),
      DCs = lists:map(fun(DC) ->
  			    {observe_dc(DC), DC}
  		    end, Descriptors),
      lists:foreach(fun({Res, Desc = #descriptor{dcid = DCID}}) ->
  			  case Res of
  
negative.code: connect_nodes([], _DCID, _LogReaders, _Publishers, _Desc, _Retries) ->
      ok;
  connect_nodes(_Nodes, _DCID, _LogReaders, _Publishers, Desc, 0) ->
      ok = forget_dcs([Desc]),
      {error, connection_error};    
  connect_nodes([Node|Rest], DCID, LogReaders, Publishers, Desc, Retries) ->
      case rpc:call(Node, inter_dc_query, add_dc, [DCID, LogReaders], ?COMM_TIMEOUT) of
  