anchor.diff:              %% Maybe instead report permanent fail + block?!
               lager:debug("ZZPC: eniose:connect() failed", []),
               gen_tcp:close(TcpSock),
  -            case aec_peers:connect_fail(peer_id(S), self()) of
  -                keep  -> {noreply, S#{ status := error }};
  -                close -> {stop, normal, S}
  -            end
  +            connect_fail(S)
       end;
   
  +handle_info({noise, _, <<?MSG_FRAGMENT:16, N:16, M:16, Fragment/binary>>}, S) ->
  +    handle_fragment(S, N, M, Fragment);
   handle_info({noise, _, <<Type:16, Payload/binary>>}, S) ->
       {ok, Msg} = msgpack:unpack(Payload),
       S1 = handle_msg(S, Type, Msg),
  
positive.code: -include("common.hrl").
  -include("blocks.hrl").
  
  -define(MSG_PING, 1).
  -define(MSG_PING_RSP, 2).
  -define(MSG_GET_HEADER_BY_HASH, 3).
  
negative.code:         true ->
              {stop, normal, S};
          false ->
              connect_fail(S)
      end;
  handle_info(Msg, S) ->
      lager:debug("ZZPC: unexpected message ~p", [Msg]),
  