Vai al contenuto
buybitcoinsmart

Glossario / Nodi e software

Regtest

Noto anche come Modalità test di regressione.

Che cos'è Regtest?
Regtest è una rete Bitcoin privata che gira sulla tua macchina, dove mini i blocchi su comando invece di aspettare che li produca qualcun altro.

Qui nulla è condiviso con nessuno. La catena inizia dal proprio blocco genesi, la difficoltà di mining resta al valore più basso consentito dal software e un solo comando può produrre cento blocchi in meno di un secondo. È qui che il wallet software, i processori di pagamento e le implementazioni Lightning vengono testati prima che qualcuno di essi tocchi del denaro.

Come funziona

Avviare bitcoind con l'opzione regtest crea una catena senza peer e senza cronologia.

Non ci sono seed DNS per questa rete e nessun nodo predefinito a cui collegarsi, quindi, a meno che tu non avvii una seconda istanza e la colleghi manualmente, sei solo sulla tua blockchain. Il daemon ascolta sulla porta 18444 per i peer e sulla 18443 per le chiamate RPC, conserva i dati in una directory regtest separata e assegna indirizzi con il prefisso bcrt1, così non c'è alcuna possibilità di confonderli con qualcosa di valore.

I blocchi compaiono quando li chiedi. Il comando generatetoaddress mina verso un indirizzo che indichi, e la prima mossa abituale è minare 101 blocchi anziché 1, perché un output coinbase non si può spendere finché non ci sono altri 100 blocchi sopra di esso. Solo quando esiste il 101º blocco hai un bitcoin spendibile con cui costruire il resto del tuo test.

Altri due parametri sono volutamente diversi dalla mainnet. Regtest parte con lo stesso sussidio di 50 BTC, ma lo dimezza ogni 150 blocchi invece che ogni 210.000, quindi una sessione che mina qualche migliaio di blocchi porterà la ricompensa a zero e e non potrai più versare fondi su nulla di nuovo. E poiché il limite minimo di difficoltà è così basso, le riorganizzazioni si possono creare senza costi: invalidateblock riporta la catena indietro da qualsiasi blocco tu scelga e reconsiderblock la rimette a posto, che è l'unico modo pratico per osservare cosa fa una riorganizzazione di sei blocchi al saldo di un wallet.

Dove lo vedi

Regtest è la rete su cui gira la suite di test di bitcoin stesso.

I test funzionali di Bitcoin Core avviano nodi regtest, li fanno passare attraverso scenari e poi li smontano, ed è così che le modifiche al software vengono verificate prima del rilascio. Core Lightning e LND fanno lo stesso per la logica dei canali, e Polar dà a questo flusso di lavoro un'interfaccia grafica, così puoi creare una piccola rete Lightning sul tuo portatile in pochi clic. BTCPay Server include uno stack di sviluppo regtest per la stessa ragione: nessuno dovrebbe scoprire un bug del checkout con il pagamento di un cliente.

Se stai integrando pagamenti in bitcoin in un sito web, è qui che vanno i primi cento pagamenti. Gestisci esattamente i tempi di conferma, puoi simulare una transazione bloccata o un aumento di commissione senza pagare né l'una né l'altro, e puoi provare la riorganizzazione che altrimenti sarebbe una sorpresa una volta all'anno.

Come persona che compra o conserva bitcoin, non ti collegherai mai a regtest di proposito, ma conoscere il nome ha il suo valore. Un indirizzo che inizia con bcrt1 non è un indirizzo bitcoin, e qualsiasi wallet che te ne mostri uno è stato impostato su una catena privata che non esiste in nessun altro posto se non nella macchina davanti a te.

Da non confondere con

Domande frequenti

Perché i tutorial su regtest minano sempre 101 blocchi?

Perché gli output coinbase richiedono 100 conferme prima di poter essere spesi. Minare 101 blocchi rende spendibile la ricompensa del primo blocco, che è il numero più piccolo che ti lascia con bitcoin utilizzabili.

I bitcoin di regtest possono mai valere qualcosa?

No. La catena esiste solo sulla tua macchina, ha il proprio blocco genesi e non condivide alcuna cronologia con bitcoin. I suoi indirizzi iniziano con bcrt1, che nessun wallet o exchange reale accetterà.

Termini correlati

Altro in Nodi e software

Leggi questa pagina in inglese