aboutsummaryrefslogtreecommitdiff
path: root/cpu-miner.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2010-11-25 00:49:39 -0500
committerJeff Garzik <jgarzik@redhat.com>2010-11-25 00:49:39 -0500
commit23cd22a5a539f8d831faa3b376ea33cba73a222b (patch)
tree39f364572b24a55ffd0ab1855e9ed576b2d87adc /cpu-miner.c
parent67d3c91317522eb70b8987b91aa0e87339ac1ae8 (diff)
RPC URL, username and password become arguments,
rather than compile-time constants.
Diffstat (limited to 'cpu-miner.c')
-rw-r--r--cpu-miner.c39
1 files changed, 31 insertions, 8 deletions
diff --git a/cpu-miner.c b/cpu-miner.c
index 38a9149..df1da5e 100644
--- a/cpu-miner.c
+++ b/cpu-miner.c
@@ -39,14 +39,27 @@ static const bool opt_time = true;
static int opt_n_threads = 1;
static pthread_mutex_t stats_mutex = PTHREAD_MUTEX_INITIALIZER;
static uint64_t hash_ctr;
+static char *rpc_url = "http://127.0.0.1:8332/";
+static char *userpass = "rpcuser:rpcpass";
+
static struct argp_option options[] = {
- { "threads", 't', "N", 0,
- "Number of miner threads (default: 1)" },
{ "debug", 'D', NULL, 0,
"Enable debug output" },
+
{ "protocol-dump", 'P', NULL, 0,
"Verbose dump of protocol-level activities" },
+
+ { "threads", 't', "N", 0,
+ "Number of miner threads (default: 1)" },
+
+ { "url", 1001, "URL", 0,
+ "URL for bitcoin JSON-RPC server "
+ "(default: http://127.0.0.1:8332/)" },
+
+ { "userpass", 1002, "USER:PASS", 0,
+ "Username:Password pair for bitcoin JSON-RPC server "
+ "(default: rpcuser:rpcpass)" },
{ }
};
@@ -381,9 +394,6 @@ static uint32_t scanhash(unsigned char *midstate, unsigned char *data,
}
}
-static const char *url = "http://127.0.0.1:8332/";
-static const char *userpass = "pretzel:smooth";
-
static void submit_work(struct work *work)
{
char *hexstr = NULL, *s = NULL;
@@ -408,7 +418,7 @@ static void submit_work(struct work *work)
fprintf(stderr, "DBG: sending RPC call:\n%s", s);
/* issue JSON-RPC request */
- val = json_rpc_call(url, userpass, s);
+ val = json_rpc_call(rpc_url, userpass, s);
if (!val) {
fprintf(stderr, "submit_work json_rpc_call failed\n");
goto out;
@@ -437,7 +447,7 @@ static void *miner_thread(void *dummy)
uint32_t nonce;
/* obtain new work from bitcoin */
- val = json_rpc_call(url, userpass, rpc_req);
+ val = json_rpc_call(rpc_url, userpass, rpc_req);
if (!val) {
fprintf(stderr, "json_rpc_call failed\n");
return NULL;
@@ -479,11 +489,24 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
break;
case 't':
v = atoi(arg);
- if (v < 1 || v > 9999) /* sanity check */
+ if (v < 1 || v > 9999) /* sanity check */
argp_usage(state);
opt_n_threads = v;
break;
+ case 1001: /* --url */
+ if (strncmp(arg, "http://", 7) &&
+ strncmp(arg, "https://", 8))
+ argp_usage(state);
+
+ rpc_url = arg;
+ break;
+ case 1002: /* --userpass */
+ if (!strchr(arg, ':'))
+ argp_usage(state);
+
+ userpass = arg;
+ break;
case ARGP_KEY_ARG:
argp_usage(state); /* too many args */
break;