From 36a5f624fa95878ae92a92e39008fbbd8115cc34 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sat, 3 Oct 2015 09:17:21 +0200 Subject: [PATCH] Refactoring of transactions - Transactions are now under the form of a table state --- doc/uml/tx_lifecycle.png | Bin 60928 -> 65316 bytes doc/uml/tx_lifecycle.pu | 2 +- lib/ucoinpy/documents/__init__.py | 51 +---- lib/ucoinpy/documents/block.py | 36 ++- lib/ucoinpy/documents/certification.py | 2 +- lib/ucoinpy/documents/membership.py | 2 +- lib/ucoinpy/documents/peer.py | 2 +- lib/ucoinpy/documents/status.py | 2 +- lib/ucoinpy/documents/transaction.py | 3 +- src/cutecoin/core/community.py | 9 +- src/cutecoin/core/net/network.py | 2 - src/cutecoin/core/net/node.py | 4 +- src/cutecoin/core/transfer.py | 289 +++++++++++++++++++------ src/cutecoin/core/txhistory.py | 141 ++++++------ src/cutecoin/models/txhistory.py | 26 ++- 15 files changed, 363 insertions(+), 208 deletions(-) diff --git a/doc/uml/tx_lifecycle.png b/doc/uml/tx_lifecycle.png index d73d828a1511f68a30f4d03bfdd317e0189c0636..e27439cdf29b9dc51156869612b86feef74afc49 100644 GIT binary patch literal 65316 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 b)7&zq!c&jzqt|8=f2*mcv+uU5)rJ27$L3eL literal 60928 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 diff --git a/doc/uml/tx_lifecycle.pu b/doc/uml/tx_lifecycle.pu index 28405b64..bce55141 100644 --- a/doc/uml/tx_lifecycle.pu +++ b/doc/uml/tx_lifecycle.pu @@ -1 +1 @@ -@startuml note "With B a Block\nWith W the Median fork window\nWith Cur the current block of the main branch" as N1 state Local_Tx { [*] --> To_send : Signed locally To_send : B = none To_send --> Awaiting : Node answered\n200 OK to POST Awaiting : B = Cur Awaiting --> Refused : Not registered in [B; B+W] Refused --> To_send : Send back Refused --> [*] : Drop } state Registered { [*] --> Validating : Posted\nsin the blockchain Validating : B = Block containing the Tx Awaiting --> Validating : Found in the blockchain Validating --> Validated : Cur-B > W Validated --> Validating : Blockchain\nrollback Validated --> Awaiting : Blockchain\nrollback\ntx local removed Validated --> [*] : Blockchain\nrollback\ntx removed Validating --> [*] : Blockchain\nrollback\ntx removed } @enduml \ No newline at end of file +@startuml note "With B a Block\nWith W the Median fork window\nWith Cur the current block of the main branch\nWith T a time" as N1 state Local_Tx { [*] --> To_send : Signed locally To_send : B = none To_send --> Awaiting : Node answered\n200 OK to POST Awaiting : Time = Cur.MedianTime Awaiting --> Refused : Not registered in [T; T+W*MedianTime] Refused --> To_send : Send back Refused --> [*] : Drop } state Registered { [*] --> Validating : Posted\nsin the blockchain Validating : B = Block containing the Tx Awaiting --> Validating : Found in the blockchain Validating --> Validated : Cur-B > W Validated --> Validating : Blockchain\nrollback Validated --> Awaiting : Blockchain\nrollback\ntx local removed Validated --> [*] : Blockchain\nrollback\ntx removed Validating --> [*] : Blockchain\nrollback\ntx removed } @enduml \ No newline at end of file diff --git a/lib/ucoinpy/documents/__init__.py b/lib/ucoinpy/documents/__init__.py index 9763c366..2291e35a 100644 --- a/lib/ucoinpy/documents/__init__.py +++ b/lib/ucoinpy/documents/__init__.py @@ -1,44 +1,7 @@ -""" -Created on 3 déc. 2014 - -@author: inso -""" -import base58 -import base64 -import re -import logging -from ..key import Base58Encoder - -class Document: - re_version = re.compile("Version: ([0-9]+)\n") - re_currency = re.compile("Currency: ([^\n]+)\n") - re_signature = re.compile("([A-Za-z0-9+/]+(?:=|==)?)\n") - - def __init__(self, version, currency, signatures): - self.version = version - self.currency = currency - if signatures: - self.signatures = [s for s in signatures if s is not None] - else: - self.signatures = [] - - def sign(self, keys): - """ - Sign the current document. - Warning : current signatures will be replaced with the new ones. - """ - self.signatures = [] - for key in keys: - signing = base64.b64encode(key.signature(bytes(self.raw(), 'ascii'))) - logging.debug("Signature : \n{0}".format(signing.decode("ascii"))) - self.signatures.append(signing.decode("ascii")) - - def signed_raw(self): - """ - If keys are None, returns the raw + current signatures - If keys are present, returns the raw signed by these keys - """ - raw = self.raw() - signed = "\n".join(self.signatures) - signed_raw = raw + signed + "\n" - return signed_raw +from .block import Block, BlockId +from .certification import SelfCertification, Certification +from .membership import Membership +from .peer import Endpoint, BMAEndpoint, UnknownEndpoint, Peer +from .status import Status +from .transaction import SimpleTransaction, Transaction +from .document import Document \ No newline at end of file diff --git a/lib/ucoinpy/documents/block.py b/lib/ucoinpy/documents/block.py index 00ce0f77..81fafccc 100644 --- a/lib/ucoinpy/documents/block.py +++ b/lib/ucoinpy/documents/block.py @@ -5,7 +5,7 @@ Created on 2 déc. 2014 """ from .. import PROTOCOL_VERSION -from . import Document +from .document import Document from .certification import SelfCertification, Certification from .membership import Membership from .transaction import Transaction @@ -14,6 +14,36 @@ import re import logging +class BlockId: + """ + A simple block id + """ + re_hash = re.compile("([0-9a-fA-F]{5,40})") + + @classmethod + def empty(cls): + return cls(0, Block.Empty_Hash) + + def __init__(self, number, sha_hash): + assert(type(number) is int) + assert(BlockId.re_hash.match(sha_hash) is not None) + self.number = number + self.sha_hash = sha_hash + + @classmethod + def from_str(cls, blockid): + """ + :param str blockid: The block id + """ + data = blockid.split("-") + number = int(data[0]) + sha_hash = data[1] + return cls(number, sha_hash) + + def __str__(self): + return "{0}-{1}".format(self.number, self.sha_hash) + + class Block(Document): """ Version: VERSION @@ -107,6 +137,10 @@ BOTTOM_SIGNATURE self.certifications = certifications self.transactions = transactions + @property + def blockid(self): + return BlockId(self.number, self.sha_hash) + @classmethod def from_signed_raw(cls, raw): lines = raw.splitlines(True) diff --git a/lib/ucoinpy/documents/certification.py b/lib/ucoinpy/documents/certification.py index d7e79adb..61999ccf 100644 --- a/lib/ucoinpy/documents/certification.py +++ b/lib/ucoinpy/documents/certification.py @@ -7,7 +7,7 @@ import re import base64 import logging -from . import Document +from .document import Document class SelfCertification(Document): diff --git a/lib/ucoinpy/documents/membership.py b/lib/ucoinpy/documents/membership.py index 570110e2..097d3676 100644 --- a/lib/ucoinpy/documents/membership.py +++ b/lib/ucoinpy/documents/membership.py @@ -4,7 +4,7 @@ Created on 2 déc. 2014 @author: inso """ from .. import PROTOCOL_VERSION -from . import Document +from .document import Document import re diff --git a/lib/ucoinpy/documents/peer.py b/lib/ucoinpy/documents/peer.py index 6ca7606c..80dddef7 100644 --- a/lib/ucoinpy/documents/peer.py +++ b/lib/ucoinpy/documents/peer.py @@ -7,7 +7,7 @@ Created on 2 déc. 2014 import re from ..api.bma import ConnectionHandler -from . import Document +from .document import Document from .. import PROTOCOL_VERSION, MANAGED_API diff --git a/lib/ucoinpy/documents/status.py b/lib/ucoinpy/documents/status.py index f11e7542..acfd5eb4 100644 --- a/lib/ucoinpy/documents/status.py +++ b/lib/ucoinpy/documents/status.py @@ -5,7 +5,7 @@ Created on 2 déc. 2014 """ import re -from . import Document +from .document import Document class Status(Document): diff --git a/lib/ucoinpy/documents/transaction.py b/lib/ucoinpy/documents/transaction.py index 0a9d40d2..5f2f4e13 100644 --- a/lib/ucoinpy/documents/transaction.py +++ b/lib/ucoinpy/documents/transaction.py @@ -4,10 +4,11 @@ Created on 2 déc. 2014 @author: inso """ -from . import Document +from .document import Document import re import logging + class Transaction(Document): """ Document format : diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py index d2658542..8098594c 100644 --- a/src/cutecoin/core/community.py +++ b/src/cutecoin/core/community.py @@ -16,7 +16,7 @@ from PyQt5.QtCore import QObject, pyqtSignal from ..tools.exceptions import NoPeerAvailable from .net.network import Network from ucoinpy.api import bma -from ucoinpy.documents.block import Block +from ucoinpy.documents import Block, BlockId from .net.api.bma.access import BmaAccess @@ -287,14 +287,11 @@ class Community(QObject): try: block = yield from self.bma_access.future_request(bma.blockchain.Current) signed_raw = "{0}{1}\n".format(block['raw'], block['signature']) - block_hash = hashlib.sha1(signed_raw.encode("ascii")).hexdigest().upper() - block_number = block['number'] except ValueError as e: if '404' in str(e): - block_hash = Block.Empty_Hash - block_number = 0 + return BlockId.empty() - return {'number': block_number, 'hash': block_hash} + return Block.from_signed_raw(signed_raw).blockid @asyncio.coroutine def members_pubkeys(self): diff --git a/src/cutecoin/core/net/network.py b/src/cutecoin/core/net/network.py index 4146da8d..1d6030ff 100644 --- a/src/cutecoin/core/net/network.py +++ b/src/cutecoin/core/net/network.py @@ -12,8 +12,6 @@ import asyncio from ucoinpy.documents.peer import Peer from ucoinpy.documents.block import Block -from ...tools.decorators import asyncify - from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QTimer from collections import Counter diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py index a64b6fa8..19c71e96 100644 --- a/src/cutecoin/core/net/node.py +++ b/src/cutecoin/core/net/node.py @@ -296,8 +296,8 @@ class Node(QObject): if not self.block or block_hash != self.block['hash']: try: - #TODO: Check previous block - self.main_chain_previous_block = yield from bma.blockchain.Block(conn_handler, + if self.block: + self.main_chain_previous_block = yield from bma.blockchain.Block(conn_handler, self.block['number']).get() except ValueError as e: if '404' in str(e): diff --git a/src/cutecoin/core/transfer.py b/src/cutecoin/core/transfer.py index 29902ca5..5a78b7c2 100644 --- a/src/cutecoin/core/transfer.py +++ b/src/cutecoin/core/transfer.py @@ -6,14 +6,14 @@ Created on 31 janv. 2015 import logging import asyncio from ucoinpy.api import bma -from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject -from PyQt5.QtNetwork import QNetworkReply +from ucoinpy.documents import Block, BlockId +from PyQt5.QtCore import pyqtSignal, QObject import hashlib +from enum import Enum -class Transfer(QObject): +class TransferState(Enum): """ - A transfer is the lifecycle of a transaction. TO_SEND means the transaction wasn't sent yet AWAITING means the transaction is waiting to reach K blockchain validation VALIDATED means the transaction was validated locally and is considered present in the blockchain @@ -29,10 +29,15 @@ class Transfer(QObject): REFUSED = 3 DROPPED = 5 + +class Transfer(QObject): + """ + A transfer is the lifecycle of a transaction. + """ transfer_broadcasted = pyqtSignal(str) broadcast_error = pyqtSignal(int, str) - def __init__(self, hash, state, metadata): + def __init__(self, sha_hash, state, blockid, metadata, locally_created): """ The constructor of a transfer. Check for metadata keys which must be present : @@ -43,12 +48,12 @@ class Transfer(QObject): - amount - comment - :param txdoc: The Transaction ucoinpy object - :param state: The state of the Transfer (TO_SEND, AWAITING, VALIDATED, REFUSED or DROPPED) - :param metadata: The transfer metadata + :param str sha_hash: The hash of the transaction + :param TransferState state: The state of the Transfer + :param ucoinpy.documents.BlockId blockid: The blockid of the transaction in the blockchain + :param dict metadata: The transfer metadata """ assert('receiver' in metadata) - assert('block' in metadata) assert('time' in metadata) assert('issuer' in metadata) assert('amount' in metadata) @@ -58,32 +63,81 @@ class Transfer(QObject): assert('txid' in metadata) super().__init__() - self.hash = hash + self.sha_hash = sha_hash self.state = state + self.blockid = blockid + self._locally_created = locally_created self._metadata = metadata + self._table_states = { + (TransferState.TO_SEND, (list, Block)): + (self._broadcast_success, self._wait, TransferState.AWAITING), + + (TransferState.AWAITING, (bool, Block)): + (self._found_in_block, self._be_validating, TransferState.VALIDATING), + (TransferState.AWAITING, (bool, Block, int)): + (self._not_found_in_blockchain, None, TransferState.REFUSED), + + (TransferState.VALIDATING, (bool, Block, int)): + (self._reached_enough_validation, None, TransferState.VALIDATED), + (TransferState.VALIDATING, (bool, Block)): + (self._rollback_and_removed, self._drop, TransferState.DROPPED), + + (TransferState.VALIDATED, (bool, Block)): + (self._rollback_still_present, self._be_validating, TransferState.VALIDATING), + (TransferState.VALIDATED, (bool, Block)): + (self._rollback_and_removed, self._drop, TransferState.DROPPED), + (TransferState.VALIDATED, (bool, Block)): + (self._rollback_and_local, self._wait, TransferState.AWAITING), + + (TransferState.DROPPED, ()): + (self._is_locally_created, None, TransferState.TO_SEND), + (TransferState.REFUSED, ()): + (self._is_locally_created, self._drop, TransferState.DROPPED), + } + @classmethod def initiate(cls, metadata): """ Create a new transfer in a "TO_SEND" state. + :param dict metadata: The computed metadata of the transfer + :return: A new transfer + :rtype: Transfer """ - return cls(None, Transfer.TO_SEND, metadata) + return cls(None, TransferState.TO_SEND, None, metadata, True) @classmethod - def create_from_blockchain(cls, hash, metadata, block_number, time, nb_validation): + def create_from_blockchain(cls, hash, blockid, metadata): """ Create a new transfer sent from another cutecoin instance + :param str hash: The transaction hash + :param ucoinpy.documents.BlockId blockid: The block id were we found the tx + :param dict metadata: The computed metadata of the transaction + :return: A new transfer + :rtype: Transfer """ - tx = cls(hash, Transfer.VALIDATING, metadata) - tx.check_registered(block_number, time, nb_validation) - return tx + return cls(hash, TransferState.VALIDATING, blockid, metadata, False) @classmethod def load(cls, data): """ Create a new transfer from a dict in json format. + :param dict data: The loaded data + :return: A new transfer + :rtype: Transfer """ - return cls(data['hash'], data['state'], data['metadata']) + return cls(data['hash'], TransferState[data['state']], BlockId.from_str(data['blockid']), + data['metadata'], data['local']) + + def jsonify(self): + """ + :return: The transfer as a dict in json format + """ + return {'hash': self.sha_hash, + 'state': self.state.name, + 'blockid': str(self.blockid), + 'metadata': self._metadata, + 'local': self._locally_created} @property def metadata(self): @@ -92,13 +146,159 @@ class Transfer(QObject): """ return self._metadata - def jsonify(self): + def _not_found_in_blockchain(self, rollback, block, mediantime_target): """ - :return: The transfer as a dict in json format + Check if the transaction could not be found in the blockchain + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block block: The block to look for the tx + :param int mediantime_target: The mediantime to mine a block in the community parameters + :return: True if the transaction could not be found in a given time + :rtype: bool + """ + if not rollback: + for tx in block.transactions: + if tx.hash == self.sha_hash: + return False + if block.time > self.metadata['time'] + mediantime_target*10: + return True + return False + + def _found_in_block(self, rollback, block): + """ + Check if the transaction can be found in the blockchain + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block block: The block to check for the transaction + :return: True if the transaction was found + :rtype: bool + """ + if not rollback: + for tx in block.transactions: + if tx.hash == self.sha_hash: + return True + return False + + def _broadcast_success(self, ret_codes, time): + """ + Check if the retcode is 200 after a POST + :param list ret_codes: The POST return codes of the broadcast + :param int time: The mediantime of the blockchain. Used for transition. + :return: True if the post was successful + :rtype: bool + """ + return 200 in ret_codes + + def _reached_enough_validation(self, rollback, current_block, fork_window): """ - return {'hash': self.hash, - 'state': self.state, - 'metadata': self._metadata} + Check if the transfer reached enough validation in the blockchain + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block current_block: The current block of the main blockchain + :param int fork_window: The number of validations needed on the network + :return: True if the transfer reached enough validations + :rtype: bool + """ + return not rollback and self.blockid.number + fork_window <= current_block.number + + def _rollback_and_removed(self, rollback, block): + """ + Check if the transfer is not in the block anymore + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block block: The block to check for the transaction + :return: True if the transfer is not found in the block + """ + if rollback and block.blockid == self.blockid: + return self.sha_hash not in [t.hash for t in block.transactions] + return False + + def _rollback_still_present(self, rollback, block): + """ + Check if the transfer is not in the block anymore + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block block: The block to check for the transaction + :return: True if the transfer is found in the block + """ + if rollback and block.blockid == self.blockid: + return self.sha_hash in [t.hash for t in block.transactions] + return False + + def _rollback_and_local(self, rollback, block): + """ + Check if the transfer is not in the block anymore + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block block: The block to check for the transaction + :return: True if the transfer is found in the block + """ + if rollback and self._locally_created and block.blockid == self.blockid: + return self.sha_hash not in [t.hash for t in block.transactions] + return False + + def _is_locally_created(self): + """ + Check if we can send back the transaction if it was locally created + :return: True if the transaction was locally created + """ + return self._locally_created + + def _wait(self, ret_codes, current_block): + """ + Set the transfer as AWAITING validation. + :param list ret_codes: The responses return codes + :param ucoinpy.documents.Block current_block: Current block of the main blockchain + """ + self.blockid = current_block + self._metadata['time'] = current_block.mediantime + + def _be_validating(self, rollback, block): + """ + Action when the transfer ins found in a block + + :param bool rollback: True if we are in a rollback procedure + :param ucoinpy.documents.Block block: The block checked + """ + self.blockid = block.blockid + self._metadata['time'] = block.mediantime + + def _drop(self): + """ + Cancel the transfer locally. + The transfer state becomes TransferState.DROPPED. + """ + self.blockid = None + + def _try_transition(self, transition_key, inputs): + """ + Try the transition defined by the given transition_key + with inputs + :param tuple transition_key: The transition key in the table states + :param tuple inputs: The inputs + :return: True if the transition was applied + :rtype: bool + """ + if len(inputs) == len(transition_key[1]): + for i, input in enumerate(inputs): + if type(input) is not transition_key[1][i]: + return False + if self._table_states[transition_key][0](*inputs): + next_state = self._table_states[transition_key] + logging.debug("{0} : {1} --> {2}".format(self.sha_hash[:5], self.state.name, next_state[2].name)) + # If the transition changes data, apply changes + if next_state[1]: + next_state[1](*inputs) + self.state = next_state[2] + return True + return False + + def run_state_transitions(self, inputs): + """ + Try all current state transitions with inputs + :param tuple inputs: The inputs passed to the transitions + :return: True if the transaction changed state + :rtype: bool + """ + transition_keys = [k for k in self._table_states.keys() if k[0] == self.state] + for key in transition_keys: + if self._try_transition(key, inputs): + return True + return False @asyncio.coroutine def send(self, txdoc, community): @@ -112,13 +312,10 @@ class Transfer(QObject): """ responses = yield from community.bma_access.broadcast(bma.tx.Process, post_args={'transaction': txdoc.signed_raw()}) - self.state = Transfer.AWAITING - self.hash = hashlib.sha1(txdoc.signed_raw().encode("ascii")).hexdigest().upper() blockid = yield from community.blockid() block = yield from community.bma_access.future_request(bma.blockchain.Block, - req_args={'number': blockid['number']}) - self._metadata['block'] = blockid['number'] - self._metadata['time'] = block['medianTime'] + req_args={'number': blockid.number}) + time = block['medianTime'] result = (False, "") for r in responses: if r.status == 200: @@ -127,43 +324,5 @@ class Transfer(QObject): result = (False, (yield from r.text())) else: yield from r.text() - + self.run_state_transitions(([r.status for r in responses], time)) return result - - def check_registered(self, txhash, block_number, time, nb_validation): - """ - Check if the transfer was registered in a block. - Update the transfer state to VALIDATED if it was registered. - - :param txhash: A transaction ucoinpy object found in the block - :param int block_number: The block number checked - :param int time: The time of the block - :param int nb_validation: The number of validations needed to become VALIDATED - """ - if txhash == self.hash: - if self.state == Transfer.AWAITING: - self.state = Transfer.VALIDATING - self._metadata['block'] = block_number - self._metadata['time'] = time - if self.state == Transfer.VALIDATING and \ - self._metadata['block'] - block_number >= nb_validation: - self.state = Transfer.VALIDATED - - def check_refused(self, time, block_time, mediantime_blocks): - """ - Check if the transfer was refused - If more than block_time*15 seconds passed since - transfer, it is considered as refused. - - :param int block: The current block number - """ - if time > self._metadata['time'] + block_time*mediantime_blocks*10: - self.state = Transfer.REFUSED - - def drop(self): - """ - Cancel the transfer locally. - The transfer state becomes "DROPPED". - """ - self.state = Transfer.DROPPED - diff --git a/src/cutecoin/core/txhistory.py b/src/cutecoin/core/txhistory.py index 98bb117a..d3cd3c08 100644 --- a/src/cutecoin/core/txhistory.py +++ b/src/cutecoin/core/txhistory.py @@ -1,7 +1,7 @@ import asyncio import logging import hashlib -from .transfer import Transfer +from .transfer import Transfer, TransferState from ucoinpy.documents.transaction import InputSource, OutputSource from ucoinpy.documents.block import Block from ..tools.exceptions import LookupFailureError, NoPeerAvailable @@ -39,6 +39,7 @@ class TxHistory(): self.available_sources.append(InputSource.from_inline(s['inline'])) for d in data['dividends']: + d['state'] = TransferState[d['state']] self._dividends.append(d) self.latest_block = data['latest_block'] @@ -54,7 +55,8 @@ class TxHistory(): data_sources.append({'inline': "{0}\n".format(s.inline())}) data_dividends = [] - for d in self._dividends: + for d in self._dividends.copy(): + d['state'] = d['state'].name data_dividends.append(d) return {'latest_block': self.latest_block, @@ -64,7 +66,7 @@ class TxHistory(): @property def transfers(self): - return [t for t in self._transfers if t.state != Transfer.DROPPED] + return [t for t in self._transfers if t.state != TransferState.DROPPED] @property def dividends(self): @@ -73,34 +75,22 @@ class TxHistory(): def stop_coroutines(self): self._stop_coroutines = True - @staticmethod @asyncio.coroutine - def _validation_state(community, block_number, current_block): - members_pubkeys = yield from community.members_pubkeys() - if block_number + community.network.fork_window(members_pubkeys) <= current_block["number"]: - state = Transfer.VALIDATED - else: - state = Transfer.VALIDATING - return state - - @asyncio.coroutine - def _parse_transaction(self, community, tx, block_number, - mediantime, received_list, - current_block, txid): + def _parse_transaction(self, community, tx, blockid, + mediantime, received_list, txid): """ Parse a transaction :param cutecoin.core.Community community: The community :param ucoinpy.documents.Transaction tx: The tx json data - :param int block_number: The block number were we found the tx + :param ucoinpy.documents.BlockId blockid: The block id where we found the tx :param int mediantime: Median time on the network :param list received_list: The list of received transactions - :param int current_block: The current block of the network :param int txid: The latest txid :return: the found transaction """ receivers = [o.pubkey for o in tx.outputs if o.pubkey != tx.issuers[0]] - nb_validations = community.network.fork_window((yield from community.members_pubkeys())) + if len(receivers) == 0: receivers = [tx.issuers[0]] @@ -116,58 +106,51 @@ class TxHistory(): except LookupFailureError: receiver_uid = "" - metadata = {'block': block_number, + metadata = { 'time': mediantime, 'comment': tx.comment, 'issuer': tx.issuers[0], 'issuer_uid': issuer_uid, 'receiver': receivers[0], 'receiver_uid': receiver_uid, - 'txid': txid} + 'txid': txid + } in_issuers = len([i for i in tx.issuers if i == self.wallet.pubkey]) > 0 in_outputs = len([o for o in tx.outputs if o.pubkey == self.wallet.pubkey]) > 0 - watched = [t for t in self._transfers - if t.state in (Transfer.AWAITING, Transfer.VALIDATING)] # We check if the transaction correspond to one we sent # but not from this cutecoin Instance tx_hash = hashlib.sha1(tx.signed_raw().encode("ascii")).hexdigest().upper() - if tx_hash not in [t.hash for t in watched]: - # If the wallet pubkey is in the issuers we sent this transaction - if in_issuers: - outputs = [o for o in tx.outputs - if o.pubkey != self.wallet.pubkey] - amount = 0 - for o in outputs: - amount += o.amount - metadata['amount'] = amount - transfer = Transfer.create_from_blockchain(tx_hash, - metadata.copy(), - current_block['number'], - mediantime, nb_validations) - return transfer - # If we are not in the issuers, - # maybe it we are in the recipients of this transaction - elif in_outputs: - outputs = [o for o in tx.outputs - if o.pubkey == self.wallet.pubkey] - amount = 0 - for o in outputs: - amount += o.amount - metadata['amount'] = amount - transfer = Transfer.create_from_blockchain(tx_hash, - metadata.copy(), - current_block['number'], - mediantime, nb_validations) - received_list.append(transfer) - return transfer - else: - transfer = [t for t in watched if t.hash == tx_hash][0] - - transfer.check_registered(tx_hash, current_block['number'], mediantime, nb_validations) + # If the wallet pubkey is in the issuers we sent this transaction + if in_issuers: + outputs = [o for o in tx.outputs + if o.pubkey != self.wallet.pubkey] + amount = 0 + for o in outputs: + amount += o.amount + metadata['amount'] = amount + transfer = Transfer.create_from_blockchain(tx_hash, + blockid, + metadata.copy()) + return transfer + # If we are not in the issuers, + # maybe it we are in the recipients of this transaction + elif in_outputs: + outputs = [o for o in tx.outputs + if o.pubkey == self.wallet.pubkey] + amount = 0 + for o in outputs: + amount += o.amount + metadata['amount'] = amount + + transfer = Transfer.create_from_blockchain(tx_hash, + blockid, + metadata.copy()) + received_list.append(transfer) + return transfer return None @asyncio.coroutine @@ -202,10 +185,16 @@ class TxHistory(): block = None tries += 1 if block_doc: - for (txid, tx) in enumerate(block_doc.transactions): - transfer = yield from self._parse_transaction(community, tx, block_number, - block_doc.mediantime, received_list, - current_block, txid+txmax) + for transfer in [t for t in self._transfers if t.state == TransferState.AWAITING]: + transfer.run_state_transitions((False, block_doc)) + + new_tx = [t for t in block_doc.transactions + if t.sha_hash not in [trans.sha_hash for trans in self._transfers] + ] + + for (txid, tx) in enumerate(new_tx): + transfer = yield from self._parse_transaction(community, tx, block_doc.blockid, + block_doc.mediantime, received_list, txid+txmax) if transfer != None: #logging.debug("Transfer amount : {0}".format(transfer.metadata['amount'])) transfers.append(transfer) @@ -223,7 +212,8 @@ class TxHistory(): dividends_data = yield from community.bma_access.future_request(bma.ud.History, req_args={'pubkey': self.wallet.pubkey}) - dividends = dividends_data['history']['history'] + dividends = dividends_data['history']['history'].copy() + for d in dividends: if d['block_number'] < parsed_block: dividends.remove(d) @@ -245,21 +235,25 @@ class TxHistory(): logging.debug("Refresh from : {0} to {1}".format(block_number_from, self._block_to['number'])) dividends = yield from self.request_dividends(community, block_number_from) with_tx_data = yield from community.bma_access.future_request(bma.blockchain.TX) + members_pubkeys = yield from community.members_pubkeys() + fork_window = community.network.fork_window(members_pubkeys) blocks_with_tx = with_tx_data['result']['blocks'] new_transfers = [] new_dividends = [] # Lets look if transactions took too long to be validated awaiting = [t for t in self._transfers - if t.state == Transfer.AWAITING] + if t.state == TransferState.AWAITING] while block_number_from <= self._block_to['number']: udid = 0 for d in [ud for ud in dividends if ud['block_number'] == block_number_from]: - state = yield from TxHistory._validation_state(community, d['block_number'], self._block_to) + state = TransferState.VALIDATED if block_number_from + fork_window <= self._block_to['number'] \ + else TransferState.VALIDATING if d['block_number'] not in [ud['block_number'] for ud in self._dividends]: d['id'] = udid d['state'] = state new_dividends.append(d) + udid += 1 else: known_dividend = [ud for ud in self._dividends @@ -268,11 +262,6 @@ class TxHistory(): # We parse only blocks with transactions if block_number_from in blocks_with_tx: - # We check if validated transfers should go back to validating... - for t in [t for t in self._transfers if t.metadata['block'] == block_number_from]: - t.state = yield from TxHistory._validation_state(community, t.metadata['block'], - self._block_to) - transfers = yield from self._parse_block(community, block_number_from, received_list, self._block_to, udid + len(new_transfers)) @@ -281,6 +270,12 @@ class TxHistory(): self.wallet.refresh_progressed.emit(block_number_from, self._block_to['number'], self.wallet.pubkey) block_number_from += 1 + signed_raw = "{0}{1}\n".format(self._block_to['raw'], + self._block_to['signature']) + block_to = Block.from_signed_raw(signed_raw) + for transfer in [t for t in self._transfers if t.state == TransferState.VALIDATING]: + transfer.run_state_transitions((False, block_to, fork_window)) + # We check if latest parsed block_number is a new high number if block_number_from > self.latest_block: self.available_sources = yield from self.wallet.sources(community) @@ -313,10 +308,12 @@ class TxHistory(): req_args={'number': latest_block_number}) members_pubkeys = yield from community.members_pubkeys() # We look for the first block to parse, depending on awaiting and validating transfers and ud... - blocks = [tx.metadata['block'] for tx in self._transfers - if tx.state in (Transfer.AWAITING, Transfer.VALIDATING)] +\ - [ud['block_number'] for ud in self._dividends - if ud['state'] in (Transfer.AWAITING, Transfer.VALIDATING)] +\ + tx_blocks = [tx.blockid.number for tx in self._transfers + if tx.state in (TransferState.AWAITING, TransferState.VALIDATING) \ + and tx.blockid is not None] + ud_blocks = [ud['block_number'] for ud in self._dividends + if ud['state'] in (TransferState.AWAITING, TransferState.VALIDATING)] + blocks = tx_blocks + ud_blocks + \ [max(0, self.latest_block - community.network.fork_window(members_pubkeys))] parsed_block = min(set(blocks)) self._block_to = current_block diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py index 482fed11..4e434d61 100644 --- a/src/cutecoin/models/txhistory.py +++ b/src/cutecoin/models/txhistory.py @@ -7,7 +7,7 @@ Created on 5 févr. 2014 import datetime import logging import asyncio -from ..core.transfer import Transfer +from ..core.transfer import Transfer, TransferState from ..tools.exceptions import NoPeerAvailable from ..tools.decorators import asyncify, once_at_a_time, cancel_once_task from PyQt5.QtCore import QAbstractTableModel, Qt, QVariant, QSortFilterProxyModel, \ @@ -119,20 +119,20 @@ class TxFilterProxyModel(QSortFilterProxyModel): if role == Qt.FontRole: font = QFont() - if state_data == Transfer.AWAITING or state_data == Transfer.VALIDATING: + if state_data == TransferState.AWAITING or state_data == TransferState.VALIDATING: font.setItalic(True) - elif state_data == Transfer.REFUSED: + elif state_data == TransferState.REFUSED: font.setItalic(True) - elif state_data == Transfer.TO_SEND: + elif state_data == TransferState.TO_SEND: font.setBold(True) else: font.setItalic(False) return font if role == Qt.ForegroundRole: - if state_data == Transfer.REFUSED: + if state_data == TransferState.REFUSED: return QColor(Qt.red) - elif state_data == Transfer.TO_SEND: + elif state_data == TransferState.TO_SEND: return QColor(Qt.blue) if role == Qt.TextAlignmentRole: @@ -146,13 +146,13 @@ class TxFilterProxyModel(QSortFilterProxyModel): if source_index.column() == self.sourceModel().columns_types.index('date'): return QDateTime.fromTime_t(source_data).toString(Qt.SystemLocaleLongDate) - if state_data == Transfer.VALIDATING or state_data == Transfer.AWAITING: + if state_data == TransferState.VALIDATING or state_data == TransferState.AWAITING: block_col = model.columns_types.index('block_number') block_index = model.index(source_index.row(), block_col) block_data = model.data(block_index, Qt.DisplayRole) current_validations = 0 - if state_data == Transfer.VALIDATING: + if state_data == TransferState.VALIDATING: latest_block_number = self.community.network.latest_block_number if latest_block_number: current_validations = latest_block_number - block_data @@ -241,7 +241,10 @@ class HistoryTableModel(QAbstractTableModel): date_ts = transfer.metadata['time'] txid = transfer.metadata['txid'] - block_number = transfer.metadata['block'] + if transfer.blockid: + block_number = transfer.blockid.number + else: + block_number = None return (date_ts, sender, "", deposit, comment, transfer.state, txid, @@ -262,7 +265,10 @@ class HistoryTableModel(QAbstractTableModel): date_ts = transfer.metadata['time'] txid = transfer.metadata['txid'] - block_number = transfer.metadata['block'] + if transfer.blockid: + block_number = transfer.blockid.number + else: + block_number = None return (date_ts, receiver, paiment, "", comment, transfer.state, txid, -- GitLab