anchor.diff:  -spec create_check_channel(binary()) -> {atom(),atom()}.
   create_check_channel(Channel) ->
   	TBin = ?TABLE(Channel),
  -	Token = list_to_binary([TBin,integer_to_list(erlang:phash2(TBin))]),
  +	Token = list_to_binary([TBin,integer_to_list(erlang:phash2({TBin,node()}))]),
   	try 
   		_ = ?binary_to_existing_atom(Token), 	%% probe atom cache for token
   		{?binary_to_existing_atom(TBin),?binary_to_existing_atom(?AUDIT(Channel))}
  
positive.code: % 	debug(Cmd, Tuple), 
  % 	{ok,Tuple}.
  
  clean_table(Bin) ->
  	case binary:last(Bin) of
  		10 ->	binary:replace(binary_part(Bin,0,size(Bin)-1), <<13>>, <<>>, [global]);
  		_ ->	binary:replace(Bin, <<13>>, <<>>, [global])
  
negative.code: -define(E116,{116,<<"Invalid option value">>}).
  
  
  -export([ write/2 		%% (Channel, KVTable)    			resource may not exist, will be created, return list of hashes 
  		, read/2		%% (Channel, KeyTable)   			return empty Arraylist if none of these resources exists
  		, readGELT/4	%% (Channel, Item, CKey1, CKey2)	start with first key after CKey1, end with last key before CKey2
   		, readGT/4		%% (Channel, Item, CKey1, Limit)	start with first key after CKey1, return Limit results or less
   		, delete/2		%% (Channel, KeyTable)    			do not complain if keys do not exist
   		, deleteGELT/3	%% (Channel, CKey1, CKey2)			delete range of keys >= CKey1
  		, deleteGTLT/3	%% (Channel, CKey1, CKey2)			delete range of keys > CKey1
  		]).
  
  %% @doc Checks existence of interface tables by checking existence of table name atoms in atom cache
  