We use ZMQ notifications to observe new blocks and new transactions within the mempool. It really works very properly on mainnet, however on testnet and regtest it really works midway: solely new blocks are notified however not transactions within the mempool.
Right here is the code used to attach:
def connect_to_zmq(self):
self.zmq_context = zmq.asyncio.Context()
self.zmq_sub_socket_sequence = self.zmq_context.socket(zmq.SUB)
self.zmq_sub_socket_sequence.setsockopt(zmq.RCVHWM, 0)
self.zmq_sub_socket_sequence.setsockopt(zmq.RCVTIMEO, ZMQ_TIMEOUT)
self.zmq_sub_socket_sequence.setsockopt_string(zmq.SUBSCRIBE, "rawtx")
self.zmq_sub_socket_sequence.setsockopt_string(zmq.SUBSCRIBE, "hashtx")
self.zmq_sub_socket_sequence.setsockopt_string(zmq.SUBSCRIBE, "sequence")
self.zmq_sub_socket_sequence.join(self.zmq_sequence_address)
self.zmq_sub_socket_rawblock = self.zmq_context.socket(zmq.SUB)
self.zmq_sub_socket_rawblock.setsockopt(zmq.RCVHWM, 0)
self.zmq_sub_socket_sequence.setsockopt(zmq.RCVTIMEO, ZMQ_TIMEOUT)
self.zmq_sub_socket_rawblock.setsockopt_string(zmq.SUBSCRIBE, "rawblock")
self.zmq_sub_socket_rawblock.join(self.zmq_rawblock_address)
and the complete code is right here: https://github.com/CounterpartyXCP/counterparty-core/blob/grasp/counterparty-core/counterpartycore/lib/observe.py
and right here is the config file:
rpcuser=rpc
rpcpassword=rpc
rpcallowip=0.0.0.0
server=1
addresstype=legacy
txindex=1
prune=0
mempoolfullrbf=1
rpcworkqueue=100
datadir=/residence/ouziel/medias/ssd/
daemon=1
[main]
zmqpubrawtx=tcp://0.0.0.0:9332
zmqpubhashtx=tcp://0.0.0.0:9332
zmqpubsequence=tcp://0.0.0.0:9332
zmqpubrawblock=tcp://0.0.0.0:9333
[test]
zmqpubrawtx=tcp://0.0.0.0:19332
zmqpubhashtx=tcp://0.0.0.0:19332
zmqpubsequence=tcp://0.0.0.0:19332
zmqpubrawblock=tcp://0.0.0.0:19333
[regtest]
zmqpubrawtx=tcp://0.0.0.0:29332
zmqpubhashtx=tcp://0.0.0.0:29332
zmqpubsequence=tcp://0.0.0.0:29332
zmqpubrawblock=tcp://0.0.0.0:29333
Is that this a identified limitation of Bitcoin Core? or a particular setting that’s lacking?
Thanks prematurely.