feat(c-miner): port miner pipeline to modular C implementation
This commit is contained in:
50
main.c
Normal file
50
main.c
Normal file
@@ -0,0 +1,50 @@
|
||||
#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);
|
||||
}
|
||||
Reference in New Issue
Block a user