Пример #1
0
def test_recover_merkle_tree_from_hash_store(tempdir):
    ledger = create_default_ledger(tempdir)
    for d in range(100):
        ledger.add(random_txn(d))
    ledger.stop()
    size_before = ledger.size
    tree_root_hash_before = ledger.tree.root_hash
    tree_size_before = ledger.tree.tree_size
    root_hash_before = ledger.root_hash
    hashes_before = ledger.tree.hashes

    restartedLedger = create_default_ledger(tempdir)
    assert size_before == restartedLedger.size
    assert root_hash_before == restartedLedger.root_hash
    assert hashes_before == restartedLedger.tree.hashes
    assert tree_root_hash_before == restartedLedger.tree.root_hash
    assert tree_size_before == restartedLedger.tree.tree_size
def test_init_twice_without_initiator(tempdir, genesis_txns, init_genesis_txn_file):
    ledger = create_default_ledger(tempdir, init_genesis_txn_file)
    size_before = ledger.size
    txn_size_before = ledger._transactionLog.size
    tree_root_hash_before = ledger.tree.root_hash
    tree_size_before = ledger.tree.tree_size
    root_hash_before = ledger.root_hash

    ledger.stop()
    ledger = create_default_ledger(tempdir)
    assert size_before == ledger.size
    assert ledger.size == len(genesis_txns)
    assert txn_size_before == ledger._transactionLog.size
    assert ledger._transactionLog.size == len(genesis_txns)
    assert tree_root_hash_before == ledger.tree.root_hash
    assert tree_size_before == ledger.tree.tree_size
    assert root_hash_before == ledger.root_hash
Пример #3
0
def test_init_twice_without_initiator(tempdir, genesis_txns, init_genesis_txn_file):
    ledger = create_default_ledger(tempdir, init_genesis_txn_file)
    size_before = ledger.size
    txn_size_before = ledger._transactionLog.size
    tree_root_hash_before = ledger.tree.root_hash
    tree_size_before = ledger.tree.tree_size
    root_hash_before = ledger.root_hash

    ledger.stop()
    ledger = create_default_ledger(tempdir)
    assert size_before == ledger.size
    assert ledger.size == len(genesis_txns)
    assert txn_size_before == ledger._transactionLog.size
    assert ledger._transactionLog.size == len(genesis_txns)
    assert tree_root_hash_before == ledger.tree.root_hash
    assert tree_size_before == ledger.tree.tree_size
    assert root_hash_before == ledger.root_hash
Пример #4
0
def test_consistency_verification_on_startup_case_1(tempdir):
    """
    One more node was added to nodes file
    """
    ledger = create_default_ledger(tempdir)
    tranzNum = 10
    for d in range(tranzNum):
        ledger.add(random_txn(d))
    # Writing one more node without adding of it to leaf and transaction logs
    badNode = (None, None, ('X' * 32))
    ledger.tree.hashStore.writeNode(badNode)
    ledger.stop()

    with pytest.raises(ConsistencyVerificationFailed):
        tree = CompactMerkleTree(hashStore=ledger.tree.hashStore)
        ledger = NoTransactionRecoveryLedger(tree=tree, dataDir=tempdir)
        ledger.recoverTreeFromHashStore()
    ledger.stop()
Пример #5
0
def test_consistency_verification_on_startup_case_1(tempdir):
    """
    One more node was added to nodes file
    """
    ledger = create_default_ledger(tempdir)
    tranzNum = 10
    for d in range(tranzNum):
        ledger.add(random_txn(d))
    # Writing one more node without adding of it to leaf and transaction logs
    badNode = (None, None, ('X' * 32))
    ledger.tree.hashStore.writeNode(badNode)
    ledger.stop()

    with pytest.raises(ConsistencyVerificationFailed):
        tree = CompactMerkleTree(hashStore=ledger.tree.hashStore)
        ledger = NoTransactionRecoveryLedger(tree=tree, dataDir=tempdir)
        ledger.recoverTreeFromHashStore()
    ledger.stop()
Пример #6
0
def test_consistency_verification_on_startup_case_2(tempdir):
    """
    One more transaction added to transactions file
    """
    ledger = create_default_ledger(tempdir)
    tranzNum = 10
    for d in range(tranzNum):
        ledger.add(random_txn(d))

    # Adding one more entry to transaction log without adding it to merkle tree
    badData = random_txn(50)
    value = ledger.serialize_for_txn_log(badData)
    key = str(tranzNum + 1)
    ledger._transactionLog.put(key=key, value=value)

    ledger.stop()

    with pytest.raises(ConsistencyVerificationFailed):
        tree = CompactMerkleTree(hashStore=ledger.tree.hashStore)
        ledger = NoTransactionRecoveryLedger(tree=tree, dataDir=tempdir)
        ledger.recoverTreeFromHashStore()
    ledger.stop()
Пример #7
0
def test_consistency_verification_on_startup_case_2(tempdir):
    """
    One more transaction added to transactions file
    """
    ledger = create_default_ledger(tempdir)
    tranzNum = 10
    for d in range(tranzNum):
        ledger.add(random_txn(d))

    # Adding one more entry to transaction log without adding it to merkle tree
    badData = random_txn(50)
    value = ledger.serialize_for_txn_log(badData)
    key = str(tranzNum + 1)
    ledger._transactionLog.put(key=key, value=value)

    ledger.stop()

    with pytest.raises(ConsistencyVerificationFailed):
        tree = CompactMerkleTree(hashStore=ledger.tree.hashStore)
        ledger = NoTransactionRecoveryLedger(tree=tree, dataDir=tempdir)
        ledger.recoverTreeFromHashStore()
    ledger.stop()