officinebitcoin.it

This project is maintained by valerio-vaccaro

Fullnode e Hardware par un nodo Bitcoin

Introduzion

Un fullnode Bitcoin xe na componente essenziale de la rete che valida transazioni, mantien una copia completa de la blockchain e contribuisce alla sicurezza del sistema. In questa lezion esploreremo come scegliere l’hardware e configurar un nodo Bitcoin.

Perché un fullnode?

Validazion

Privacy

Sovranità

Scelta dell’hardware

Requisiti minimi

Requisiti raccomandati

Opzioni hardware

Computer vecchi

Raspberry Pi

Odroid-M1

Thin Client

Scelta del software

Sistema operativo

Distribuzion Linux

Configurazion base

Installazion Bitcoin Core

# Aggiungi repository
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt update

# Installa Bitcoin Core
sudo apt install bitcoin-qt bitcoin-cli

Configurazion bitcoin.conf

# Crea directory
mkdir ~/.bitcoin

# Crea file configurazion
nano ~/.bitcoin/bitcoin.conf

Configurazion base:

# RPC
rpcuser=bitcoin
rpcpassword=password_sicura
rpcallowip=127.0.0.1

# Rete
txindex=1
blockfilterindex=1

# Performance
dbcache=450
maxorphantx=10
maxmempool=50

# Sicurezza
blocksonly=1

Avvio del nodo

# Avvia bitcoind
bitcoind -daemon

# Verifica status
bitcoin-cli getblockchaininfo

Ottimizzazioni

SSD

RAM

CPU

Rete

Configurazion avanzata

Tor

# Installa Tor
sudo apt install tor

# Configura bitcoin.conf
proxy=127.0.0.1:9050
listen=1
bind=127.0.0.1
externalip=ONION_ADDRESS
onlynet=onion

Electrum Personal Server

# Installa EPS
git clone https://github.com/chris-belcher/electrum-personal-server
cd electrum-personal-server
pip3 install -r requirements.txt

# Configura
cp config.ini_sample config.ini
nano config.ini

Mempool.space

# Installa mempool.space
git clone https://github.com/mempool/mempool
cd mempool
npm install
npm run build

Monitoraggio

Script di monitoraggio

#!/bin/bash
# monitor.sh

# Verifica status Bitcoin
if ! bitcoin-cli getblockchaininfo > /dev/null 2>&1; then
    echo "Bitcoin Core non risponde"
    exit 1
fi

# Verifica spazio disco
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 90 ]; then
    echo "Spazio disco critico: ${DISK_USAGE}%"
fi

# Verifica memoria
MEM_USAGE=$(free | awk 'NR==2{printf "%.0f", $3*100/$2}')
if [ $MEM_USAGE -gt 90 ]; then
    echo "Memoria critica: ${MEM_USAGE}%"
fi

Crontab

# Aggiungi a crontab
*/5 * * * * /home/bitcoin/monitor.sh

Sicurezza

Firewall

# Configura UFW
sudo ufw enable
sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw allow 8333

Backup

# Backup wallet
cp ~/.bitcoin/wallet.dat /backup/

# Backup configurazion
cp ~/.bitcoin/bitcoin.conf /backup/

Aggiornamenti

# Script aggiornamento
#!/bin/bash
sudo apt update
sudo apt upgrade -y
sudo systemctl restart bitcoind

Troubleshooting

Problemi comuni

Log

# Verifica log
tail -f ~/.bitcoin/debug.log

# Filtra errori
grep "ERROR" ~/.bitcoin/debug.log

Conclusione

Un fullnode Bitcoin xe un investimento importante par la sicurezza e la privacy. La scelta dell’hardware e la configurazion corretta garantiscono un nodo affidabile e performante che contribuisce alla salute della rete Bitcoin.