BTC RPC Explorer
Executeu el vostre propi explorador de cadena de blocs privat amb BTC RPC Explorer. Confieu en el vostre node, no en alguns serveis externs.
Preparacions
Indexació de transaccions
Perquè el BTC RPC Explorer funcioni, necessiteu el vostre node complet per indexar totes les transaccions.
- Si heu seguit aquesta guia, el paràmetre d’índex de transaccions ja està
habilitat (
txindex=1
) i podeu saltar a la secció següent. - Si no és així, cal que configureu el paràmetre
txindex=1
al fitxer de configuració del vostre client Bitcoin (bitcoin.conf
): Configuració del node Bitcoin. - Després d’afegir el paràmetre, reinicieu el client Bitcoin, que ara indexarà tota la cadena de blocs
$SU rc-service bitcoind restart
Tingueu en compte que la reindexació pot trigar més d’un dia. Podeu seguir el progrés utilitzant
tail -f /var/log/bitcoind/debug.log
Instal·leu dependències
- Instal·leu Node.js mitjançant el gestor de paquets apk.
Aquestes són dependències de construcció (es pot eliminar després de la instal·lació, si voleu)
$SU apk add --virtual .build-deps git gnupg npm
Aquestes són dependències en temps d’execució
$SU apk add nodejs-current
Creeu l’usuari/grup btc-rpc-explorer
$SU addgroup -S btc-rpc-explorer
$SU adduser \
-S \
-D \
-H \
-h /dev/null \
-s /sbin/nologin \
-G btc-rpc-explorer \
-g btc-rpc-explorer \
btc-rpc-explorer
Afegeix l’usuari btc-rpc-explorer
al grup bitcoin
$SU adduser btc-rpc-explorer bitcoin
Afegiu també l’usuari satoshi
al grup btc-rpc-explorer
$SU adduser satoshi btc-rpc-explorer && exec su -l satoshi
Servidor intermediari invers
A la secció de Seguretat, hem configurat un servidor intermediari invers. Ara podem afegir la configuració de BTC RPC Explorer.
- Habilita el servidor intermediari invers per encaminar el trànsit HTTPS extern xifrat internament cap a BTC RPC Explorer
$SU $EDITOR /etc/caddy/sites/btc-rpc-explorer.caddy
:4000 {
import tls
reverse_proxy 127.0.0.1:3002
}
- Torna a carregar el Caddy
$SU rc-service caddy reload
Firewall
- Configura el tallafoc per permetre les sol·licituds entrants
$SU $EDITOR /etc/awall/optional/btcrpcexpl.json
{
"description": "Allow BTC RPC Explorer SSL",
"filter": [
{
"in": "internet",
"out": "_fw",
"service": { "proto": "tcp", "port": 4000 },
"action": "accept",
"conn-limit": { "count": 10, "interval": 60 }
}
]
}
- Habilitar-ho
$SU awall enable btcrpcexpl
$SU awall activate
Instal·lació
BTC RPC Explorer ofereix una interfície web lleugera i fàcil d’utilitzar per aconseguir-ho. És un explorador de cadena de blocs de Bitcoin allotjat sense bases de dades, que consulta el client Bitcoin i el servidor Electrum mitjançant RPC.
Descarrega el codi font
Obtenim la darrera versió del codi font de BTC RPC Explorer i l’instal·lem.
- Baixeu el codi font de la darrera versió de BTC RPC Explorer. Podeu consultar la pàgina de llançament per veure si hi ha disponible una versió més recent. Tanmateix, és possible que altres versions no s’hagin provat correctament amb la resta de la configuració de Microbolt.
cd /tmp
VERSION=3.4.0
git clone --branch v$VERSION https://github.com/janoside/btc-rpc-explorer.git && cd btc-rpc-explorer
Comprovació de la signatura
- Per evitar l’ús de codi font incorrecte, comproveu que el desenvolupador principal Dan Janosik hagi signat correctament la versió.
wget -qO- https://github.com/janoside.gpg | gpg --import
git verify-commit v$VERSION
Configurar, aplicar pegats i instal·lar
sed '/"node_modules\/sharp": {/,+21{d}; /sharp/d' npm-shrinkwrap.json > _
mv -f _ npm-shrinkwrap.json
- Instal·leu totes les dependències mitjançant el Node Package Manager (NPM).
npm ci
npm i zeromq@latest
npm audit fix
La instal·lació pot trigar un temps, fins a 20 minuts. Pot ser que hi hagi moltes sortides confuses, però si veieu alguna cosa semblant a la següent, la instal·lació ha estat correcta:
up to date, audited 621 packages in 3s
93 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
- Feu-ne una instal·lació permanent global
$SU install -D -m 0660 -o btc-rpc-explorer -g btc-rpc-explorer ./.env-sample /etc/btc-rpc-explorer/btc-rpc-explorer.env
$SU mv -f /tmp/btc-rpc-explorer /var/lib/
$SU ln -s /var/lib/btc-rpc-explorer /usr/lib/node_modules/btc-rpc-explorer
$SU ln -s ../lib/node_modules/btc-rpc-explorer/bin/cli.js /usr/bin/btc-rpc-explorer
Neteja
cd
rm -rf /tmp/btc-rpc-explorer
$SU apk del .build-deps
Configuració
- Activeu qualsevol configuració eliminant el
#
al començament de la línia.
$EDITOR /etc/btc-rpc-explorer/btc-rpc-explorer.env
[...]
BTCEXP_BITCOIND_HOST=127.0.0.1
[...]
BTCEXP_BITCOIND_PORT=8332
[...]
BTCEXP_BITCOIND_COOKIE=/var/lib/bitcoind/.cookie
[...]
BTCEXP_ADDRESS_API=electrum
[...]
BTCEXP_ELECTRUM_SERVERS=tcp://127.0.0.1:50001
[...]
BTCEXP_SLOW_DEVICE_MODE=false
[...]
BTCEXP_UI_THEME={dark|light} # Choose one
[...]
Dispositius de baix rendiment
[...]
BTCEXP_BITCOIND_RPC_TIMEOUT=10000
[...]
BTCEXP_SLOW_DEVICE_MODE=true
[...]
Mode de privadesa
- Mode més informació, inclosos els tipus de canvi de Bitcoin:
[...]
BTCEXP_PRIVACY_MODE=false
[...]
BTCEXP_NO_RATES=false
[...]
- Més mode de privadesa, sense consultes externes:
[...]
BTCEXP_PRIVACY_MODE=true
[...]
BTCEXP_NO_RATES=true
[...]
Mode de seguretat
- Podeu afegir protecció amb contrasenya a la interfície web. Simplement afegiu
contrasenya [D]
per a l’opció següent, per a la qual el navegador us la demanarà. Podeu introduir qualsevol nom d’usuari; només es comprova la contrasenya.
[...]
BTCEXP_DEMO=true
[...]
BTCEXP_BASIC_AUTH_PASSWORD=YourPassword[D]
[...]
Accés remot per Tor
Per utilitzar el vostre explorador de cadena de blocs quan esteu en remot, podeu crear fàcilment un servei ocult Tor al Microbolt i accedir al BTC RPC Explorer amb el navegador Tor des de qualsevol dispositiu.
- Afegiu les tres línies següents a la secció “location-hidden services” al
fitxer
torrc
.
$SU $EDITOR /etc/tor/torrc
# Hidden Service BTC RPC Explorer
HiddenServiceDir /var/lib/tor/btc-rpc-explorer/
HiddenServiceVersion 3
HiddenServicePoWDefensesEnabled 1
HiddenServicePort 443 127.0.0.1:4000
- Torneu a carregar la configuració de Tor i obteniu la vostra adreça de connexió.
$SU rc-service tor reload
$SU cat /var/lib/tor/btc-rpc-explorer/hostname
abcdefg..............xyz.onion
- Ara hauríeu de poder connectar-vos al vostre BTC RPC Explorer de forma remota
mitjançant Tor mitjançant el vostre nom d’amfitrió i el vostre port
4000
Inici automàtic a l’arrencada
Ara ens assegurarem que el nostre explorador de cadena de blocs s’iniciï com a servei a l’ordinador perquè estigui sempre en execució.
- Creeu la unitat init.d de BTC RPC Explorer i copieu/enganxeu la configuració següent. Guardar i sortir.
$SU $EDITOR /etc/init.d/btc-rpc-explorer
#!/sbin/openrc-run
: ${BTCRPCEXPL_ENVFILE:=/etc/btc-rpc-explorer/btc-rpc-explorer.env}
: ${BTCRPCEXPL_DATADIR:=/var/lib/btc-rpc-explorer}
: ${BTCRPCEXPL_LOGDIR:=/var/log/btc-rpc-explorer}
: ${BTCRPCEXPL_USER:=btc-rpc-explorer}
: ${BTCRPCEXPL_GROUP:=btc-rpc-explorer}
: ${BTCRPCEXPL_BIN:=/usr/bin/btc-rpc-explorer}
: ${BTCRPCEXPL_OPTS=${BTCRPCEXPL_OPTS}}
: ${BTCRPCEXPL_SIGTERM_TIMEOUT:=600}
BTCRPCEXPL_PIDDIR="/run/btc-rpc-explorer"
name="BTC RPC Explorer"
description="Simple, database-free Bitcoin blockchain explorer, via RPC to Bitcoin Core"
directory="${BTCRPCEXPL_DATADIR}"
required_files="${BTCRPCEXPL_ENVFILE}"
pidfile="${BTCRPCEXPL_PIDDIR}/${SVCNAME}.pid"
retry="${BTCRPCEXPL_SIGTERM_TIMEOUT}"
command="${BTCRPCEXPL_BIN}"
command_args="${BTCRPCEXPL_OPTS}"
command_user="${BTCRPCEXPL_USER}:${BTCRPCEXPL_GROUP}"
command_background="true"
start_stop_daemon_args="--stdout ${BTCRPCEXPL_LOGDIR}/debug.log
--stderr ${BTCRPCEXPL_LOGDIR}/debug.log"
depend() {
need bitcoind
if service_started fulcrum; then
need fulcrum
elif service_started electrs; then
need electrs
else
if service_exists fulcrum; then
need fulcrum
elif service_exists electrs; then
need electrs
else
eerror "Neither fulcrum nor electrs is installed or started"
return 1
fi
fi
}
service_exists() {
rc-service --list | grep -q "^$1$"
}
start_pre() {
checkpath --file --mode 0660 --owner "${command_user}" "${BTCRPCEXPL_ENVFILE}"
checkpath --directory --mode 0750 --owner "${command_user}" "${BTCRPCEXPL_DATADIR}"
checkpath --directory --mode 0755 --owner "${command_user}" "${BTCRPCEXPL_LOGDIR}"
checkpath --directory --mode 0755 --owner "${command_user}" "${BTCRPCEXPL_PIDDIR}"
checkconfig
}
checkconfig() {
if ! grep -qs '^BTCEXP_BITCOIND_COOKIE=' "${BTCRPCEXPL_ENVFILE}"
then
eerror ""
eerror "ERROR: You must set a BTCEXP_BITCOIND_COOKIE path to run"
eerror "BTC RPC Explorer."
eerror "The setting must appear in ${BTCRPCEXPL_ENVFILE}"
eerror ""
return 1
fi
}
- Habilita el permís d’execució
$SU chmod +x /etc/init.d/btc-rpc-explorer
Habilita logrotate
- Introduïu la configuració següent completa. Guardar i sortir
$SU $EDITOR /etc/logrotate.d/btc-rpc-explorer
/var/log/btc-rpc-explorer/*.log {
weekly
missingok
rotate 104
compress
delaycompress
notifempty
create 0640 btc-rpc-explorer btc-rpc-explorer
sharedscripts
postrotate
kill -HUP `cat /run/btc-rpc-explorer/btc-rpc-explorer.pid`
endscript
}
- Prova
$SU logrotate /etc/logrotate.d/btc-rpc-explorer --debug
Activa i inicia BTC RPC Explorer
$SU rc-update add btc-rpc-explorer
$SU rc-service btc-rpc-explorer start
- Comproveu el registre per veure la sortida de BTC RPC Explorer. Sortiu amb
Ctrl-C
tail -f /var/log/btc-rpc-explorer/debug.log
- Ara podeu accedir al vostre propi BTC RPC Explorer des de la vostra xarxa local navegant a https://nakamoto01:4000 (o la vostra adreça IP equivalent).
Per al futur: actualització de BTC RPC Explorer
Torneu a seguir la pàgina BTC RPC Explorer substituint el
valor de la variable d’entorn VERSION=x.xx
per l’últim si encara no s’ha
modificat en aquesta guia.
- Actualitzeu la configuració de BTC RPC Explorer si cal (vegeu les notes de la versió)
$SU $EDITOR /etc/btc-rpc-explorer/btc-rpc-explorer.env
- Reinicieu el servei per aplicar els canvis
$SU rc-service btc-rpc-explorer restart