public void run() {

		/**
		 * Three step: 1) get challenge, 2) send reponse, 3) parse list
		 */

		try {
			URL url = new URL(BASE_URL + "?" + CommunityConstants.BASE64_PUBLIC_KEY + "=" + URLEncoder.encode(base64PubKey, "UTF-8"));
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();

			BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			String l = in.readLine();
			if (l != null) {
				System.out.println("got: " + l);
				
				if (l.startsWith(CommunityConstants.CHALLENGE)) {
					String[] toks = l.split("\\s+");
					if (toks.length != 2) {
						System.err.println("bad challenge");
						return;
					}

					long challenge = Long.parseLong(toks[1]);
					System.out.println("got challenge: " + challenge);

					reissueWithResponse(challenge);
				}
			} 
			

		} catch (Exception e) {
			e.printStackTrace();
		}
	}