anchor.diff:                 {update_RTMs}),
       State;
   on({update_RTMs_on_init}, State) ->
  +    %% only in tx_tm not in rtm processes!
  +    ?ASSERT(tx_tm =:= state_get_role(State)),
       State;
   %% accept RTM updates
   on({get_rtm_reply, InKey, InPid, InAcceptor}, State) ->
  
positive.code: on({tx_tm_rtm_commit, Client, ClientsID, TransLog}, State) ->
      ?TRACE("tx_tm_rtm:on({commit, ...}) for TLog ~p as ~p~n",
             [TransLog, state_get_role(State)]),
      Maj = config:read(quorum_factor),
      GLLearner = state_get_gllearner(State),
      TLogUid = uid:get_global_uid(),
      NewTid = {?tx_id, TLogUid},
      This = comm:this(),
      ItemStates = 
          util:map_with_nr(
            fun(TLogEntry, NrX) ->
                    ItemId = {?tx_item_id, TLogUid, NrX},
  
negative.code:     -> state() |
         {'$gen_component', [{on_handler, Handler::gen_component:handler()}], State::state()}.
  on_init({get_node_details}, State) ->
      %% only in tx_tm not in rtm processes!
      ?ASSERT(tx_tm =:= state_get_role(State)),
      util:wait_for(fun() -> comm:is_valid(comm:this()) end),
      comm:send_local(pid_groups:get_my(dht_node),
                      {get_node_details, comm:this(), [node]}),
  