Inizia con DATUM

Il tuo nodo costruisce il blocco, il tuo gateway parla con la pool, i tuoi miner hashano nel tuo gateway. Sette passi, in quest’ordine — ognuno finisce con come sai che ha funzionato.
Quale pool? I passi sono gli stessi; cambiano solo porta, chiave e regola di pagamento.
PASSO 1Esegui un nodo BLAKE2bPASSO 2Scarica e compila il gatewayPASSO 3Configuralo — puntalo al nostro PrimePASSO 4EseguiloPASSO 5Registra il tuo indirizzo (CAROUSEL e CHIRP)PASSO 6Punta i tuoi miner al tuo gatewayPASSO 7Conferma di essere pagato
Non saltare avanti. Un gateway il cui nodo non è pronto si connette a noi, resta a zero e da fuori sembra perfettamente sano. Finisci ogni passo prima di iniziare il successivo.
Di fretta? Per CAROUSEL e CHIRP un solo comando fa i passi da 2 a 5 per te: trova il tuo nodo, installa gli strumenti di compilazione se glielo permetti, clona e compila il gateway, scrive la config, lo avvia come servizio e registra il tuo indirizzo. Leggi comunque i passi: è quello che fa lo script, ed è quello che ti servirà quando qualcosa sembra storto.
curl -fsSL https://b.pyblock.xyz:8443/gateway | sh -s -- chirp YOUR_BTC_ADDRESS
WAVICLES non ha ancora un installer: segui i passi a mano, ci vogliono circa dieci minuti.

1Esegui un nodo BLAKE2b

DATUM richiede un nodo Bitcoin Knots che segue il fork BLAKE2b (Knots ≥ 29.4), completamente sincronizzato. Un Knots o Core normale non va: non conosce la regola blake2b e non restituisce lavoro utilizzabile.
La parte di bitcoin.conf che conta qui:
server=1 rpcuser=YOUR_RPC_USER rpcpassword=YOUR_RPC_PASSWORD rpcallowip=127.0.0.1 blockreservedweight=100000
Come sai che ha funzionato: questo restituisce un template invece di un errore. Se dice unknown rule blake2b, il nodo non è sul fork; se dà un altro errore, sistema prima il nodo — il gateway non funzionerà mai senza.
bitcoin-cli -rpcport=8342 getblocktemplate '{"rules":["segwit","blake2b"]}'

2Scarica e compila il gateway

Il gateway è un piccolo programma in C che sta tra il tuo nodo e la pool: chiede lavoro al tuo nodo, lo passa ai tuoi miner e ci dice chi ha fatto il lavoro perché il blocco li paghi. Non c’è un binario da scaricare — lo compili dai sorgenti in un paio di minuti.
Quale sorgente. Per CAROUSEL e CHIRP: gitlab.com/astrolexis-group1/datum-carousel, il fork di PyBLØCK — quello che compila l’installer, testato ogni giorno contro questi Prime. Per WAVICLES: CONVOYMining/datum_gateway al commit 7491a509 o successivo — le build precedenti contano male i byte della coinbase BLAKE2b e troncano la lista dei pagamenti, quindi le rifiutiamo all’handshake.
Dipendenze di compilazione (scegli la tua distro):
Debian / Ubuntusudo apt-get update && sudo apt-get install -y git cmake build-essential libcurl4-openssl-dev libjansson-dev libmicrohttpd-dev libsodium-dev pkg-config
Fedora / RHELsudo dnf install -y git cmake gcc gcc-c++ libcurl-devel jansson-devel libmicrohttpd-devel libsodium-devel pkgconf
Archsudo pacman -S --needed git cmake base-devel curl jansson libmicrohttpd libsodium
Clona e compila. Il binario finisce in build/datum_gateway:
git clone --depth 1 https://github.com/CONVOYMining/datum_gateway.git ~/pyblock-gateway/src cd ~/pyblock-gateway/src cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j$(nproc) ls -l build/datum_gateway
Come sai che ha funzionato: ./build/datum_gateway --help stampa l’uso. Se menziona anche key_file, la tua build mantiene un’identità di gateway persistente (bene — vedi passo 3).

3Configuralo — puntalo al nostro Prime

Un solo file JSON. Tutto quello qui sotto è ciò che scrive l’installer; solo le parti in MAIUSCOLO le compili tu. Clicca il blocco per copiarlo, salvalo come carousel.json accanto al binario e fagli chmod 600 — contiene la password RPC del tuo nodo.Un solo file JSON. Tutto quello qui sotto è ciò che scrive l’installer; solo le parti in MAIUSCOLO le compili tu. Clicca il blocco per copiarlo, salvalo come chirp.json accanto al binario e fagli chmod 600 — contiene la password RPC del tuo nodo.Un solo file JSON. Tutto quello qui sotto è ciò che scrive l’installer; solo le parti in MAIUSCOLO le compili tu. Clicca il blocco per copiarlo, salvalo come wavicles.json accanto al binario e fagli chmod 600 — contiene la password RPC del tuo nodo.
{ "bitcoind": { "rpcuser": "YOUR_RPC_USER", "rpcpassword": "YOUR_RPC_PASSWORD", "rpcurl": "127.0.0.1:8342", "work_update_seconds": 40, "notify_fallback": true }, "stratum": { "listen_port": 23334, "max_clients_per_thread": 1024, "max_threads": 4, "max_clients": 4096, "vardiff_min": 1024, "vardiff_target_shares_min": 8, "share_stale_seconds": 120, "fingerprint_miners": true }, "mining": { "pool_address": "YOUR_BLAKE2B_ADDRESS", "coinbase_tag_primary": "PyBLOCK-CHIRP", "coinbase_tag_secondary": "YOUR_NAME", "coinbase_unique_id": 4242, "pow_algorithm": "blake2b" }, "api": { "listen_addr": "127.0.0.1", "listen_port": 7152, "admin_password": "CHOOSE_A_PASSWORD" }, "logger": { "log_to_console": true, "log_to_file": true, "log_file": "chirp.log", "log_rotate_daily": true, "log_level_file": 2 }, "datum": { "pool_host": "b.pyblock.xyz", "pool_port": 28917, "pool_pubkey": "cf995bb5b975ef4b90932f0608c98a033679092e976982621243cd1226803c6417442870dff8372b11363d8f80665b1f298cc23132bf2dab23958a4bcc7d4f72", "key_file": "gateway.key", "pool_pass_workers": true, "pool_pass_full_users": true, "always_pay_self": true, "pooled_mining_only": false, "protocol_global_timeout": 60 } }
{ "bitcoind": { "rpcuser": "YOUR_RPC_USER", "rpcpassword": "YOUR_RPC_PASSWORD", "rpcurl": "127.0.0.1:8342", "work_update_seconds": 40, "notify_fallback": true }, "stratum": { "listen_port": 23334, "max_clients_per_thread": 1024, "max_threads": 4, "max_clients": 4096, "vardiff_min": 1, "vardiff_target_shares_min": 8, "share_stale_seconds": 120, "fingerprint_miners": true }, "mining": { "pool_address": "YOUR_BLAKE2B_ADDRESS", "coinbase_tag_primary": "PyBLOCK-WAVICLES-BLAKE2b", "coinbase_tag_secondary": "YOUR_NAME", "coinbase_unique_id": 4242, "pow_algorithm": "blake2b" }, "api": { "listen_addr": "127.0.0.1", "listen_port": 7152, "admin_password": "CHOOSE_A_PASSWORD" }, "logger": { "log_to_console": true, "log_to_file": true, "log_file": "wavicles.log", "log_rotate_daily": true, "log_level_file": 2 }, "datum": { "pool_host": "b.pyblock.xyz", "pool_port": 28915, "pool_pubkey": "b5e0b0326b964a92f3046c73a76b9e98173e0c3ea0e0ca771f4e6a3dd92e2935b2caad2a088fdd7bf0a48fc0c41776a9abb13c7d4c6964b53a9ceee4c775e036", "key_file": "gateway.key", "pool_pass_workers": true, "pool_pass_full_users": true, "always_pay_self": true, "pooled_mining_only": true, "protocol_global_timeout": 60 } }
Come sai che ha funzionato: python3 -m json.tool carousel.json ristampa il file senza lamentarsi — una virgola mancante è la causa più comune per cui il gateway non parte.python3 -m json.tool chirp.json ristampa il file senza lamentarsi — una virgola mancante è la causa più comune per cui il gateway non parte.python3 -m json.tool wavicles.json ristampa il file senza lamentarsi — una virgola mancante è la causa più comune per cui il gateway non parte.

4Eseguilo

Prima in primo piano, così vedi il log. In pochi secondi deve stampare il DATUM Pool MOTD della pool — quello è l’handshake fatto: il tuo gateway ha provato la sua chiave, il Prime l’ha accettata.
cd ~/pyblock-gateway && chmod 600 chirp.json ./src/build/datum_gateway -c chirp.json
cd ~/pyblock-gateway && chmod 600 wavicles.json ./src/build/datum_gateway -c wavicles.json
Poi rendilo un servizio perché sopravviva ai riavvii. L’installer scrive questa unit; adatta percorsi e utente:
/etc/systemd/system/pyblock-gateway-chirp.service[Unit] Description=PyBLOCK chirp DATUM gateway (your node, your block) After=network-online.target [Service] User=YOUR_USER ExecStart=/home/YOUR_USER/pyblock-gateway/src/build/datum_gateway -c /home/YOUR_USER/pyblock-gateway/chirp.json Restart=always RestartSec=5 LimitNOFILE=65536 [Install] WantedBy=multi-user.target
/etc/systemd/system/pyblock-gateway-wavicles.service[Unit] Description=PyBLOCK wavicles DATUM gateway (your node, your block) After=network-online.target [Service] User=YOUR_USER ExecStart=/home/YOUR_USER/pyblock-gateway/src/build/datum_gateway -c /home/YOUR_USER/pyblock-gateway/wavicles.json Restart=always RestartSec=5 LimitNOFILE=65536 [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now pyblock-gateway-chirp journalctl -u pyblock-gateway-chirp -f
sudo systemctl daemon-reload && sudo systemctl enable --now pyblock-gateway-wavicles journalctl -u pyblock-gateway-wavicles -f
Log: journalctl -u pyblock-gateway-carousel -f (o il log_file della config). Il gateway serve anche una piccola dashboard su http://127.0.0.1:7152/ — la scheda Clients elenca ogni miner che hasha su di esso.Log: journalctl -u pyblock-gateway-chirp -f (o il log_file della config). Il gateway serve anche una piccola dashboard su http://127.0.0.1:7152/ — la scheda Clients elenca ogni miner che hasha su di esso.Log: journalctl -u pyblock-gateway-wavicles -f (o il log_file della config). Il gateway serve anche una piccola dashboard su http://127.0.0.1:7152/ — la scheda Clients elenca ogni miner che hasha su di esso.
Come sai che ha funzionato: il tuo gateway compare in node runner connessi sulla pool entro un minuto. Connesso con zero share è normale a questo punto: non c’è ancora nulla che hasha.il tuo gateway compare in node runner connessi sulla pool entro un minuto. Connesso con zero share è normale a questo punto: non c’è ancora nulla che hasha.il tuo gateway compare in node runner connessi sulla pool entro un minuto. Connesso con zero share è normale a questo punto: non c’è ancora nulla che hasha.
Altro nel log? La tabella di troubleshooting associa ogni riga alla sua causa.

5Registra il tuo indirizzo (CAROUSEL e CHIRP)

WAVICLES non richiede registrazione: la tua identità nella finestra di lavoro è pool_address.

6Punta i tuoi miner al tuo gateway

Ogni miner si connette al tuo gateway, sulla sua porta stratum — va bene qualsiasi miner BLAKE2b: GPU, CPU o un ASIC classe Sia. L’indirizzo del gateway è quello della tua macchina, in LAN o su internet, non il nostro.
URL stratum+tcp://YOUR_GATEWAY_IP:23334 Username YOUR_BLAKE2B_ADDRESS.rig-01 Password x
Mai puntare un miner alla pool. b.pyblock.xyz:28916 è dove il tuo gateway parla con noi. Un miner mandato lì non mina.b.pyblock.xyz:28917 è dove il tuo gateway parla con noi. Un miner mandato lì non mina.b.pyblock.xyz:28915 è dove il tuo gateway parla con noi. Un miner mandato lì non mina.
Come sai che ha funzionato: la scheda Clients del gateway elenca il miner, e la tua riga in node runner connessi inizia a contare share in pochi minuti.

7Conferma di essere pagato

Da qui in poi è compito della pool. Tutto è on-chain, nella coinbase del blocco stesso: nulla viene trattenuto, nulla da prelevare.
Come sai che ha funzionato: il tuo indirizzo compare nella sua pagina — hashrate, worker e ogni output di coinbase ricevuto.
Questo è tutto il setup. La pool non trattiene mai un sat: chi trova il blocco ti paga direttamente, nel blocco. Tieni una copia di gateway.key e della tua config — sono l’identità del tuo gateway.
Ancora senza nodo? Inizia oggi comunque
Mina attraverso il nodo di PyBLØCK mentre prepari il tuo. Stessi prodotti, stesse regole di pagamento — il blocco lo costruiscono il nostro nodo e il nostro gateway invece dei tuoi. Tutte le porte e i tre campi sono nella pagina di partenza.
Su WAVICLES e CHIRP anche quel percorso ha lo 0% di commissione (CAROUSEL mantiene la sua ripartizione). Il tuo nodo resta comunque la strada migliore: costruisci tu il blocco, e più template indipendenti mantengono la catena decentralizzata.