def test_traversal_insert(self):
     RB = self.RB
     D = RB.E
     H = RB.H
     d0 = D[0]
     values = range(32)
     random.shuffle(values)
     for v in values:
         T = RecordTraversal(H)
         D = T.insert(v, D)
         #invariants(D)
         R = ReplayTraversal(T.VO, H)
         assert R.insert(v, d0) == D[0]
         d0 = D[0]
 def test_traversal_insert(self):
     RB = self.RB
     D = RB.E
     H = RB.H
     d0 = D[0]
     values = range(32)
     random.shuffle(values)
     for v in values:
         T = RecordTraversal(H)
         D = T.insert(v,D)
         #invariants(D)
         R = ReplayTraversal(T.VO, H)
         assert R.insert(v, d0) == D[0]
         d0 = D[0]
def demo_recordreplay():
    RB = MerkleRedBlack()
    D = RB.E
    print D
    for i in range(10):
        D = RB.insert(i, D)
    print D

    roothash = D[0]

    record = RecordTraversal()
    for i in range(10):
        D = record.delete(i, D)
    print D
    print record.VO

    replay = ReplayTraversal(record.VO)
    D = roothash
    for i in range(9):
        D = replay.delete(i, D)
    print D
Exemple #4
0
def demo_recordreplay():
    RB = MerkleRedBlack()
    D = RB.E
    print D
    for i in range(10):
        D = RB.insert(i, D)
    print D

    roothash = D[0]

    record = RecordTraversal()
    for i in range(10):
        D = record.delete(i, D)
    print D
    print record.VO

    replay = ReplayTraversal(record.VO)
    D = roothash
    for i in range(9):
        D = replay.delete(i, D)
    print D
Exemple #5
0
def demo_replay():
    RB = HashTableRB(MerkleNodeDigest)
    MerkleTree = RB.E
    txs = transactions_in_order()
    with open('./testdb/vofile_132267.json', 'r') as vofile:
        for i, (nHeight, tx_id, txn) in enumerate(txs):
            #RB = HashTableRB(MerkleNodeDigest, table=LevelDict(hashtable), validate=True)
            #RB = MerkleRedBlack(MerkleNodeDigest)
            vo = pickle.load(vofile)
            import random
            if random.random() < 0.00:
                vo = perturb(vo)  # Random fuzz-test errors
            RB = ReplayTraversal(vo, MerkleNodeDigest)
            MerkleTree = reduce(partial(apply_update, RB),
                                updates_in_transaction(nHeight, tx_id, txn),
                                MerkleTree)
            print nHeight, i, len(vo), hexlify(MerkleTree)
            if nHeight > 1532: break