diff --git a/src/cutecoin/core/graph.py b/src/cutecoin/core/graph.py index f76ccff75d0412592f89548794a2448dfabf172f..a160fe9869fa006c1f3aa4aa4a828f65696cb8f5 100644 --- a/src/cutecoin/core/graph.py +++ b/src/cutecoin/core/graph.py @@ -223,11 +223,11 @@ class Graph(object): current_block_number = self.community.network.current_blockid.number if current_block_number and certifier['block_number']: - current_validations = current_block_number - certifier['block_number'] + current_validations = current_block_number - certifier['block_number'] + 1 else: current_validations = 0 members_pubkeys = yield from self.community.members_pubkeys() - max_validation = self.community.network.fork_window(members_pubkeys) + max_validation = self.community.network.fork_window(members_pubkeys) + 1 # Current validation can be negative if self.community.network.current_blockid.number # is not refreshed yet @@ -301,13 +301,13 @@ class Graph(object): current_block_number = self.community.network.current_blockid.number if current_block_number and certified['block_number']: - current_validations = current_block_number - certified['block_number'] + current_validations = current_block_number - certified['block_number'] + 1 else: current_validations = 0 members_pubkeys = yield from self.community.members_pubkeys() - max_validations = self.community.network.fork_window(members_pubkeys) + max_validations = self.community.network.fork_window(members_pubkeys) + 1 - if max_validations > current_validations > 0: + if max_validations > current_validations >= 0: if self.app.preferences['expert_mode']: arc['validation_text'] = "{0}/{1}".format(current_validations, max_validations) diff --git a/src/cutecoin/core/net/api/bma/access.py b/src/cutecoin/core/net/api/bma/access.py index b0005d824221de43876d11a7e2533073e863787a..08de24228e95c74971412b1719b920b59eb16ece 100644 --- a/src/cutecoin/core/net/api/bma/access.py +++ b/src/cutecoin/core/net/api/bma/access.py @@ -172,6 +172,18 @@ class BmaAccess(QObject): return True return False + def _invalidate_cache(self, post_request): + """ + Invalidate data depending on posted request + :param class post_request: The posted request + """ + invalidated = {bma.wot.Add: bma.wot.Lookup} + invalidated_cache = self._data.copy() + for data in self._data: + if data[0] == str(invalidated[post_request]): + invalidated_cache.pop(data) + self._data = invalidated_cache + def rollback(self): """ When a rollback is detected, we move the rollback cursor to 0 @@ -293,6 +305,7 @@ class BmaAccess(QObject): pass except asyncio.TimeoutError: pass + self._invalidate_cache(request) else: raise NoPeerAvailable("", len(nodes)) return tuple(replies)