anchor.diff:  %%% Node Functions
   %%%===================================================================
   
  --record(node_state, {}).
  +-record(node_state, {messages}).
   
   %% What node-specific operations should be called.
   node_commands() ->
       [
  -        {call, ?MODULE, submit_transaction, [node_name()]},
  -        {call, ?MODULE, wait, [node_name()]}
  +        {call, ?MODULE, submit_transaction, [node_name(), message()]}
       ].
   
   %% Assertion commands.
   node_assertion_functions() ->
  -    [].
  +    [check].
   
   %% Global functions.
   node_global_functions() ->
  -    [sleep].
  +    [sleep, check].
   
   %% What should the initial node state be.
   node_initial_state() ->
       node_debug("initializing", []),
  -    #node_state{}.
  +    #node_state{messages=[]}.
   
   %% Names of the node functions so we kow when we can dispatch to the node
   %% pre- and postconditions.
  
positive.code:                   end, sets:to_list(Chains)),
  
      %% check we actually converged and made a chain
  
      true = (1 == sets:size(Chains)),
      true = (0 < length(hd(sets:to_list(Chains)))),
  
  
negative.code:     [{workers, Workers}] = ets:lookup(prop_partisan, workers),
  
      %% Generate a message.
      node_debug("Message: ~p", [Message]),
  
      %% Determine destinations.
      Destinations = random_n(rand:uniform(N), Workers),
      node_debug("Destinations: ~p", [Destinations]),
  
      %% Submit transaction.
      [rpc:call(?NAME(Node), partisan_hbbft_worker, submit_transaction, [Message, Destination]) || {_Node, {ok, Destination}} <- Destinations],
  
      ?PROPERTY_MODULE:command_conclusion(Node, [submit_transaction, Node]),
  
  