Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. from ethereum import trie, db, utils
  2. import time
  3.  
  4. MIN_COUNT = 32
  5. ROUNDS = 1000
  6. ERA_SIZE = 4
  7. MAX_COUNT = 32
  8. SYMMETRIC = True
  9.  
  10. tests = [[3, 32, False],
  11. [5, 32, False],
  12. [9, 32, False],
  13. [1000, 32, False],
  14. [1000, 32, True]]
  15.  
  16. results = dict()
  17. for i in range(100):
  18. for ERA_SIZE, KEY_SIZE, SYMMETRIC in tests:
  19. name = '1k-%d-%d-%s' % (ERA_SIZE, KEY_SIZE, 'mir' if SYMMETRIC else 'ran')
  20. a = time.time()
  21. t = trie.Trie(db.EphemDB())
  22. seed = '\x00' * 32
  23. for i in range(ROUNDS):
  24. seed = utils.sha3(seed)
  25. mykey = seed[:KEY_SIZE]
  26. if SYMMETRIC:
  27. t.update(mykey, mykey)
  28. else:
  29. seed = utils.sha3(seed)
  30. myval = seed[-1] if ord(seed[0]) % 2 else seed
  31. t.update(mykey, myval)
  32. if i % ERA_SIZE == 0:
  33. seed = t.root_hash
  34. results[name] = min(results.get(name, 10000), int(1000 * (time.time() - a)))
  35. # print t.root_hash.encode('hex')
  36.  
  37. print results
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement