Files
cpu-miner/main.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);
}