Track 2 / 5
Encender categorías de log en caliente y seguir una transacción en debug.log.
Con fotos nos perdemos lo que pasa entre una y otra. El debug.log es una película: cada evento, contado por el nodo.
Probá
Encendé las categorías net y mempool sin reiniciar:
alice logging '["net","mempool"]'
bob logging '["net","mempool"]'En otra terminal, desde la carpeta del repo, seguí el log de alice:
docker compose logs -f aliceEn el lab los nodos escriben el log en la salida estándar. En un nodo normal el equivalente es tail -f ~/.bitcoin/debug.log.
Probá
En la primera terminal:
TX=$(alice sendtoaddress "$(bob getnewaddress)" 1)
lab_wait_tx bob "$TX"Mirá
En el log de alice, la conversación con bob:
[net] sending inv (37 bytes) peer=0
[net] received: getdata (37 bytes) peer=0
[net] sending tx (222 bytes) peer=0En el de bob (docker compose logs bob | grep AcceptToMemoryPool):
[mempool] AcceptToMemoryPool: peer=0: accepted <txid> (wtxid=…) (poolsz 1 txn, 1 kB)Los IDs de peer y los tamaños pueden ser distintos en tu máquina.
Por qué
Recibir una transacción no es un evento único: es una conversación. Alice anuncia (inv), bob pide (getdata) y alice envía (tx).
Probá
alice -generate 1Mirá
UpdateTip: new best=<hash> height=… version=… log2_work=… tx=… date='…' progress=1.000000 …UpdateTip se loguea siempre, sin necesidad de activar ninguna categoría.
alice logging '[]' '["net","mempool"]'
bob logging '[]' '["net","mempool"]'El primer argumento es la lista a encender y el segundo, la lista a apagar. Hay muchas más categorías, como cmpctblock, validation, mempoolrej o zmq; las lista alice logging.