Questa guida vuole essere d’aiuto a tutti quelli che vogliono installare un EPS (electrum personal server) collegato al proprio nodo, premetto che la seguente è una semplice traduzione dall’inglese della guida già creata da DriftwoodPalace su Github.
L’ Electrum Personal Server collegherà il tuo fullnode Bitcoin a Electrum. Ciò consentirà di utilizzare tutte le funzionalità di Electrum (supporto Hardware Wallet, facile configurazione multi-sig e altro), pur convalidando e trasmettendo tutto con il proprio fullnode, ciò consentirà di aumentare la privacy.
Prima di iniziare, assicurati di avere un fullnode Bitcoin Core avviato e sincronizzato. In caso contrario, vedi Installa e ottimizza Bitcoin Core.
È inoltre necessario Electrum. Controlla sempre le firme digitali prima dell’installazione, maggiori informazioni su come qui.
Scarica il pacchetto di installazione del EPS
Vai su https://github.com/chris-belcher/electrum-personal-server e leggi l’introduzione (prima di How To) per sapere di cosa si tratta e perché è importante. Prima di installare qualsiasi cosa è necessario verificare i download. Per fare questo abbiamo bisogno della signatures key di Chris Belchers. Può essere trovata qui.
Nella pagina, fai clic su “raw”:
Utilizzare Cmd+S
e salvare la chiave in una cartella sul computer (non modificare l'estensione del file).
Quindi, vai alla pagina delle release e scarica l’ultimo Source code
( electrum-personal-server-eps-v0.2.0.zip
) e il .asc
file corrispondente (necessario per verificare il file scaricato, in questo esempio eps-v0.2.0.zip.asc
). Per la versione 0.2.0 quindi dovrai scaricare i seguenti file come evidenziati nell’immagine (nel caso tu legga questa guida a mesi o anni di distanza le versioni possono cambiare, ovviamente devi scaricare i file relativi all’ultima release dell’eps):
Metti i file nella stessa cartella in cui è stata salvata la signature key di Chris Belchers.
Per verificare la firma, abbiamo bisogno di Gpg Suite. Se non lo hai già installato, vai su https://gpgtools.org/ , scarica e installa la versione più recente. Se hai problemi con GPGTools, potresti provare un’altra alternativa da questo elenco https://www.gnupg.org/download/index.en.html#binary .
Apriamo una nuova finestra del terminale. Fai clic sull’icona di Spotlight (lente d’ingrandimento) nella barra dei menu e digita “terminale”. Seleziona l’applicazione Terminale dai risultati della ricerca.
Cambia la directory nella directory in cui si trovano i file scaricati. Se hai inserito i file in “download”, digita quanto segue (tutto dopo $
) sul terminale (nota per tastiera italiana, se non sai come digitare la Tilde = ~, ti basterà usare la combinazione di tasti ALT + 5).
$ cd ~/downloads
Quindi, importa la chiave di firma di Belchers nella tua directory locale:
> gpg --import belcher.asc
Ora possiamo verificare il download digitando (se hai scaricato un’altra versione, modifica i nomi dei file):
> gpg --verify eps-v0.2.0.zip.asc electrum-personal-server-eps-v0.2.0.zip
L’output dovrebbe coincidere con qualcosa di simile a questo:
gpg: Signature made 12/05/19 10:50:36 W. Europe Standard Time
gpg: using RSA key EF734EA677F31129
gpg: Good signature from "Chris Belcher <false@email.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 0A8B 038F 5E10 CC27 89BF CFFF EF73 4EA6 77F3 1129
In queste righe possiamo vedere che la firma è stata fatta in una data prossima al rilascio, Good signature
indica che la firma è corretta e l'impronta digitale (fingerprint) della chiave primaria è la stessa di Github. Possiamo controllare facendo una ricerca online per vedere se la fingerprint sia corretta. Facendo questa ricerca avrai conferma da varie fonti che la chiave appartiene effettivamente a Chris Belcher. Se hai un'impronta fingerprint o una firma non valida, fermati e ricontrolla di aver fatto tutto correttamente, se le firma appare come non valida puoi aprire un “issue” direttamente sulla pagina di Github di Chris Belcher
Ora non ti resta che scompattare il file electrum-personal-server-eps-v0.2.0.zip
e se vuoi puoi spostarlo in una cartella a tuo piacimento fuori dalla directory download, in questo caso ricordati che i comandi durante la procedura d’installazione dovranno essere adattati alla cartella dove hai spostato electrum-personal-server-eps-v0.2.0
Cambiare il file di configurazione
Apri la cartella electrum-personal-server-eps-v0.2.0 e crea una copia del file config.ini_sample
e rinomina la copia in config.ini
.
Nota: dovrai confermare di modificare l’estensione del file da .ini_sample
a.ini
Apri config.ini
con un editor di testo (esempio TextEdit). Se stai eseguendo l'aggiornamento a una nuova versione, copia semplicemente le informazioni necessarie da un vecchio file config.ini a quello nuovo (sono state apportate alcune modifiche al file, quindi copia solo ciò che è necessario).
Per portafogli multi-sig
Per importare un portafoglio multi-sig, apri il portafoglio in Electrum. Vai a Portafogli> Informazioni (Wallet>Information
) e copia la chiave pubblica principale del cosigner 1.
Nel file config.ini, crea una nuova linea e dai un nome al portafoglio. Se si utilizza un multi-sig 2 su 3, digitare 2
(firme richieste) dopo il nome. Quindi incollare la chiave del cosigner 1. Torna a Electrum, copia la chiave per il cosigner 2 e incolla dopo il cosigner 1 chiave (sulla stessa riga),torna a Electrum e copia e incolla la chiave per il cosigner 3. La riga dovrebbe apparire così (ma con le tue 3 chiavi):
my_multisig_wallet = 2 Zpub661MyMwA... Zpub6AMQ6ZPNa6... Zpub6A2po6ffdf...
Puoi cambiare il nome “my_multisig_wallet” se vuoi.
Nota: questo sta memorizzando le tue chiavi pubbliche principali in chiaro sul computer. Chiunque ottenga queste informazioni potrebbe ricavare tutti i tuoi indirizzi bitcoin (i tuoi fondi non sono a rischio, ma chiunque disponga di tali dati sarà in grado di vedere il tuo saldo).
Portafoglio singolo
Se vuoi aggiungere un singolo portafoglio, ad esempio con una chiave da un portafoglio hardware. Seguire la stessa procedura. Apri il portafoglio in Electrum e vai su Portafogli> Informazioni e copia la chiave pubblica principale. Scegli un nome e incollalo nel file config.ini. Per esempio:
Hw_wallet1 = xpubkg4QUp5XpUdNf2uGXvQmnD4zcofZ1MN6Fo8PjqQ…
Resto del file config.ini
Se hai spostato la directory dei dati Bitcoin (dove sono memorizzati i tuoi blocchi e chainstate) devi aggiungere quella directory alla linea datadir
(potresti doverlo aggiungere anche se usi la posizione predefinita, le posizioni predefinite possono essere trovate qui). Ad esempio:
datadir = D:\Bitcoin
Puoi utilizzare la verifica RPC predefinita per Bitcoin Core. In tal caso Bitcoin Core crea un file cookie per te e non devi aggiungere altro a config.ini
Un’altra alternativa è utilizzare rpcauth
(nome utente + password con hash) con Bitcoin Core. Ciò può essere necessario per il funzionamento di applicazioni come ligntining network. Se lo stai utilizzando, devi aggiungere quella riga a config.ini
.
rpcauth = <user>:some-hash-string
Cambia il file bitcoin.conf
Dobbiamo aggiungere la linea server=1
al nostro file di configurazione Bitcoin affinché Bitcoin Core accetti le connessioni da Electrum Personal Server. Se non sei sicuro di avere un file di configurazione o meno, apri Bitcoin Core e vai a Settings>Options
e seleziona Open Configuration File
nella scheda principale. Ciò dovrebbe creare un nuovo file nella directory giusta o aprire il file esistente. Se venisse restituito un errore ad esempio “il file di configurazione non può essere aperto” crea tu stesso nella cartella dove hai installato Bitcoin Core un file bitcoin.conf.
A questo punto apri il file con un editor di testo (esempio TextEdit) e inserisci:
server= 1
su una nuova linea (questo accenderà il server RPC).
Se stai usando rpcauth, aggiungilo anche a una nuova riga. Se stai usando EPS su una macchina diversa da dove gira il tuo nodo Bitcoin Core (ma nella stessa LAN), potresti dover aggiungere rpcallowip=<IP of PC with Electrum Personal Server>
e rpcbind=<IP of Bitcoin Core node>
. In questo caso il file dovrebbe apparire così:
server = 1
rpcallowip=<IP of PC with Electrum Personal Server>
rpcbind=<IP of Bitcoin Core node>
rpcauth = <user>:some-hash-string
Il portafoglio in Bitcoin Core deve essere abilitato. Quindi, assicurarsi che disablewallet
non sia presente nel file di configurazione. Salva e chiudi il file. Perché le impostazioni abbiano effetto, è necessario riavviare Bitcoin Core.
Installa con Python
Aggiornamento a una nuova versione
Se esegui l’aggiornamento da una versione precedente, dovrai disinstallare la versione precedente. Fallo digitando sudo pip3 uninstall electrum-personal-server
sul terminale. Una volta disinstallato procedi ad una nuova installazione come di seguito.
Esecuzione dell’installazione
Abbiamo bisogno di Python3 per installare il server. Controlla se è installato digitando sul terminale:
$ sudo python3 --version
Se è installato Python 3, dovrebbe fornire un output con la versione simile Python 3.8.0
. Altrimenti vai su https://www.python.org/downloads/ e scarica e installa l'ultima versione.
Utilizzeremo pip
per installare l’EPS. Dovrebbe essere installato con Python, ma assicurati di avere l'ultima versione eseguendo questa nel Terminale:
$ sudo pip3 install --upgrade pip
Ora vai nella cartella dove hai scompattato electrum-personal-server. Se si trova ancora in “Download” (assicurati di cambiare il nome nel comando se usi una versione più recente) il comando sarà il seguente:
$ cd ~/downloads/electrum-personal-server-eps-v0.2.0
Se ad esempio l’hai spostata e ora si trova sul tuo desktop il comando sarà il seguente:
$ cd ~/Desktop/electrum-personal-server-eps-v0.2.0
Se invece l’hai spostata nella home directory ovvero quella del tuo utente (d’ora in poi quando useremo comandi che richiamano la cartella di electrum-personal-server-eps-v0.2.0 prendiamo in considerazione che tale cartella sia nella directory di home, quindi dovrai riadattare i comandi se la cartella si trova in un altro posto) il comando sarà questo:
$ cd ~/electrum-personal-server-eps-v0.2.0
Quindi utilizzare il comando:
$ sudo pip3 install --user .
Per installare il server personale Electrum.
Risoluzione dei problemi 1
Se ti compaiono degli errori, assicurati di avere installato l’ultima versione di Python e Pip.
Se si ottiene un DistutilsError
durante l'installazione del server, è possibile che non siano installate tutte le dipendenze. Controlla l'ultima riga nel messaggio di errore, dovrebbe assomigliare a qualcosa del genere Could not find suitable distribution for Requirement.parse('pytest-runner')
. In tal caso, è necessario installare pytest-runner
.
Fai questo andando al terminale e digita il comando:
$ sudo pip3 install pytest-runner
Quindi ripetere il comando:
$ sudo pip3 install --user .
Avvio del server
Se tutto è stato installato senza errori, dovresti avere due script; electrum-personal-server
e electrum-personal-server-rescan
in una cartella Python sul tuo computer. La posizione predefinita per gli script dovrebbe essere ~/Library/Python/3.8/bin
.
Per arrivare a questa cartella vai sul Finder e nel menù in altoVai>Vai alla cartella...
copia il percorso ~/Library/Python/3.8/bin
e assicurati che gli script siano creati. Se hai usato Python 3.7 cambia da 3.8 a 3.7. Se si desidera navigare manualmente nella cartella, potrebbe essere necessario mostrare cartelle nascoste per trovarla.
Ora creeremo un semplice script per automatizzare l’avvio del server.
È necessario il percorso del file electrum-personal-server
e del file config.ini
modificato in precedenza nella cartella decompressa. Posizioneremo lo script sul desktop, puoi posizionarlo lì per ora e spostarlo in seguito, se lo desideri.
Crea un nuovo file di testo con TextEdit e incolla i percorsi del file uno dopo l’altro. Se usi python 3.8 e il file decompresso di electrum-personal-server-eps-v0.2.0 si trova nella tua home directory, la linea dovrebbe essere così:
~/Library/Python/3.8/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.2.0/config.ini
Prima di salvare, vai nel menù “formato” e clicca su Converti in formato solo testo
dopodiché salva il file, se non viene fornita alcuna estensione, usa '.txt'. Quindi salva il file con il nomeeps
e dal menù a tendina sotto “codifica solo testo” seleziona Unicode (UTF-8) se non è già selezionato di default.
Ora dobbiamo rendere eseguibile il file appena creato, per prima cosa elimina l’estensione .txt (ti basterà rinominare il file) e sul terminale scrivi il seguente comando (il file come detto si deve trovare sul desktop, in caso contrario modifica il comando con la directory corretta):
chmod 700 ~/desktop/eps
Ciò dovrebbe rendere eseguibile il file. Torna sul desktop e fai doppio clic sul file. Electrum Server ora dovrebbe avviare e importare gli indirizzi dalle chiavi pubbliche principali definite in config.ini come indirizzi “watch only” nel nodo Bitcoin Core. Attendiamo il completamento dell’importazione.
Risoluzione dei problemi 2
Se ricevi un messaggio di errore come questo:
Traceback (most recent call last):
File "/Users/me/Library/Python/3.8/bin/electrum-personal-server", line 5, in <module>
from electrumpersonalserver.server.common import main
ModuleNotFoundError: No module named 'electrumpersonalserver'
Probabilmente il tuo utente non dispone dell’autorizzazione per accedere in lettura alla cartella ~/Library/Python/3.8/lib/python/site-packages/
(cambiare 3.8
se si utilizza un'altra versione). Assicurati che il tuo utente sia abilitato alla lettura di quella cartella (se non sai come fare fai riferimento a questa guida come modificare i permessi). Se il problema persiste, assicurati che anche l'utente sia abilitato a leggere e scrivere la cartella ~/Library/Python/3.8/bin/electrum-personal-server
. Se il problema non si risolve, prova ad aggiornare a Python 3.8 se utilizzi una versione precedente.
Se ricevi un messaggio di errore come questo:
WARNING:2019-02-27 09:32:22,102: Unable to find .cookie file, try setting `datadir` config
Potrebbe essere necessario utilizzare rpcauth
o modificare datadir
il percorso corretto e assicurarsi che Bitcoin Core sia in esecuzione.
Se ricevi un errore con qualcosa del tipo:
Error with bitcoin json-rpc
Ciò significa che il server non può connettersi al nodo completo Bitcoin Core. Questo è probabilmente un problema con uno dei file di configurazione (o config.ini
o bitcoin.conf
).
Di seguito riporto una copia di un fileconfig.ini
standard (tutti i commenti #
in questo file vengono rimossi per motivi di leggibilità, può essere una buona idea conservarli)
[master-public-keys]
multisig_wallet = 2 xpub661MyMwAqRbcEYS8w7XLSVeEsBXy79zSzH1J8vCdxAZningWLdN3zgtU6LBpB85b3D2yc8sfvZU521AAwdZafEz7mnzBBsz4wKY5e4cp9LB xpub127pc4e5YKw4zsBBznm7zEfaZdwAA125UZvfs8cy2D3b58BpBL6Utgz3NdLWgninZAxdCv8J1HzSz97yXBsEeVSLX7w8SYEcbRqAwMyM9LB xpub7g5pc4e5YKwBL9MyMwAqRbcEYS8w7XLSVeEsBXy79zSzH1J8vCdxAZningWLdN3zgtU6LBpB85b3D2yc8sfvZU521AAwdZafEz7mnzBBsz4wKY5e4cp9LB
[watch-only-addresses][bitcoin-rpc]
host = 127.0.0.1
port = 8332
datadir = ~/Library/Application Support/Bitcoin/wallet_filename =
poll_interval_listening = 30
poll_interval_connected = 5
initial_import_count = 1000
gap_limit = 25[electrum-server]
host = 127.0.0.1
port = 50002
ip_whitelist = *
certfile = certs/cert.crt
keyfile = certs/cert.key
Qui invece ti ricordo cosa deve essere incluso nel file di configurazione di Bitcoin Corebitcoin.conf
(puoi avere anche altre impostazioni, questo è ciò che è importante perchè l’EPS funzioni):
server=1
Ricorda che è necessario riavviare Bitcoin Core affinché le modifiche bitcoin.conf
abbiano effetto.
Un altro controllo che puoi fare è controllare di non avere più file bitcoin.conf (nella posizione predefinita e nella nuova posizione se hai spostato l’installazione).
Puoi anche provare a cambiare il metodo di autenticazione. Se usi rpcuser e rpcpassword prova il metodo cookie o viceversa.
Avvia il server
Al termine dell’importazione, Electrum Personal Server verrà chiuso. Se usi un vecchio portafoglio da cui vuoi importare vecchie transazioni, devi ripetere la scansione della blockchain Bitcoin. Puoi farlo eseguendo il seguente comando nel terminale (assicurati di cambiare i percorsi se i tuoi file si trovano in altre posizioni):
~/Library/Python/3.8/bin/electrum-personal-server-rescan ~/electrum-personal-server-eps-v0.2.0/config.ini
NB: con le nuove versioni lo script di rescan non viene più creato per lanciare il rescan basta inserire il seguente comando:
~/Library/Python/3.8/bin/electrum-personal-server-rescan --rescan ~/electrum-personal-server-eps-v0.2.0/config.ini
Quando ti viene chiesto, inserisci una data (nel formato GG / MM / AAAA) per indicare da dove vuoi iniziare a importare gli indirizzi (più indietro nel tempo andrai, più tempo ci vorrà) e premi Invio. Riceverai un suggerimento di un’altezza del blocco da cui iniziare. Scrivi y
per confermare e premi invio. Attendi finché il rescan sia stato completato (al termine, il server verrà chiuso). Se non attendi che il rescan sia stato completato, il saldo mostrerà 0 (ma mostrerà il saldo reale se esegui nuovamente la scansione).
Una volta effettuata la nuova scansione o (se utilizzi un nuovo wallet senza transazioni non sarà necessario farla), ti basterà avviare nuovamente Electrum Personal Server tramite lo script “eps” che abbiamo creato poco sopra e che si trova (se non lo hai spostato) sul desktop. Questo avvierà il server. Attendi questo messaggio:
Listening for Electrum Wallet ...
Installazione di Electrum
Ora abbiamo quasi finito e dobbiamo solamente comunicare ad Electrum di collegarsi al nostro server electrum.
Avvia Electrum e apri un portafoglio. Se non hai un portafoglio, puoi creare un “wallet fittizio” solo per accedere alle impostazioni. Segui i passaggi qui per creare un portafoglio.
Quando hai un portafoglio aperto, vai a Strumenti>Rete
.
Deseleziona seleziona server automaticamente e inServer
metti localhost
(se il tuo EPS è su un computer diverso indica invece l’ip di rete dove è installato):
Se si utilizza Electrum over Tor, è necessario disabilitarlo (non è necessario connettersi al proprio server tramite Tor). Cambia scheda in “Proxy” e deseleziona “Usa Tor”:
Chiudi la finestra di dialogo una volta terminato. Electrum ora è connesso al tuo nodo completo!
È comunque una buona idea usare Tor, ma ora dovrai farlo con il tuo nodo Bitcoin Core. Consulta la guida per eseguire Bitcoin Core su Tor
Disabilita le connessioni ad altri server
Suggerimento : crea uno script che avvii Electrum e disabiliti tutte le connessioni ad altri server. In tal caso non rischi di connetterti a un server pubblico per errore. Vai sul desktop e crea una copia dello script eps
. Rinominalo electrum-starter
. Fare clic con il tasto destro sul file e aprirlo con un editor di testo.
Modificare il contenuto in (se Electrum è installato nelle applicazioni):
open -a /applications/Electrum.app --args --oneserver --server localhost:50002:s
Salva e chiudi il file.
È ora possibile utilizzare questo script per avviare Electrum e non doversi mai preoccupare di connettersi a un server remoto per errore. Puoi chiudere lo script una volta avviato Electrum.
Il tuo portafoglio dovrebbe essere collegato al tuo fullnode (il cerchio nell’angolo in basso a destra dovrebbe essere verde)!
Puoi verificare che venga utilizzato solo il tuo server accedendo a Strumenti>Rete
. Dovresti vedere solo localhost alla panoramica:
Se cambi scheda in “Server”. Localhost dovrebbe essere selezionato e tutto dovrebbe essere disattivato (non è possibile modificare nulla).
Se ora fai una transazione, dovrebbe apparire come “in sospeso” in Electrum. Dovresti vedere il tuo saldo nella colonna “Watch Only” e la transazione in “Transazioni recenti” anche in Bitcoin Core: