Ejemplo n.º 1
0
def demo_record():
    # Start with an empty_tree
    global MerkleTree, Trees, RB
    #RB = HashTableRB(MerkleNodeDigest, table=LevelDict(hashtable), validate=True)
    RB = MerkleRedBlack(MerkleNodeDigest)
    start = -1
    MerkleTree = RB.E

    txs = transactions_in_order()

    Trees = []
    utxo_size = 0
    txouts = 0
    RB = RecordTraversal(MerkleNodeDigest)
    with open('testdb/vofile.json', 'w') as vofile:
        for i, (nHeight, tx_id, txn) in enumerate(txs):
            if i <= start: continue
            RB = RecordTraversal(MerkleNodeDigest)
            #RB = HashTableRB(MerkleNodeDigest, table=LevelDict(hashtable), validate=True)
            #RB = MerkleRedBlack(MerkleNodeDigest)
            MerkleTree = reduce(partial(apply_update, RB),
                                updates_in_transaction(nHeight, tx_id, txn),
                                MerkleTree)
            #vo = pickle.dumps(RB.VO)
            #vofile.write(vo)
            print nHeight, i, hexlify(MerkleTree[0])
            if nHeight > 0x100000: break
Ejemplo n.º 2
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]
Ejemplo n.º 3
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]
Ejemplo n.º 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
Ejemplo n.º 5
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