feat(c-miner): port miner pipeline to modular C implementation

This commit is contained in:
2026-03-30 01:07:19 +02:00
parent 9a0a170799
commit d2c118833b
18 changed files with 3299 additions and 0 deletions

50
main.c Normal file
View 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);
}