Come Creare un Nodo Bitcoin Lightning in Linux

Uno dei maggiori problemi nell’utilizzo di Bitcoin sono i lunghi tempi di transazione. Questo può essere frustrante per i nuovi utenti che si stanno avvicinando a questa valuta digitale. Uno dei modi più semplici per migliorare questo è utilizzare un livello di pagamento secondario come Bitcoin Lightning.
Bitcoin Lightning è un sistema che utilizza transazioni Bitcoin personalizzate per spostare rapidamente gli asset al di fuori del processo regolare della blockchain. In questo senso, Lightning è simile alla rete Tor, dove utilizza TCP/IP come sua spina dorsale per instradare connessioni anonime.
Indice dei Contenuti
- Perché Bitcoin è Lento?
- Come Funziona la Rete Lightning?
- Configurare il Proprio Nodo Bitcoin Lightning
- Domande Frequenti
Leggi anche: Come Gestire le Tue Finanze con la Modalità Ledger in Emacs
Bitcoin ti consente di scambiare facilmente denaro su Internet senza un’autorità centrale. Ogni transazione che effettui è diretta al beneficiario e la distribuisci su tutta la rete.
Perché Bitcoin è Lento?

Di conseguenza, qualsiasi pagamento che effettui all’interno di Bitcoin richiede tempo per essere completato e confermato. Ad esempio, una transazione Bitcoin normale richiede normalmente dai 10 ai 30 minuti per essere elaborata.
Come Funziona la Rete Lightning?
Alla sua base, Lightning funziona creando un pagamento “on-chain” che parcheggia un importo di Bitcoin al tuo nodo. Lightning utilizza quindi il tuo Bitcoin parcheggiato per creare un canale tra altri nodi Lightning.

Questo ti consente di creare ulteriori pagamenti “off-chain” tramite Lightning che non devono essere elaborati nella blockchain, riducendo significativamente il tempo di pagamento tra due utenti. Ad esempio, una transazione Lightning normale richiede solo circa un secondo per essere elaborata.
Leggi anche: Come Risolvere l’Alto Utilizzo della CPU in Linux
Configurare il Proprio Nodo Bitcoin Lightning
Per iniziare con Lightning, è utile avere il proprio nodo personale. Simile alla configurazione di un nodo Bitcoin, un nodo Lightning ti consente di avere il pieno controllo sulle tue transazioni nella sua rete.
Per avviare l’installazione, è necessario avere a disposizione e pronti un certo numero di risorse:
- Macchina con una quantità decente di spazio di archiviazione e memoria. Nel mio caso, sto utilizzando un vecchio desktop Dell Optiplex con 1TB di spazio di archiviazione e 2GB di RAM.
- Connessione Internet costante, poiché un nodo Lightning deve comunicare regolarmente con altri nodi per mantenere il suo stato.
- Piccola quantità di Bitcoin che puoi utilizzare per “finanziare” il tuo nodo Lightning.
Tenendo conto di questi fattori, questo tutorial si concentra sull’installazione di c-lightning su una macchina Ubuntu 22.04.1 LTS.
Ottenere le Dipendenze
Il primo passo per installare c-lightning è creare un nuovo account utente per garantire che eventuali file e impostazioni per il tuo nodo siano separati dal tuo utente principale:
sudo useradd -s/bin/bash-d/home/lightning -m-Gsudo lightning
sudopasswd lightning
Passa a questo nuovo utente eseguendo: su lightning, quindi aggiungi un repository di terze parti che conterrà tutti i programmi per il funzionamento di c-lightning:
sudo add-apt-repository -u ppa:lightningnetwork/ppaInstalla le dipendenze del nodo:
sudo apt install software-properties-common lightningd snapd
Leggi anche: 4 Modi per Aumentare la Durata della Batteria del Tuo Laptop Linux
Configurare un Semplice Nodo Bitcoin
Da qui, è necessario installare e configurare un semplice nodo Bitcoin. Come discusso sopra, Lightning è una rete overlay che funziona utilizzando transazioni Bitcoin personalizzate per creare “fond channels”.
Per creare questi canali, il tuo nodo Lightning deve funzionare insieme a un semplice nodo Bitcoin che può essere installato eseguendo il seguente comando:
sudo snap install bitcoin-core
Crea un collegamento simbolico tra la tua directory “snap” radice e la cartella “bin”:
sudoln-s/snap/bitcoin-core/current/bin/bitcoin{d,-cli}/usr/local/bin/Avvia il Download del Blocco Iniziale per il tuo nodo Bitcoin:
bitcoind -daemonQuesto comando invierà il nodo in background per scaricare e verificare l’intera blockchain di Bitcoin. Puoi controllare i suoi progressi eseguendo il seguente comando:
tail-f/home/$USER/.bitcoin/debug.log
È importante notare che questo processo può richiedere da alcune ore a pochi giorni. Ad esempio, il mio desktop Dell Optiplex ha impiegato 5 giorni per sincronizzarsi completamente con la rete Bitcoin.
Configurare il Tuo Semplice Nodo Bitcoin
Una volta che il tuo nodo è sincronizzato con la rete, assicurati che sia compatibile con Lightning fermando prima il nodo Bitcoin:
bitcoind stopModifica il suo file di configurazione sotto “/etc/bitcoin.conf”:
nano/home/$USER/.bitcoin/bitcoin.conf
Disabilita due opzioni: walletbroadcast e prune. La prima opzione dice al tuo nodo Bitcoin di utilizzare solo i suoi dati con Lightning, e la seconda opzione garantisce che stai salvando l’intera blockchain sul tuo disco rigido.
walletbroadcast=0
prune=0Riavvia il tuo nodo Bitcoin eseguendo il seguente comando:
bitcoind -daemonAvviare il Tuo Nodo Bitcoin Lightning
Avvia il tuo nodo Lightning eseguendo il seguente comando:
lightningd --network=bitcoin --log-level=debug --daemon
Questo comando invierà il nodo in background e creerà i suoi file di configurazione sotto “/home/$USER/.lightning.” Testa se il tuo nodo Lightning sta funzionando correttamente con questo comando:
lightning-cli --lightning-dir=$HOME/.lightning getinfo
Leggi anche: I Migliori Strumenti Open Source per Sicurezza del Tuo Server Linux
Finalizzare il Tuo Nodo Bitcoin Lightning
Con c-lightning in esecuzione, puoi finalizzare il tuo nodo creando i “fond channels” tra diversi peer Lightning. Come discusso sopra, un “fond channel” è una transazione Bitcoin personalizzata che ti consente di spostare il tuo Bitcoin senza impegnarti nella blockchain.
Per creare questo, prima “deposita” Bitcoin nel tuo nodo Lightning generando un indirizzo di ricezione per il tuo nodo con il seguente comando:
lightning-cli newaddr
Vai a un portafoglio esterno e invia Bitcoin a quell’indirizzo di ricezione. Nel mio caso, invierò 0.00050000 BTC utilizzando il mio portafoglio Bitcoin Core.

Una volta che la transazione è nella blockchain, il tuo nodo Lightning aggiornerà automaticamente il suo saldo di fondi. Visualizza questo eseguendo il seguente comando:
lightning-cli listfundsPeering con Nodi Bitcoin Lightning Remoti
Inizia a connettere il tuo nodo ai suoi peer nella rete per consentirti di inviare e ricevere Bitcoin tramite Lightning.
Per iniziare, trova sia la sua chiave pubblica che l’indirizzo IP. Simile all’utilizzo della crittografia PGP, questo ti consente di connetterti e verificare l’autenticità di un nodo tramite crittografia a chiave pubblica.
Uno degli strumenti più comuni per farlo è 1ML: un sito web che elenca tutti i nodi Lightning attivi nella rete.

Una volta che hai un nodo attivo, utilizza il comando lightning-connect per stabilire una richiesta di peer. Ad esempio, questo comando collegherà il mio nodo a ACINQ:
lightning-cli connect 1 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f 3.33.236.230- Il primo valore indica il numero di slot che desideri assegnare al peer corrente. Per questo nodo, sto usando lo slot 1.
- Il secondo valore è la chiave pubblica del nodo remoto. In questo caso, sto usando la chiave pubblica di ACINQ.
- Il terzo valore è l’indirizzo IP pubblico del nodo remoto.
Per finalizzare la richiesta, invia parte del saldo Bitcoin del tuo nodo al nodo remoto per creare un “fond channel” tra te e un nodo peer.
Ad esempio, questo comando creerà un “fond channel” per 0.00030000 BTC al primo peer nella mia lista:
lightning-cli fundchannel 130000
Inviare e Ricevere Pagamenti Lightning
Con un “fond channel” attivo in esecuzione, utilizza il tuo nodo per inviare e ricevere pagamenti. Per impostazione predefinita, Lightning utilizza il formato BOLT11 che inizia con “lnbc” per differenziarlo da Bitcoin.
Per inviare Bitcoin tramite Lightning, devi conoscere l’indirizzo BOLT11 del tuo destinatario. Ad esempio, il seguente comando invia 0.00005000 BTC a un indirizzo remoto:
lightning-cli pay lnbc20m1[...]qdhhwkj 50000
Puoi anche ricevere Bitcoin tramite Lightning utilizzando il comando invoice e specificare l’importo esatto di Bitcoin che desideri ricevere. Ad esempio, questo comando crea una fattura per 0.00010000 BTC:
lightning-cli invoice 100000
Leggi anche: Come Trovare File Grandi in Linux
Domande Frequenti
Sto utilizzando Dojo come mio nodo Bitcoin. È possibile utilizzarlo con c-lightning?
No. Per impostazione predefinita, Dojo è un programma che utilizza contenitori Docker per eseguire un’istanza sandbox di Bitcoin Core. Un nodo Bitcoin Dojo non sarà in grado di comunicare con alcun programma al di fuori del suo contenitore sandbox.
Il mio portafoglio non supporta un indirizzo “bc1”. È ancora possibile depositare nel mio nodo Lightning?
Sì! Anche se c-lightning genera nativamente in un formato di indirizzo “bc1”, è possibile trasferire Bitcoin a un nodo Lightning utilizzando il formato P2SH più vecchio. Per fare ciò, esegui il seguente comando: lightning-cli newaddr p2sh-segwit.
Il mio pagamento Lightning occasionalmente fallisce. Il mio nodo è rotto?
No! Questo problema è molto probabilmente dovuto a una mancanza di connessioni tra il tuo nodo e il destinatario. La rete Lightning, per design, si basa sul fatto che ogni nodo parli costantemente e direttamente con gli altri.
Un modo per risolvere questo problema è aumentare il numero di peer e “fond channels” a cui il tuo nodo locale si connette. Ad esempio, avere almeno due o tre peer attivi ti consentirà di connetterti a quasi qualsiasi utente Lightning.
Crediti Immagine: Unsplash e Wikimedia Commons. Tutte le modifiche e gli screenshot sono di Ramces Red.