anchor.diff:  %%% Auxiliary functions for managing consistent hashing ring and mapping
   %%% terms (usually UUIDs) to nodes in the ring.
   %%% Most functions use record ring (stored in environment variable) that represents information about cluster.
  -%%% It is assumed that particular number of nodes is associated with each label.
  +%%% It is assumed that particular number of nodes is assigned to each label.
   %%% Ring record is an internal structure of the module - it can only be copied as indivisible whole between nodes.
   %%% @end
   %%%--------------------------------------------------------------------
  
positive.code: 
  %%--------------------------------------------------------------------
  %% @doc
  %% Initialize ring. Requires nodes' list and information about number of nodes associated with each label.
  %% @end
  %%--------------------------------------------------------------------
  -spec init([node()], pos_integer()) -> ok | {error, term()}.
  init(Nodes, LabelAssociatedNodesCount) ->
      case is_ring_initialized() of
          false ->
              Ring = init_ring(Nodes, LabelAssociatedNodesCount),
              set_ring(Ring),
              replicate_ring_to_nodes(Nodes);
          _ ->
  
negative.code:     Index.
  
  -spec init_ring([node()], pos_integer()) -> ring().
  init_ring([_] = Nodes, NodesAssignedPerLabel) ->
      #ring{nodes_assigned_per_label = NodesAssignedPerLabel, all_nodes = Nodes};
  init_ring(Nodes, NodesAssignedPerLabel) ->
      NodeCount = length(Nodes),
      [Node0 | _] = Nodes,
      InitialCHash = chash:fresh(NodeCount, Node0),
  