• About Us
  • Privacy Policy
  • Disclaimer
  • Contact Us
Coin Snap
  • Home
  • Bitcoin
  • Defi
  • Crypto Mining
  • Crypto News
No Result
View All Result
  • Home
  • Bitcoin
  • Defi
  • Crypto Mining
  • Crypto News
No Result
View All Result
Coin Snap
No Result
View All Result
Home Bitcoin

Reemplace por tarifa: perder transacciones reemplazadas al ver la Mempool

luiselduque22 by luiselduque22
March 22, 2025
in Bitcoin
0
189
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter


Estoy tratando de capturar todas las transacciones reemplazadas. He cumplido Bitcon Core con rastreo habilitado y escuche el mempool:changed Como se sugiere en esto pregunta.

Este método funciona como se esperaba y puedo obtener las transacciones reemplazadas. Sin embargo, en algunos casos (alrededor del 20% de todas las transacciones que captura), el TraCepoint me alerta de la transacción que se reemplaza, pero no estoy capturando el reemplazo de esa transacción.

Puedo pensar en dos razones por las que esto está sucediendo:

  1. Podría ser que algunos de los reemplazos no ingresen a mi mempool. Pero si ese es el caso, ¿cómo sabe el tracePoint que las transacciones se están reemplazando? Además, es extraño que esto suceda con tantas transacciones (20% como se explicó anteriormente).
  2. La segunda opción es que el script que procesa la transacción no está considerando algunos casos, lo que termina en la pérdida de transacciones. El script es una versión modificada de esto ejemplo. Lo he modificado para poder capturar a los niños de las transacciones reemplazadas también. Los datos que reúno con este script se guarda más tarde en un archivo PKL, por lo que tiene una lista compartida.

No sé por qué estoy perdiendo tantas transacciones, y me preguntaba si alguien podría ayudar a ver qué estoy haciendo mal.

Aquí están las funciones modificadas:

       def handle_replaced(_, knowledge, measurement):
          # Set up a brand new RPC connection for this occasion
          rpc_connection_replaced = connection()
          occasion = bpf("replaced_events").occasion(knowledge)
          hash_replaced = bytes(occasion.replaced_hash)(::-1).hex()
          hash_new = bytes(occasion.replacement_hash)(::-1).hex()
          tx_time = get_timestamp()
          
          hex_tx = rpc_connection_replaced.getrawtransaction(hash_new)
          new_tx = rpc_connection_replaced.decoderawtransaction(hex_tx)
          new_tx('hex') = hex_tx
          # Decide mother or father transactions which can be nonetheless within the mempool and are usually not the transaction itself
          mother and father = set((x('txid') for x in new_tx('vin') if x('txid') in mempool.keys() and x('txid') != new_tx('txid')))
          # Retrieve the outdated transaction data from the mempool 
          outdated = mempool.get(hash_replaced, None)
          if outdated isn't None:  # Some transactions could also be lacking initially
            mempool.pop(hash_replaced, None)
            # Share the changed occasion particulars through list_shared queue
            list_shared.put((outdated, (new_tx, tx_time, mother and father)))
            # Discover all baby transactions that reference the brand new transaction as a mother or father
            childs = (i(0)('txid') for i in mempool.values() if new_tx('txid') in i(2))
            
            # Recursive operate to gather baby transaction IDs
            def baby(ll):
              if len(ll) == 0:
                return ()
              new_childs = (i(0)('txid') for i in mempool.values() if ll - i(2) != ll)
              return checklist(ll) + new_childs + baby(set(new_childs))
            
            if len(childs) > 0:
              childs = baby(set(childs))
              # Share the connection between the brand new transaction and the primary baby
              list_shared.put(((new_tx, tx_time, mother and father), mempool(childs(0))))
              # Share connections between subsequent baby transactions
              for i in vary(len(childs)-1):
                list_shared.put((mempool(childs(i)), mempool(childs(i+1))))

          # Add the brand new transaction to the mempool with its timestamp and mother or father set
          mempool(new_tx('txid')) = (new_tx, tx_time, mother and father)
          logger.data('-----------')
          logger.data('New RBF!')        
          
      def handle_added(_, knowledge, measurement):
          rpc_connection_added = connection()
          occasion = bpf("added_events").occasion(knowledge)
          hash_new = bytes(occasion.hash)(::-1).hex()
          hex_tx = rpc_connection_added.getrawtransaction(hash_new)
          tx_raw = rpc_connection_added.decoderawtransaction(hex_tx)
          tx_raw('hex') = hex_tx
          mother and father = set((x('txid') for x in tx_raw('vin') if x('txid') in mempool.keys()))
          mempool(tx_raw('txid')) = (tx_raw, get_timestamp(), mother and father)
          
      def handle_removed(_, knowledge, measurement):
        occasion = bpf("removed_events").occasion(knowledge)
        if occasion.purpose != b'changed':
            txid_rem = bytes(occasion.hash)(::-1).hex()
                    
            keys = mempool.keys()
            if txid_rem in keys:
              mempool.pop(txid_rem) 
              logger.data('-----------')
              logger.data(f'Eliminated. Motive:{occasion.purpose}')

Related articles

Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

August 22, 2025
Bitcoin a $ 230,000, XRP a $ 9 y un precio de DogeCoin a $ 2.5? El analista presenta objetivos This fall

Bitcoin a $ 230,000, XRP a $ 9 y un precio de DogeCoin a $ 2.5? El analista presenta objetivos This fall

August 22, 2025


Estoy tratando de capturar todas las transacciones reemplazadas. He cumplido Bitcon Core con rastreo habilitado y escuche el mempool:changed Como se sugiere en esto pregunta.

Este método funciona como se esperaba y puedo obtener las transacciones reemplazadas. Sin embargo, en algunos casos (alrededor del 20% de todas las transacciones que captura), el TraCepoint me alerta de la transacción que se reemplaza, pero no estoy capturando el reemplazo de esa transacción.

Puedo pensar en dos razones por las que esto está sucediendo:

  1. Podría ser que algunos de los reemplazos no ingresen a mi mempool. Pero si ese es el caso, ¿cómo sabe el tracePoint que las transacciones se están reemplazando? Además, es extraño que esto suceda con tantas transacciones (20% como se explicó anteriormente).
  2. La segunda opción es que el script que procesa la transacción no está considerando algunos casos, lo que termina en la pérdida de transacciones. El script es una versión modificada de esto ejemplo. Lo he modificado para poder capturar a los niños de las transacciones reemplazadas también. Los datos que reúno con este script se guarda más tarde en un archivo PKL, por lo que tiene una lista compartida.

No sé por qué estoy perdiendo tantas transacciones, y me preguntaba si alguien podría ayudar a ver qué estoy haciendo mal.

Aquí están las funciones modificadas:

       def handle_replaced(_, knowledge, measurement):
          # Set up a brand new RPC connection for this occasion
          rpc_connection_replaced = connection()
          occasion = bpf("replaced_events").occasion(knowledge)
          hash_replaced = bytes(occasion.replaced_hash)(::-1).hex()
          hash_new = bytes(occasion.replacement_hash)(::-1).hex()
          tx_time = get_timestamp()
          
          hex_tx = rpc_connection_replaced.getrawtransaction(hash_new)
          new_tx = rpc_connection_replaced.decoderawtransaction(hex_tx)
          new_tx('hex') = hex_tx
          # Decide mother or father transactions which can be nonetheless within the mempool and are usually not the transaction itself
          mother and father = set((x('txid') for x in new_tx('vin') if x('txid') in mempool.keys() and x('txid') != new_tx('txid')))
          # Retrieve the outdated transaction data from the mempool 
          outdated = mempool.get(hash_replaced, None)
          if outdated isn't None:  # Some transactions could also be lacking initially
            mempool.pop(hash_replaced, None)
            # Share the changed occasion particulars through list_shared queue
            list_shared.put((outdated, (new_tx, tx_time, mother and father)))
            # Discover all baby transactions that reference the brand new transaction as a mother or father
            childs = (i(0)('txid') for i in mempool.values() if new_tx('txid') in i(2))
            
            # Recursive operate to gather baby transaction IDs
            def baby(ll):
              if len(ll) == 0:
                return ()
              new_childs = (i(0)('txid') for i in mempool.values() if ll - i(2) != ll)
              return checklist(ll) + new_childs + baby(set(new_childs))
            
            if len(childs) > 0:
              childs = baby(set(childs))
              # Share the connection between the brand new transaction and the primary baby
              list_shared.put(((new_tx, tx_time, mother and father), mempool(childs(0))))
              # Share connections between subsequent baby transactions
              for i in vary(len(childs)-1):
                list_shared.put((mempool(childs(i)), mempool(childs(i+1))))

          # Add the brand new transaction to the mempool with its timestamp and mother or father set
          mempool(new_tx('txid')) = (new_tx, tx_time, mother and father)
          logger.data('-----------')
          logger.data('New RBF!')        
          
      def handle_added(_, knowledge, measurement):
          rpc_connection_added = connection()
          occasion = bpf("added_events").occasion(knowledge)
          hash_new = bytes(occasion.hash)(::-1).hex()
          hex_tx = rpc_connection_added.getrawtransaction(hash_new)
          tx_raw = rpc_connection_added.decoderawtransaction(hex_tx)
          tx_raw('hex') = hex_tx
          mother and father = set((x('txid') for x in tx_raw('vin') if x('txid') in mempool.keys()))
          mempool(tx_raw('txid')) = (tx_raw, get_timestamp(), mother and father)
          
      def handle_removed(_, knowledge, measurement):
        occasion = bpf("removed_events").occasion(knowledge)
        if occasion.purpose != b'changed':
            txid_rem = bytes(occasion.hash)(::-1).hex()
                    
            keys = mempool.keys()
            if txid_rem in keys:
              mempool.pop(txid_rem) 
              logger.data('-----------')
              logger.data(f'Eliminated. Motive:{occasion.purpose}')

Tags: MempoolperderporReemplacereemplazadastarifatransaccionesver
Share76Tweet47

Related Posts

Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

by luiselduque22
August 22, 2025
0

Blackrock es uno de los cuatro jinetes de la economía estadounidense, junto con los gigantes de inversión Vanguard, Constancy y...

Bitcoin a $ 230,000, XRP a $ 9 y un precio de DogeCoin a $ 2.5? El analista presenta objetivos This fall

Bitcoin a $ 230,000, XRP a $ 9 y un precio de DogeCoin a $ 2.5? El analista presenta objetivos This fall

by luiselduque22
August 22, 2025
0

Editorial de confianza Contenido, revisado por expertos líderes de la industria y editores experimentados. Divulgación de anuncios Bitcoin ya ha...

¿Bitcoin Bull Run ha terminado realmente? Esto es lo que sugieren los datos de MVRV

¿Bitcoin Bull Run ha terminado realmente? Esto es lo que sugieren los datos de MVRV

by luiselduque22
August 22, 2025
0

Bitcoin continúa retrocediendo desde sus máximos récord, con los activos que se negocian por debajo de $ 115,000 al momento...

Bitcoin Value cae, y como siempre, nadie sabe por qué

Bitcoin Value cae, y como siempre, nadie sabe por qué

by luiselduque22
August 21, 2025
0

Odio cuando cae el precio de Bitcoin, como lo hizo esta semana, primero de $ 118,000 a $ 115,000, y...

Bitget listas de sapienusdt para el comercio de futuros y habilita la integración de botes de comercio

Bitget listas de sapienusdt para el comercio de futuros y habilita la integración de botes de comercio

by luiselduque22
August 21, 2025
0

Victoria, Seychelles, 21 de agosto de 2025, cableBitgetla principal compañía de intercambio de criptomonedas y Web3 ha anunciado el lanzamiento...

Load More
  • Trending
  • Comments
  • Latest
Ethereum en la cúspide de una gran ruptura en el primer trimestre de 2025, se espera que las altcoins sigan su ejemplo

Ethereum en la cúspide de una gran ruptura en el primer trimestre de 2025, se espera que las altcoins sigan su ejemplo

December 28, 2024
Raoul Pal califica el patrón gráfico de Ethereum como “uno de los más poderosos en criptografía”, lo que indica que se avecina una gran ruptura ⋆ ZyCrypto

Raoul Pal califica el patrón gráfico de Ethereum como “uno de los más poderosos en criptografía”, lo que indica que se avecina una gran ruptura ⋆ ZyCrypto

December 27, 2024

¿Por qué mi transacción no se confirma y qué puedo hacer al respecto?

July 30, 2025
El impulso alcista impulsa el impulso hacia los $6

El impulso alcista impulsa el impulso hacia los $6

January 7, 2025
¿Ha terminado la temporada de Memecoin? PEPE y SHIB luchan mientras Lunex se eleva

¿Ha terminado la temporada de Memecoin? PEPE y SHIB luchan mientras Lunex se eleva

0
Comprensión de los rendimientos y la economía de las apuestas en Ethereum y Solana

Comprensión de los rendimientos y la economía de las apuestas en Ethereum y Solana

0
Calienta tu hogar mientras ganas Bitcoin con Heatbit

Calienta tu hogar mientras ganas Bitcoin con Heatbit

0
Líderes de IcomTech sentenciados a una década tras las rejas

Líderes de IcomTech sentenciados a una década tras las rejas

0
La comunidad de Qubic respalda la minería Dogecoin en un pivote estratégico

La comunidad de Qubic respalda la minería Dogecoin en un pivote estratégico

August 22, 2025
Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

August 22, 2025
Bitcoin recibe un impulso de precio de la silla alimentada Jerome Powell

Bitcoin recibe un impulso de precio de la silla alimentada Jerome Powell

August 22, 2025
La charla del fiscal basic asistente Galeotti sobre cripto desarrolladores cambia muy poco

La charla del fiscal basic asistente Galeotti sobre cripto desarrolladores cambia muy poco

August 22, 2025

Coinsnap-Pro

Welcome to CoinSnap Pro, your ultimate destination for everything related to decentralized finance (DeFi), cryptocurrency news, Bitcoin, and crypto mining. Our mission is to keep you informed and empowered in the ever-evolving world of digital assets and blockchain technology.

Categories

  • Bitcoin
  • Crypto Mining
  • Crypto News
  • Defi
  • Economía

Recent News

La comunidad de Qubic respalda la minería Dogecoin en un pivote estratégico

La comunidad de Qubic respalda la minería Dogecoin en un pivote estratégico

August 22, 2025
Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

Blackrock y Wall St. Salen de los mercados estadounidenses, preparándose para la recesión

August 22, 2025
  • About Us
  • Privacy Policy
  • Disclaimer
  • Contact Us

© 2024 Coinsnap.pro. All rights reserved.

No Result
View All Result
  • Home
  • Bitcoin
  • Defi
  • Crypto Mining
  • Crypto News

© 2024 Coinsnap.pro. All rights reserved.