7.0 KiB
15.1: Bitcoin Core come servizio I2P (Invisible Internet Project)
ℹ️ NOTA: Questa sezione è stata recentemente aggiunta al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Attenzione lettore.
Piuttosto che utilizzare il servizio basato su proxy di Tor per garantire la privacy delle tue comunicazioni Bitcoin, potresti invece desiderare di usare I2P, che è progettato per agire come una rete privata all'interno di internet, piuttosto che offrire semplicemente un accesso privato ai servizi internet.
Comprendere le Differenze
Tor e I2P offrono entrambi accesso privato ai servizi online, ma con routing e database diversi e con architetture differenti per i relay. Poiché i servizi nascosti (come l'accesso a Bitcoin) sono fondamentali nel design di I2P, questi sono stati meglio ottimizzati:
| Tor | I2P | |
|---|---|---|
| Routing | Onion | Garlic |
| Network Database | Trusted Directory Servers | Distributed network database |
| Relay | Two-way encrypted connections between each Relay | One-way connections between every server in its tunnels |
| Hidden services | Slow | Fast |
Un confronto più dettagliato può essere trovato su geti2p.net.
Comprendere i Compromessi per Limitare le Connessioni in Uscita
Ci sono compromessi se si sceglie di supportare solo I2P, solo Tor, o entrambi. Queste configurazioni, che limitano le connessioni in uscita sulla rete clearnet, sono fatte in Bitcoin Core utilizzando l'argomento onlynet nel tuo bitcoin.conf.
onlynet=onion, che limita le connessioni in uscita a Tor, può esporre un nodo ad attacchi Sybil e può creare partizionamento della rete, a causa delle connessioni limitate tra Tornet e la clearnet.onlynet=onioneonlynet=i2pin congiunzione, che esegue il servizio Onion con il servizio I2P, è sperimentale per ora.
Installare I2P
Per installare I2P, dovresti assicurarti che le tue porte siano correttamente configurate e poi puoi continuare con il processo di configurazione.
Preparare le Porte
Per usare I2P, dovrai aprire le seguenti porte, che sono richieste da I2P:
- Outbound (Internet facing): viene selezionata una porta casuale tra 9000 e 31000. È meglio se tutte queste porte sono aperte per le connessioni in uscita, cosa che non influisce sulla tua sicurezza.
- Puoi controllare lo stato del firewall usando
sudo ufw status verbose, che non dovrebbe negare le connessioni in uscita per impostazione predefinita.
- Inbound (Internet facing): opzionale. Una varietà di porte in entrata sono elencate nei documenti di I2P.
- Per la massima privacy, è preferibile disabilitare l'accettazione delle connessioni in entrata.
Eseguire I2P
Il seguente comando eseguirà i servizi I2P di Bitcoin Core:
-
Installa
i2pdsu Ubuntu:sudo add-apt-repository ppa:purplei2p/i2pd sudo apt-get update sudo apt-get install i2pd
Per l'installazione su altri sistemi operativi, vedi questi documenti.
-
Esegui il servizio I2P:
$ sudo systemctl start i2pd.service -
Controlla che I2P stia funzionando. Dovresti vederlo sulla porta 7656:
$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.1:7656 0.0.0.0:* -
Aggiungi le seguenti righe in
bitcoin.conf:i2psam=127.0.0.1:7656 debug=i2p
L'opzione di log, debug=i2p, viene utilizzata per registrare informazioni aggiuntive nel log di debug sulla tua configurazione e connessioni I2P. La posizione predefinita di questo file di debug su Linux è: ~/.bitcoin/debug.log.
-
Riavvia
bitcoind$ bitcoind -
Controlla
debug.logper vedere se I2P è stato configurato correttamente, o se sono comparsi errori nei log.2021-06-15T20:36:16Z i2paccept thread start 2021-06-15T20:36:16Z I2P: Creating SAM session with 127.0.0.1:7656 2021-06-15T20:36:56Z I2P: SAM session created: session id=3e0f35228b, my address=bmwyyuzyqdc5dcx27s4baltbu6zw7rbqfl2nmclt45i7ng3ul4pa.b32.i2p:18333 2021-06-15T20:36:56Z AddLocal(bmwyyuzyqdc5dcx27s4baltbu6zw7rbqfl2nmclt45i7ng3ul4pa.b32.i2p:18333,4)
L'indirizzo I2P è menzionato nei log, terminando con b32.i2p. Per esempio bmwyyuzyqdc5dcx27s4baltbu6zw7rbqfl2nmclt45i7ng3ul4pa.b32.i2p:18333.
-
Conferma che
i2p_private_keyè stato creato nella directory dei dati di Bitcoin Core. La prima volta che Bitcoin Core si connette al router I2P, il suo indirizzo I2P (e la corrispondente chiave privata) sarà automaticamente generato e salvato in un file chiamato i2p_private_key:~/.bitcoin/testnet3$ ls anchors.dat chainstate i2p_private_key settings.json banlist.dat debug.log mempool.dat wallets blocks fee_estimates.dat peers.dat -
Controlla che
bitcoin-cli -netinfoobitcoin-cli getnetworkinforestituisca l'indirizzo I2P:Local addresses bmwyyuzyqdc5dcx27s4baltbu6zw7rbqfl2nmclt45i7ng3ul4pa.b32.i2p port 18333 score 4
Ora il tuo server Bitcoin è accessibile attraverso la rete I2P al tuo nuovo indirizzo locale.
Sommario: Bitcoin Core come servizio I2P (Invisible Internet Project)
È sempre bene avere alternative per la privacy e non dipendere esclusivamente da Tor per eseguire Bitcoin Core come servizio nascosto. Poiché I2P è stato recentemente aggiunto in Bitcoin Core, non molte persone lo utilizzano. Sperimenta con esso e segnala bug se trovi problemi.
ℹ️ NOTA: Per l'implementazione ufficiale di i2prouter in Java, visita la pagina di download di I2P e segui le istruzioni per il tuo sistema operativo. Una volta installato, apri una finestra di terminale e digita
i2prouter start. Poi visita127.0.0.1:7657nel tuo browser per abilitare SAM. Per farlo, seleziona: "Configura Homepage", poi "Clienti", e infine seleziona il "Pulsante Play" accanto a SAM application Bridge. Sul lato sinistro della pagina, dovrebbe esserci una luce verde accanto a "Clienti Condivisi".
Passa a "Programmare con RPC" con Capitolo 16: Parlare a Bitcoind con C.
Oppure, se non sei un programmatore, puoi saltare a Capitolo 19: Comprendere la Configurazione Lightning per continuare la tua formazione sulla linea di comando con il Lightning Network.