anchor.diff:      node_debug("Length: ~p", [Length]),
       node_debug("BufferEmpty: ~p", [BufferEmpty]),
   
  -    Result = OneChain andalso NonTrivialLength andalso BufferEmpty,
  +    node_debug("Crashed: ~p", [Crashed]),
  +
  +    Tolerance = case os:getenv("FAULT_TOLERANCE") of 
  +        false ->
  +            1;
  +        ToleranceString ->
  +            list_to_integer(ToleranceString)
  +    end,
  +
  +    Result = OneChain andalso NonTrivialLength andalso BufferEmpty andalso Crashed =< Tolerance,
       node_debug("postcondition: ~p", [Result]),
       Result;
   node_postcondition(_NodeState, Command, Response) ->
  
positive.code: 
      node_debug("Waiting for buffer flush before final assertion...", []),
  
      BufferEmpty = case wait_until(fun() ->
                            StillInBuf = sets:intersection([ sets:from_list(B) || B <- buffers(Workers)]),
                            length(sets:to_list(StillInBuf)) =:= 0
  
negative.code: check() ->
      %% Get workers.
      [{workers, Workers}] = ets:lookup(prop_partisan, workers),
  
      %% Get at_least_one_transaction.
      case ets:lookup(prop_partisan, at_least_one_transaction) of 
          [{at_least_one_transaction, true}] ->
  