anchor.diff:      %% (optimized: embed the proposer's accept message in registerTP message)
       dht_node_state:set_db(DHT_Node_State, NewDB).
   
  --spec on_tx_commitreply(tuple(), commit | abort, dht_node_state:state())
  +-spec on_tx_commitreply({tx_item_state:paxos_id(), tx_tlog:tlog_entry()},
  +                        commit | abort, dht_node_state:state())
                          -> dht_node_state:state().
   on_tx_commitreply({PaxosId, RTLogEntry}, Result, DHT_Node_State) ->
       ?TRACE("tx_tp:on_tx_commitreply({, ...})~n", []),
  
positive.code:     pdb:delete(PaxosId, TP_DB),
      dht_node_state:set_db(DHT_Node_State, NewDB).
  
  -spec on_tx_commitreply_fwd(tuple(), commit | abort, commit | abort,
                              dht_node_state:state())
                             -> dht_node_state:state().
  on_tx_commitreply_fwd(RTLogEntry, Result, OwnProposal, DHT_Node_State) ->
  
negative.code:     %% need Acceptors (given via RTMs), Learner,
      %% validate locally via callback
      DB = dht_node_state:get(DHT_Node_State, db),
      {NewDB, Proposal} = apply(tx_tlog:get_entry_operation(RTLogEntry),
                                validate,
                                [DB, RTLogEntry]),
  
  