コード例 #1
0
ファイル: ledger.py プロジェクト: Artemkaaas/plenum
    def __init__(self,
                 tree: MerkleTree,
                 dataDir: str,
                 serializer: MappingSerializer = None,
                 fileName: str = None,
                 ensureDurability: bool = True,
                 transactionLogStore: FileStore = None,
                 defaultFile=None):
        """
        :param tree: an implementation of MerkleTree
        :param dataDir: the directory where the transaction log is stored
        :param serializer: an object that can serialize the data before hashing
        it and storing it in the MerkleTree
        :param fileName: the name of the transaction log file
        :param defaultFile: file or dir to use for initialization of transaction log store
        """
        assert not transactionLogStore or not defaultFile
        self.defaultFile = defaultFile

        self.dataDir = dataDir
        self.tree = tree
        self.leafSerializer = serializer or \
            JsonSerializer()  # type: MappingSerializer
        self.hasher = TreeHasher()
        self._transactionLog = None  # type: FileStore
        self._transactionLogName = fileName or "transactions"
        self.ensureDurability = ensureDurability
        self._customTransactionLogStore = transactionLogStore
        self.start()
        self.seqNo = 0
        self.recoverTree()
コード例 #2
0
ファイル: ledger.py プロジェクト: yarasan/indy-plenum
    def __init__(self,
                 tree: MerkleTree,
                 dataDir: str,
                 txn_serializer: MappingSerializer = None,
                 hash_serializer: MappingSerializer = None,
                 fileName: str = None,
                 ensureDurability: bool = True,
                 transactionLogStore: KeyValueStorage = None,
                 genesis_txn_initiator: GenesisTxnInitiator = None):
        """
        :param tree: an implementation of MerkleTree
        :param dataDir: the directory where the transaction log is stored
        :param serializer: an object that can serialize the data before hashing
        it and storing it in the MerkleTree
        :param fileName: the name of the transaction log file
        :param genesis_txn_initiator: file or dir to use for initialization of transaction log store
        """
        self.genesis_txn_initiator = genesis_txn_initiator

        self.dataDir = dataDir
        self.tree = tree
        self.txn_serializer = txn_serializer or ledger_txn_serializer  # type: MappingSerializer
        # type: MappingSerializer
        self.hash_serializer = hash_serializer or ledger_hash_serializer
        self.hasher = TreeHasher()
        self._transactionLog = None  # type: KeyValueStorage
        self._transactionLogName = fileName or "transactions"
        self.ensureDurability = ensureDurability
        self._customTransactionLogStore = transactionLogStore
        self.seqNo = 0
        self.start()
        self.recoverTree()
        if self.genesis_txn_initiator and self.size == 0:
            self.genesis_txn_initiator.init_ledger_from_genesis_txn(self)
コード例 #3
0
    def __init__(self, hasher=TreeHasher(), tree_size=0, hashes=(),
                 hashStore=None):

        # These two queues should be written to two simple position-accessible
        # arrays (files, database tables, etc.)
        self.hashStore = hashStore or MemoryHashStore()  # type: HashStore
        self.__hasher = hasher
        self._update(tree_size, hashes)
コード例 #4
0
def hasher():
    return TreeHasher()
コード例 #5
0
ファイル: merkle_verifier.py プロジェクト: Artemkaaas/plenum
 def __init__(self, hasher=TreeHasher()):
     self.hasher = hasher