Bug fix: Properly initializes Responder

This commit is contained in:
Sergi Delgado Segura
2020-01-03 11:37:26 +01:00
parent 8fab59975f
commit c594018dce
3 changed files with 8 additions and 10 deletions

View File

@@ -1,6 +1,5 @@
import zmq import zmq
import binascii import binascii
from queue import Queue
from threading import Thread, Event, Condition from threading import Thread, Event, Condition
from common.logger import Logger from common.logger import Logger
@@ -26,8 +25,8 @@ class ChainMonitor:
self.zmqSubSocket.connect("%s://%s:%s" % (FEED_PROTOCOL, FEED_ADDR, FEED_PORT)) self.zmqSubSocket.connect("%s://%s:%s" % (FEED_PROTOCOL, FEED_ADDR, FEED_PORT))
self.watcher_queue = None self.watcher_queue = None
self.watcher_asleep = True
self.responder_queue = None self.responder_queue = None
self.watcher_asleep = True
self.responder_asleep = True self.responder_asleep = True
def attach_watcher(self, queue, awake): def attach_watcher(self, queue, awake):

View File

@@ -71,7 +71,6 @@ if __name__ == "__main__":
last_block_responder = db_manager.load_last_block_hash_responder() last_block_responder = db_manager.load_last_block_hash_responder()
# FIXME: 32-reorgs-offline dropped txs are not used at this point. # FIXME: 32-reorgs-offline dropped txs are not used at this point.
responder = Responder(db_manager, chain_monitor)
last_common_ancestor_responder = None last_common_ancestor_responder = None
missed_blocks_responder = None missed_blocks_responder = None
@@ -82,13 +81,13 @@ if __name__ == "__main__":
) )
missed_blocks_responder = block_processor.get_missed_blocks(last_common_ancestor_responder) missed_blocks_responder = block_processor.get_missed_blocks(last_common_ancestor_responder)
responder.trackers, responder.tx_tracker_map = Builder.build_trackers(responder_trackers_data) watcher.responder.trackers, watcher.responder.tx_tracker_map = Builder.build_trackers(
responder.block_queue = Builder.build_block_queue(missed_blocks_responder) responder_trackers_data
)
watcher.responder.block_queue = Builder.build_block_queue(missed_blocks_responder)
# Build Watcher with Responder and backed up data. If the blocks of both match we don't perform the # Build Watcher. If the blocks of both match we don't perform the search twice.
# search twice. chain_monitor.attach_responder(watcher.responder.block_queue, watcher.responder.asleep)
watcher.responder = responder
chain_monitor.attach_responder(responder.block_queue, responder.asleep)
if last_block_watcher is not None: if last_block_watcher is not None:
if last_block_watcher == last_block_responder: if last_block_watcher == last_block_responder:

View File

@@ -68,7 +68,7 @@ class Watcher:
self.signing_key = Cryptographer.load_private_key_der(sk_der) self.signing_key = Cryptographer.load_private_key_der(sk_der)
if not isinstance(responder, Responder): if not isinstance(responder, Responder):
self.responder = Responder(db_manager) self.responder = Responder(db_manager, chain_monitor)
@staticmethod @staticmethod
def compute_locator(tx_id): def compute_locator(tx_id):