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.
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 -- carousel YOUR_BTC_ADDRESS
curl -fsSL https://b.pyblock.xyz:8443/gateway | sh -s -- chirp YOUR_BTC_ADDRESS
Variabili utili: PYBLOCK_CLI="bitcoin-cli -datadir=/data" se il nodo non viene rilevato · PYBLOCK_STRATUM=23334 la porta che useranno i tuoi miner · PYBLOCK_INSTALL_DEPS=1 lascia installare le dipendenze · PYBLOCK_NO_SYSTEMD=1 esegui con nohup invece del servizio.
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.
Completamente sincronizzato. Un nodo ancora in recupero non restituisce template.
RPC raggiungibile da dove gira il gateway — stessa macchina o la tua LAN — con rpcuser/rpcpassword o il file cookie.
blockreservedweight=100000. Senza, il template può non lasciare spazio per gli output di pagamento e il blocco paga solo la pool.
Il tuo nodo, le tue regole. Quali transazioni entrano nei tuoi blocchi lo decide la policy della mempool del tuo nodo, non noi. I nostri gateway usano Plumb (Knots con filtri aggiuntivi sui dati, compilato da noi dal tag firmato); il tuo gateway usa il nodo a cui lo colleghi.
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.
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):
Clona e compila. Il binario finisce in build/datum_gateway:
git clone --depth 1 https://gitlab.com/astrolexis-group1/datum-carousel.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
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 — utente, password e host:porta RPC del tuo nodo (i nodi BLAKE2b di solito ascoltano su 8342). Va bene anche un file cookie: utente e password sono le due metà di .cookie.
stratum.listen_port — la porta a cui si connettono i tuoi miner (qui 23334). vardiff_min è il pavimento delle share: 1 per GPU / CPU, 1024 o più se hasheranno solo ASIC — il default di DATUM, 16384, è scala SHA-256 e una GPU BLAKE2b non ci arriva mai.
mining.pool_address — il tuo indirizzo BLAKE2b. Obbligatorio: con uno non valido il gateway esce in meno di un secondo. È dove viene pagata la tua quota da node-runner, e incassa per intero qualsiasi blocco tu trovi mentre la pool è irraggiungibile.
coinbase_tag_secondary — il tuo nome. Va on-chain nello scriptsig di ogni blocco pubblicato dal tuo gateway.
datum — il nostro Prime: pool_host b.pyblock.xyz, pool_port28916 e la pool_pubkey di 128 hex qui sopra. pool_pass_full_users: true accredita ogni miner all’indirizzo con cui si logga. key_file mantiene la stessa identità del gateway tra i riavvii — la pool accredita il node-runner per quella chiave; togli la riga solo se la tua build non la supporta.datum — il nostro Prime: pool_host b.pyblock.xyz, pool_port28917 e la pool_pubkey di 128 hex qui sopra. pool_pass_full_users: true accredita ogni miner all’indirizzo con cui si logga. key_file mantiene la stessa identità del gateway tra i riavvii — la pool accredita il node-runner per quella chiave; togli la riga solo se la tua build non la supporta.datum — il nostro Prime: pool_host b.pyblock.xyz, pool_port28915 e la pool_pubkey di 128 hex qui sopra. pool_pass_full_users: true accredita ogni miner all’indirizzo con cui si logga. key_file mantiene la stessa identità del gateway tra i riavvii — la pool accredita il node-runner per quella chiave; togli la riga solo se la tua build non la supporta.
pooled_mining_only — cosa succede se la pool è irraggiungibile. false: il gateway continua a minare e qualsiasi blocco trovato paga il 100% a pool_address. true: aspetta la pool.
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 carousel.json
./src/build/datum_gateway -c carousel.json
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-carousel.service[Unit]
Description=PyBLOCK carousel 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/carousel.json
Restart=always
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
/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
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.
Su questi due Prime la quota del node-runner viene accreditata alla chiave del gateway, quindi la pool deve sapere a quale indirizzo paga quella chiave. L’installer lo fa per te; a mano sono due richieste dalla macchina che esegue il gateway (la registrazione è accettata solo dallo stesso IP da cui il gateway è connesso — è ciò che impedisce a chiunque altro di reclamare la tua chiave).
1 · Chiedi alla pool quale chiave di gateway vede dal tuo IP:
Come sai che ha funzionato: la risposta dice "ok": true. Rieseguirlo con lo stesso indirizzo è innocuo; cambiare un indirizzo già registrato si fa a mano — chiedi su Telegram.
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
Username = un indirizzo BLAKE2b (bc1q… o 1…), un nome worker dopo il punto va bene. Con pool_pass_full_users: true quello è l’indirizzo a cui viene pagato ogni miner.
Password: x. Viene ignorata.
Il gateway non controlla lo username. Lo inoltra com’è scritto; noi rifiutiamo tutto ciò che non è un indirizzo pagabile, e la quota di quel miner cade su pool_address.
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.
CAROUSEL: quando il tuo gateway pubblica un blocco, chi lo trova tiene il 99% e PyBLØCK prende il 1% — con il tuo nodo non c’è una quota separata da node-runner, è tutta tua. Fino ad allora non guadagni nulla: solo è solo.
CHIRP: ogni blocco trovato da qualsiasi membro paga tutti i membri idonei per posizione (7 giorni di anzianità + potenza 24h) — 100% al sindacato, 0% PyBLØCK. I tuoi miner entrano nel registro con la prima share accettata.
WAVICLES: ogni blocco paga tutta la finestra di lavoro (8 × difficoltà di rete) in base al lavoro svolto — 100% alla finestra, 0% PyBLØCK. Minimo 1.000 sats accumulati; sotto, la tua quota è distribuita tra i miner che lo superano, mai alla pool.
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.