51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
|
|
#include "config.h"
|
|
#include "mining_loop.h"
|
|
|
|
static void usage(const char *prog) {
|
|
fprintf(stderr, "Uso: %s [--config miner.conf] [--worker-idx N] [--extranonce2 HEX]\n", prog);
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
const char *config_path = "miner.conf";
|
|
int worker_idx = 0;
|
|
const char *ex2_override = NULL;
|
|
MinerConfig cfg;
|
|
int i;
|
|
|
|
for (i = 1; i < argc; i++) {
|
|
if (strcmp(argv[i], "--config") == 0 && i + 1 < argc) {
|
|
config_path = argv[++i];
|
|
continue;
|
|
}
|
|
if (strcmp(argv[i], "--worker-idx") == 0 && i + 1 < argc) {
|
|
worker_idx = atoi(argv[++i]);
|
|
continue;
|
|
}
|
|
if (strcmp(argv[i], "--extranonce2") == 0 && i + 1 < argc) {
|
|
ex2_override = argv[++i];
|
|
continue;
|
|
}
|
|
|
|
usage(argv[0]);
|
|
return 1;
|
|
}
|
|
|
|
if (config_load(config_path, &cfg) == 0) {
|
|
return 1;
|
|
}
|
|
|
|
if (ex2_override != NULL) {
|
|
snprintf(cfg.extranonce2, sizeof(cfg.extranonce2), "%s", ex2_override);
|
|
}
|
|
|
|
srand((unsigned int)(time(NULL) ^ getpid()));
|
|
|
|
return run_mining_loop(&cfg, worker_idx, cfg.extranonce2, -1);
|
|
}
|