anchor.diff:  %% merkle tree sync messages
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  -on({check_node, SenderPid, Interval, Hash}, State =
  -       #rr_recon_state{ struct = Tree }) ->
  +on({check_node, SenderPid, Interval, Hash}, State = #rr_recon_state{ struct = Tree }) ->
       Node = merkle_tree:lookup(Interval, Tree),
       {Result, ChildHashs} = 
           case Node of
  
positive.code:                         dhtNodePid = DhtPid,
                          struct = #bloom_recon_struct{ interval = BloomI}
                         }) ->
      %MyBloomI = mapInterval(BloomI, get_interval_quadrant(MyI)),
      MySyncI = find_intersection(MyI, BloomI),
      %?TRACE("GET STATE - MyI=~p ~n BloomI=~p ~n BloomIMapped=~p ~n SynI=~p", [MyI, BloomI, MyBloomI, MySyncI]),
      case intervals:is_empty(MySyncI) of
          true -> comm:send_local(self(), {shutdown, empty_interval});
          false -> send_chunk_req(DhtPid, self(), MySyncI, mapInterval(MySyncI, 1), get_max_items(bloom))
  
negative.code: build_recon_struct(merkle_tree, {I, DBItems}) ->
      merkle_tree:new(I, DBItems, []);
  build_recon_struct(art, Chunk) ->
      art:new(build_recon_struct(merkle_tree, Chunk)).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % HELPER
  