anchor.diff:      maps:get(role, State, no_role) == responder
           andalso maps:get(port, State, no_port) == no_port.
   
  -close_connection(State) ->
  +cleanup_connection(State) ->
       case maps:get(status, State, error) of
           {connected, ESock} -> enoise:close(ESock);
           _                  -> ok
  
positive.code:     case maps:get(gen_tcp, State, undefined) of
          TSock when is_port(TSock) -> gen_tcp:close(TSock);
          _                         -> ok
      end.
  
  connect_fail(S) ->
      case aec_peers:connect_fail(peer_id(S), self()) of
  
negative.code:     send_send_block(State, Hash),
      {noreply, State};
  handle_cast(stop, State) ->
      cleanup_connection(State),
      {stop, normal, State};
  handle_cast(_Msg, State) ->
      {noreply, State}.
  