This project is maintained by valerio-vaccaro
HAN SOLOminer e Nerdminer xe dispositivi educativi che permet de imparar i concetti base del mining Bitcoin attraverso un “gioco” divertente e istruttivo. In questa lezion esploreremo come funzionano e come configurarli.
# Clona il repository
git clone https://github.com/BitMaker-hub/NerdMiner_v2
cd NerdMiner_v2
# Installa PlatformIO
pip install platformio
# Compila e flash
pio run -t upload
// Configura WiFi
const char* ssid = "Tua_Rete_WiFi";
const char* password = "Tua_Password";
// Configura pool
const char* poolUrl = "stratum+tcp://pool.example.com:3333";
const char* wallet = "Tua_Wallet_Address";
const char* workerName = "HAN_SOLOminer";
// Configura display
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#include <WiFi.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Configurazion display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(115200);
// Inizializa display
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
// Connession WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Avvia mining
startMining();
}
void loop() {
// Aggiorna display
updateDisplay();
// Mining loop
mineBlock();
// Verifica connession
checkConnection();
delay(100);
}
void mineBlock() {
// Genera nonce casuale
uint32_t nonce = random(0xFFFFFFFF);
// Calcola hash
String hash = calculateHash(blockHeader + nonce);
// Verifica difficoltà
if (hash.startsWith("000")) {
blockFound();
}
hashCount++;
}
// Abilita debug
#define DEBUG 1
#ifdef DEBUG
Serial.println("Debug: " + message);
#endif
HAN SOLOminer e Nerdminer xe ottimi strumenti par imparar il mining Bitcoin. Anche se non producono Bitcoin reali, forniscono na comprension pratica de come funziona il processo de mining e la rete Bitcoin.