Q1) ¿Alguien sabe cómo pueden verse estas TXs tan antiguas?
He probado parametrizar Blockchair en vano.
La
API de mempool.space se me hace muy completa y amigable.
Q2) ¿La fecha de TX que vemos en los exploradores de las TXs pendientes sería la fecha de primera emisión de la TX o de inclusión de la TX en la mempool?
Escribi hace unas semanas esa duda
TX Broadcast timestampEsta informacion varia mucho dependiendo del explorador, en el caso de mempool.space las transacciones generalmente tienen el tiempo en el que fueron recividas, sin embargo si la transaccion es reemplazada mediante RBF o FullRBF entonces cosas raras pasan con estos tiempos. Despues de un tiempo mempool dropea la transaccion vieja dejando la nueva, pero como no todos los nodos tienen habilitado fullrbf en ocaciones estos vuelven a realizar un broadcast de esa transaccion y esta se reescribe en la base de datos de mempool. (Repito son casos muy puntuales)
Q3) ¿Se pueden listar todas las TXs pendientes en alguna herramienta, ordenadas por fecha?
Solamente con script yo tengo algunos hechos nada tan avanzado como descargarlas todas y ordenarlas por fecha, pero no seria dificil hacerlo.
import json
import math
import time
import random
import requests
def round_up_to_decimals(number, decimals):
factor = 10 ** decimals
rounded_number = math.ceil(number * factor) / factor
return rounded_number
def get_tx(txid):
time.sleep(0.01)
tx = None
try:
url = ""
if networkname=="bitcoin":
url = "https://mempool.space/api/tx/" + txid
elif networkname=="testnet":
url = "https://mempool.space/testnet/api/tx/" + txid
else:
print("Unknow network")
exit()
response = requests.get(url)
if response.status_code == 200:
tx = response.json()
return tx
except Exception as e:
print(f"An error occurred: {e}")
return tx
def get_mempool_txids():
time.sleep(0.05)
txids = []
try:
url = ""
if networkname=="bitcoin":
url = "https://mempool.space/api/mempool/txids"
elif networkname=="testnet":
url = "https://mempool.space/testnet/api/mempool/txids"
else:
print("Unknow network")
exit()
response = requests.get(url)
if response.status_code == 200:
txids = response.json()
return txids
except Exception as e:
print(f"An error occurred: {e}")
return txids
networkname = "bitcoin"
txids = get_mempool_txids()
#with open("txids.txt", "w") as file:
# file.writelines("%s\n" % txid for txid in txids)
for txid in txids:
tx_data = get_tx(txid)
#do something
Las funciones que te podrian ser utiles son:
GET Mempool Transaction IDs GET Mempool Recent GET Transaction La ventaja de esta API es que los datos ya estan formateados en JSON, listos para ser parseados facilmente.