Refactors Responder and BlockProcessor

Brings check_confirmations back to the Responder
This commit is contained in:
Sergi Delgado Segura
2019-11-08 14:23:06 +00:00
parent 20faa04c4c
commit 8a10979db0
2 changed files with 21 additions and 25 deletions

View File

@@ -80,25 +80,3 @@ class BlockProcessor:
distance = chain_tip_height - target_block_height distance = chain_tip_height - target_block_height
return distance return distance
# DISCUSS: This method comes from the Responder and seems like it could go back there.
@staticmethod
# NOTCOVERED
def check_confirmations(txs, unconfirmed_txs, tx_job_map, missed_confirmations):
for tx in txs:
if tx in tx_job_map and tx in unconfirmed_txs:
unconfirmed_txs.remove(tx)
logger.info("Confirmation received for transaction", tx=tx)
elif tx in unconfirmed_txs:
if tx in missed_confirmations:
missed_confirmations[tx] += 1
else:
missed_confirmations[tx] = 1
logger.info("Transaction missed a confirmation", tx=tx, missed_confirmations=missed_confirmations[tx])
return unconfirmed_txs, missed_confirmations

View File

@@ -153,9 +153,7 @@ class Responder:
# ToDo: #9-add-data-persistence # ToDo: #9-add-data-persistence
if prev_block_hash == block.get("previousblockhash"): if prev_block_hash == block.get("previousblockhash"):
self.unconfirmed_txs, self.missed_confirmations = BlockProcessor.check_confirmations( self.check_confirmations(txs)
txs, self.unconfirmed_txs, self.tx_job_map, self.missed_confirmations
)
txs_to_rebroadcast = self.get_txs_to_rebroadcast(txs) txs_to_rebroadcast = self.get_txs_to_rebroadcast(txs)
completed_jobs = self.get_completed_jobs(height) completed_jobs = self.get_completed_jobs(height)
@@ -186,6 +184,26 @@ class Responder:
logger.info("No more pending jobs, going back to sleep") logger.info("No more pending jobs, going back to sleep")
# NOTCOVERED
def check_confirmations(self, txs):
for tx in txs:
if tx in self.tx_job_map and tx in self.unconfirmed_txs:
self.unconfirmed_txs.remove(tx)
logger.info("Confirmation received for transaction", tx=tx)
elif tx in self.unconfirmed_txs:
if tx in self.missed_confirmations:
self.missed_confirmations[tx] += 1
else:
self.missed_confirmations[tx] = 1
logger.info(
"Transaction missed a confirmation", tx=tx, missed_confirmations=self.missed_confirmations[tx]
)
def get_txs_to_rebroadcast(self, txs): def get_txs_to_rebroadcast(self, txs):
txs_to_rebroadcast = [] txs_to_rebroadcast = []