anchor.diff:      end,
       State;
   
  -on({get_chunk_response, {RestI, DBList}}, State =
  +on({rr_recon, data, DestI, {get_chunk_response, {RestI, DBList0}}}, State =
          #rr_recon_state{ stage = build_struct,
                           method = RMethod,
                           struct = Params,
                           dhtNodePid = DhtNodePid,
                           initiator = Initiator,
                           stats = Stats }) ->
  +    DBList = [case map_key_to_interval(KeyX, DestI) of
  +                  none -> encodeBlob(?MINUS_INFINITY, 0); %TODO should be filtered
  +                  Key -> encodeBlob(Key, VersionX)
  +              end || {KeyX, VersionX} <- DBList0],
       SyncI = proplists:get_value(interval, Params),
       ToBuild = ?IIF(RMethod =:= art, ?IIF(Initiator, merkle_tree, art), RMethod),
       {BuildTime, SyncStruct} =
  
positive.code: 
  -spec build_recon_struct(Method, DB_Chunk) -> Recon_Struct when
        is_subtype(Method,       method()),
        is_subtype(DB_Chunk,     {intervals:interval(), db_as_list_enc()}),
        is_subtype(Recon_Struct, bloom_recon_struct() | merkle_tree:merkle_tree() | art:art()).
  build_recon_struct(bloom, {I, DBItems}) ->
      Fpr = get_bloom_fpr(),
  
negative.code:     is_subtype(I,           intervals:interval()),
      is_subtype(MaxItems,    pos_integer()).
  send_chunk_req(DhtPid, SrcPid, I, DestI, MaxItems) ->
      SrcPidReply = comm:reply_as(SrcPid, 4, {rr_recon, data, DestI, '_'}),
      comm:send_local(
        DhtPid,
        {get_chunk, SrcPidReply, I, fun get_chunk_filter/1, fun get_chunk_value/1,
         MaxItems}).
  
  -spec get_chunk_filter(db_entry:entry()) -> boolean().
  get_chunk_filter(DBEntry) -> db_entry:get_version(DBEntry) =/= -1.
  -spec get_chunk_value(db_entry:entry()) -> db_entry().
  get_chunk_value(DBEntry) -> {db_entry:get_key(DBEntry), db_entry:get_version(DBEntry)}.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  