anchor.diff:    ShuffleLinkedList<KPeerInfo> _findedNode = new ShuffleLinkedList(50);
   
     List<KGetPeerInfo> receiveGetPeerResponseNode = [];
  -  
  +
     KId _infoHashId = null;
     bool get isStart => _isStart;
     int lastUpdateTime = 0;
  
positive.code:     }
    }
  
    onReceiveQuery(KNode node, HetiReceiveUdpInfo info, KrpcQuery query) {
      if (_isStart == false) {
        return null;
      }
    }
  
    updateReceveGetPeerInfo(HetiReceiveUdpInfo info,KrpcGetPeersResponse getPeer) {
      KGetPeerInfo i = new KGetPeerInfo(info.remoteAddress, info.remotePort, getPeer.queriedNodesId, _infoHashId, getPeer.tokenAsKId);
      List<KGetPeerInfo> alreadyHave = KGetPeerInfo.extract(receiveGetPeerResponseNode, (KGetPeerInfo a){
          return a.id == i.id;
      });
      if(alreadyHave.length > 0) {
        receiveGetPeerResponseNode.remove(alreadyHave[0]);
        receiveGetPeerResponseNode.add(i);
      } else {
  
negative.code:   KNodeAIAnnounceTask(KId infoHashId) {
      this._infoHashId = infoHashId;
    }
  
    startSearchPeer(KNode node, KId infoHash) {
      _isStart = true;
  