anchor.diff:  
   prepare(Partition, Protocol, TxId, Payload, Version) ->
       riak_core_vnode_master:sync_command({Partition, node()},
  -                                        {prepare, Protocol, TxId, Payload, Version},
  +                                        {prepare, TxId, make_payload(Protocol, Payload), Version},
                                           ?VNODE_MASTER,
                                           infinity).
   
  
positive.code: 
      %% Holds temporary data for the transactions while they sit
      %% on the commit queue. Used to offload memory to an ETS.
      pending_tx_data :: cache(tx_id(), term()),
  
      %% A pair of inverted indices over the transactions read/write sets
      %% Used to compute write-write and read-write conflicts in a quick way.
  
negative.code: -define(WRITE_HEAVY_OPTS, [set, public, named_table, {write_concurrency, true}]).
  -define(PENDING_OPTS, [bag, public, named_table, {read_concurrency, true}, {write_concurrency, true}]).
  
  -record(psi_payload, {writeset :: #{key() => val()}}).
  -record(psi_data, {keys :: [key()]}).
  
  -record(ser_payload, {
      writeset :: #{key() => val()},
      readset :: #{key() => non_neg_integer()}
  }).
  
  -record(ser_data, {
      write_keys :: [key()],
      readset :: [{key(), non_neg_integer()}]
  }).
  
  -type protocol_payload() :: #psi_payload{} | #ser_payload{}.
  -type persist_data() :: #psi_data{} | #ser_data{}.
  
  %% Called internally by riak_core, or via rpc
  -ignore_xref([start_vnode/1,
                replicas_ready/0,
  