anchor.diff:  %% ------------------------------------------------------------------
   
   -export([start_link/1,
  -         send_command/2]).
  +         send_raw/1]).
   
   %% ------------------------------------------------------------------
   %% Private Exports - only exported for instrumentation
   %% ------------------------------------------------------------------
   
   -export([do_receive/3,
  -         do_send/4,
  -         do_send_multi/4]).
  +         do_send_raw/2]).
   
   %% ------------------------------------------------------------------
   %% gen_server Function Exports
  
positive.code: start_link(PushyState) ->
      gen_server:start_link({local, ?SERVER}, ?MODULE, [PushyState], []).
  
  -spec send_command(node_ref(), ejson()) -> ok.
  send_command(NodeRef, Message) when is_tuple(NodeRef) ->
      gen_server:call(?MODULE, {send, hmac_sha256, NodeRef, Message});
  %%% A good optimization is to use HMAC when the number of nodes is small.
  %%% We should do more work to determine exactly where the crossover point between doing a
  %%% single expensive signature vs many cheap HMAC signatures. The number is somewhere between
  %%% 100 and 1000.
  send_command(NodeRefs, Message) when is_list(NodeRefs)
                                       andalso length(NodeRefs) < ?PUSHY_MULTI_SEND_CROSSOVER ->
      gen_server:call(?MODULE, {send_multi, hmac_sha256, NodeRefs, Message});
  send_command(NodeRefs, Message) when is_list(NodeRefs)  ->
      gen_server:call(?MODULE, {send_multi, rsa2048_sha1, NodeRefs, Message}).
  
  %% ------------------------------------------------------------------
  %% gen_server Function Definitions
  
negative.code:          private_key
          }).
  
  -type addressed_message() :: [binary()]. % TODO Improve; it might be worth turning this into a tuple for better specificity.
  
  %% ------------------------------------------------------------------
  %% API Function Definitions
  