void validate() throws validate_failed, pval_error, make_key_error
	{
		//if (tol==0) throw new validate_failed();
		int i=1;
		node s=startNode;
		boolean success=true;
		long diff;
		while((s=s.nextNode()).getId()!=startNode.getId())
		{
			i++;
			if (i>common.maxNodes) 
			{
				if (tol==0)throw new validate_failed();
				else tol--;
				success=false;
				break;
			}
			for (int j=0;j<common.keyLength;j++)
			{
				//if (tol==0) throw new validate_failed();
				diff=common.compareKeys(s.getFinger(j).getKey(),s.getKey());
				if (diff==0) diff=common.maxN;
				if (diff<common.compareKeys(s.getStartIndex(j),s.getKey())) throw new validate_failed();
			}
		}
		i++;
		int ss=node.allnodes.size();
		if (ss-i>1) throw new validate_failed();
		//		if (i<prev) throw new validate_failed();
		//		prev++;
	}