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.

Pantalla d'inici de BTC RPC Explorer amb tema fosc

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

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
/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
/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:

output
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
/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
/etc/btc-rpc-explorer/btc-rpc-explorer.env
[...]
BTCEXP_BITCOIND_RPC_TIMEOUT=10000
[...]
BTCEXP_SLOW_DEVICE_MODE=true
[...]
Mode de privadesa
  • Mode més informació, inclosos els tipus de canvi de Bitcoin:
/etc/btc-rpc-explorer/btc-rpc-explorer.env
[...]
BTCEXP_PRIVACY_MODE=false
[...]
BTCEXP_NO_RATES=false
[...]
  • Més mode de privadesa, sense consultes externes:
/etc/btc-rpc-explorer/btc-rpc-explorer.env
[...]
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.
/etc/btc-rpc-explorer/btc-rpc-explorer.env
[...]
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
/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
output
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
/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
/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
        killall -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