Semplifica build e ottimizza bruteforce P2PK

- Makefile: setup automatico libreria alla prima compilazione
- Bruteforce: ottimizzazioni multi-threading con CPU affinity
This commit is contained in:
2026-01-23 20:05:02 +01:00
parent 7f2fdf250a
commit 60cabb03d4
5 changed files with 529 additions and 330 deletions

View File

@@ -12,13 +12,44 @@ SOURCE = p2pk_bruteforce.cpp
INCLUDE_PATH = -I/usr/local/include -I/usr/include
LIB_PATH = -L/usr/local/lib -L/usr/lib
all: $(TARGET)
all: build-if-needed compile
$(TARGET): $(SOURCE)
@echo "[+] Compilazione $(TARGET) con ottimizzazioni massime..."
build-if-needed:
@if [ ! -d "secp256k1" ]; then \
echo "========================================"; \
echo " PRIMA COMPILAZIONE: Setup Automatico"; \
echo "========================================"; \
echo ""; \
echo "Compilazione libsecp256k1..."; \
echo "Questo richiederà ~5 minuti (solo la prima volta)"; \
echo ""; \
$(MAKE) build-optimized-secp256k1; \
fi
compile: build-if-needed
@if [ -d "secp256k1" ]; then \
echo "[+] Compilazione con libsecp256k1..."; \
$(CC) $(CFLAGS) \
-I./secp256k1/include \
-L./secp256k1/lib \
-Wl,-rpath,$(shell pwd)/secp256k1/lib \
-o $(TARGET) $(SOURCE) $(LIBS); \
echo "[+] Compilazione completata!"; \
echo "[!] Performance attese: ~300K keys/sec"; \
else \
echo "[+] Compilazione standard..."; \
$(CC) $(CFLAGS) $(INCLUDE_PATH) $(LIB_PATH) -o $(TARGET) $(SOURCE) $(LIBS); \
echo "[+] Compilazione completata!"; \
echo "[!] Performance attese: ~250K keys/sec"; \
fi
@echo "[!] Eseguibile: ./$(TARGET)"
standard: $(SOURCE)
@echo "[+] Compilazione STANDARD (senza libreria ottimizzata)..."
$(CC) $(CFLAGS) $(INCLUDE_PATH) $(LIB_PATH) -o $(TARGET) $(SOURCE) $(LIBS)
@echo "[+] Compilazione completata!"
@echo "[!] Eseguibile: ./$(TARGET)"
@echo "[!] Performance attese: ~250K keys/sec"
optimized: $(SOURCE)
@echo "[+] Compilazione con ottimizzazioni estreme (PGO)..."
@@ -51,6 +82,11 @@ clean:
rm -f *.o *.gcda *.gcno
@echo "[+] Pulizia completata!"
clean-all: clean
@echo "[+] Pulizia completa (include libreria secp256k1)..."
rm -rf secp256k1_build secp256k1
@echo "[+] Pulizia completa terminata!"
install-deps:
@echo "[+] Installazione dipendenze..."
@echo "[!] Questo installerà: build-essential, libsecp256k1-dev, libgmp-dev"
@@ -67,25 +103,47 @@ install-secp256k1:
sudo ldconfig
@echo "[+] libsecp256k1 installata!"
build-optimized-secp256k1:
@echo "[+] Compilazione libsecp256k1..."
@./build_secp256k1.sh
with-optimized-lib: $(SOURCE)
@echo "[+] Compilazione con libsecp256k1..."
@if [ ! -d "secp256k1" ]; then \
echo "[ERROR] Directory secp256k1 non trovata!"; \
echo "[!] Esegui prima: make build-optimized-secp256k1"; \
exit 1; \
fi
$(CC) $(CFLAGS) \
-I./secp256k1/include \
-L./secp256k1/lib \
-Wl,-rpath,$(shell pwd)/secp256k1/lib \
-o $(TARGET) $(SOURCE) $(LIBS)
@echo "[+] Compilazione completata!"
@echo "[!] Eseguibile: ./$(TARGET)"
help:
@echo "==================================================="
@echo " Bitcoin P2PK Bruteforce - Makefile"
@echo "==================================================="
@echo ""
@echo "Target disponibili:"
@echo " make - Compila il programma"
@echo " make optimized - Compila con PGO step 1"
@echo " make pgo-use - Compila con PGO step 2"
@echo " make static - Compila versione statica"
@echo " make debug - Compila versione debug"
@echo " make test - Test rapido"
@echo " make clean - Rimuove file compilati"
@echo " make install-deps - Installa dipendenze"
@echo " make install-secp256k1 - Compila secp256k1 da sorgente"
@echo " make - Compila il programma"
@echo " make build-optimized-secp256k1 - Compila libsecp256k1"
@echo " make with-optimized-lib - Compila con libsecp256k1"
@echo " make optimized - Compila con PGO step 1"
@echo " make pgo-use - Compila con PGO step 2"
@echo " make static - Compila versione statica"
@echo " make debug - Compila versione debug"
@echo " make test - Test rapido"
@echo " make clean - Rimuove file compilati"
@echo " make clean-all - Pulizia completa (include secp256k1)"
@echo " make install-deps - Installa dipendenze"
@echo " make install-secp256k1 - Compila secp256k1 da sorgente"
@echo ""
@echo "Uso:"
@echo " ./$(TARGET) [file_chiavi.txt]"
@echo ""
@echo "==================================================="
.PHONY: all optimized pgo-use static debug test clean install-deps install-secp256k1 help
.PHONY: all optimized pgo-use static debug test clean clean-all install-deps install-secp256k1 build-optimized-secp256k1 with-optimized-lib help