anchor.diff:              fd:subscribe(self(), [DestRRPid]),
               ?DBG_ASSERT(Misc =:= []),
               BF = bloom:new_bin(BFBin, ?REP_HFS:new(HfCount), BFCount),
  -            P1E_p1 = 0.0, % needs to be set when we know the number of chunks on this node!
               Params1 = Params#bloom_recon_struct{bf = BF},
               Misc1 = [{item_count, 0}];
           merkle_tree ->
  
positive.code: 
  on({process_db, {get_chunk_response, {RestI, DBList}}} = _Msg,
     State = #rr_recon_state{stage = reconciliation,    initiator = true,
                             method = shash,
                             params = #shash_recon_struct{sig_size = SigSize,
                                                          p1e_p2 = P1E_p2} = Params,
                             kv_list = KVList,
                             misc = [{db_chunk, OtherDBChunk},
                                     {oicount, OtherItemCount}]}) ->
      ?TRACE1(_Msg, State),
      % this is similar to the trivial sync above and the bloom sync below
  
      % identify differing items and the remaining (non-matched) DBChunk:
      {NewKVList, OtherDBChunk1} =
          shash_get_full_diff(DBList, OtherDBChunk, KVList, SigSize),
      NewState = State#rr_recon_state{kv_list = NewKVList,
                                      misc = [{db_chunk, OtherDBChunk1},
                                              {oicount, OtherItemCount}]},
  
      %if rest interval is non empty start another sync
      SyncFinished = intervals:is_empty(RestI),
  
negative.code:     build_struct(DBList, RestI, State);
  
  on({start_recon, RMethod, Params} = _Msg,
     State = #rr_recon_state{dest_rr_pid = DestRRPid, misc = Misc}) ->
      ?TRACE1(_Msg, State),
      % initiator got other node's sync struct or parameters over sync interval
      % (mapped to the initiator's range)
  