Si tenim algun node de Bitcoin, tant si està connectat a la Testnet, com a la Mainnet, resulta útil de visualitzar certs paràmetres que ens informin sobre la xarxa, el node, els blocs, etc.
El repte
- Configurar correctament bitcoin.conf, per a definir la connexió RPC.
- Crear el servidor amb les rutes necessàries, així com la connexió RPC amb bitcoin daemon.
- Crear un client que consumeixi les dades i les mostri per pantalla, amb un disseny senzill.
El codi
Repositori: l’última versió del codi del projecte la pots trobar en aquest repositori. Tingues en compte que el codi es va actualitzant per afegir-hi millores.
Dependències rellevants: express
Pre-requisits: haver instal·lat Bitcoin Core, des de la web oficial.
Configura bitcoind
Si no el tens ja creat, crea el fitxer bitcoin.conf, dins de la carpeta oculta home/.bitcoin. Si tens dubtes de com fer-ho, pots seguir l’entrada Personalitza Bitcoin Core amb l’arxiu Bitcoin.conf, on ho explico.
En el cas que ens ocupa avui, introduïrem la següent configuració:
testnet=1
rpcuser=bitcoinuser
rpcpassword=bitcoinpassword
Bàsicament seleccionarem que volem córrer la xarxa de tests, i introduïrem unes credencials arbitràries, per a fer la connexió RPC amb el servidor.
Fés córrer bitcoind
Una vegada tinguem l’arxiu bitcoin.conf guardat, obrirem una terminal dins la localització del projecte bitcoin:
cd Descargas/Bitcoin-XXX/bin
I farem córrer bitcoind. A la terminal podràs veure com a l’inici, se’ns carrega la configuració de l’arxiu que acabem de definir (testnet, usuari RPC i contrasenya RPC).
bitcoind

Crea el servidor amb Express
Deixarem que bitcoind vagi corrent, i obrirem una nova terminal per a crear un nou projecte a l’ubicació on desitjem. Aquest projecte tindrà dues carpetes, la de l’API i la del frontend. Ara ens ocuparem de la primera.
mkdir bitcoin-cat
cd bitcoin-cat
mkdir bitcoin-api
mkdir bitcoin-frontend
cd bitcoin-api
npm init
Amb això inicialitzarem un projecte de Node, i introduïrem el nom del projecte, autor, etc. si ho desitjem, si no, simplement prém ENTER per a deixar-ho en blanc.
A continuació instal·larem les dependències que necessitem:
npm i express request dotenv
npm i -D nodemon morgan
Crearem un servidor amb touch server.js i inclourem els següents middlewares (consulta el repositori pel codi complet):
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(morgan("dev"))
app.use(errorHandler);
app.use("/api", rpcMethods);
Disseny del client
Finalment, crearem un frontend senzill amb React, on farem sol·licituds periòdiques cada 5 segons, a la nostra API, i mostrarem per pantalla els resultats.
cd bitcoin-frontend
npx create-react-app .
Conclusions
Fer un registrador és més senzill del que et pots imaginar. Si vols minimitzar el fet d’incloure paquets externs en el teu projecte, pots crear-ne un de manera fàcil i senzilla, personalitzant-lo a conveniència.