anchor.diff:  }
   
   class KNodeAI {
  +  bool _isStart = false;
     ShuffleLinkedList<KPeerInfo> findNodesInfo = new ShuffleLinkedList(20);
  -  start(KNode node) {}
  -  stop(KNode node) {}
  +
  +  start(KNode node) {
  +    _isStart = true;
  +    maintenance(node);
  +  }
  +
  +  stop(KNode node) {
  +    _isStart = false;    
  +  }
   
     maintenance(KNode node) {
       findNodesInfo.clearAll();
       node._rootingtable.findNode(node._nodeId).then((List<KPeerInfo> infos) {
  +      if(_isStart == false) {
  +        return ;
  +      }
         for (KPeerInfo info in infos) {
           findNodesInfo.addLast(info);
           node.sendFindNodeQuery(info.ipAsString, info.port, node._nodeId.id);
  
positive.code:     });
    }
  
    _onReceiveQuery(HetiReceiveUdpInfo info, KrpcQuery message) {}
    _onReceiveResponse(HetiReceiveUdpInfo info, KrpcResponse message) {}
    _onReceiveError(HetiReceiveUdpInfo info, KrpcError message) {}
    _onReceiveUnknown(HetiReceiveUdpInfo info, KrpcMessage message) {}
  
    String getQueryNameFromTransactionId(String transactionId) {
      for (SendInfo si in queryInfo) {
  
negative.code:   }
  
    onReceiveQuery(KNode node, HetiReceiveUdpInfo info, KrpcQuery query) {
      if(_isStart == false) {
        return null;
      }
      node._rootingtable.update(new KPeerInfo(info.remoteAddress, info.remotePort, query.queryingNodesId));
      switch (query.messageSignature) {
        case KrpcMessage.PING_QUERY:
  