Skip to content

Commit

Permalink
Challenge Gen Random Files
Browse files Browse the repository at this point in the history
  • Loading branch information
super3 committed May 31, 2015
1 parent e27a09f commit 74a464c
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ before_script:
- python dataserv/app.py &
- touch dataserv.db
- touch dataserv_test.db
- mkdir data

# run tests, e.g. python setup.py test
script:
Expand Down
17 changes: 13 additions & 4 deletions dataserv/Challenge.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
import random
from RandomIO import RandomIO
from dataserv.Farmer import sha256


class Challenge:
def __init__(self, btc_addr, height):
def __init__(self, btc_addr, height, shard_size):
self.btc_addr = btc_addr
self.height = height
self.shard_size = shard_size # in bytes

self.seeds = self.gen_seeds()
self.seed = None
self.challenge = None
self.seed_list = self.gen_seeds()

def gen_seeds(self):
"""Generate a list of seeds for challenges based on the Bitcoin address."""
Expand All @@ -21,7 +24,13 @@ def gen_seeds(self):

def pick_seed(self):
"""Generate a random challenge for the Farmer."""
return random.choice(self.seeds)
self.seed = random.choice(self.seed_list)
return self.seed

def get_seeds(self):
return self.seeds
"""Accessor for the challenge seeds."""
return self.seed_list

def gen_shard(self, seed, path):
return RandomIO(seed).genfile(self.shard_size, path)

12 changes: 10 additions & 2 deletions tests/test_Challenge.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import os
import unittest
from dataserv.Challenge import Challenge

class ChallengeTest(unittest.TestCase):

def test_seeds(self):
addr = '191GVvAaTRxLmz3rW3nU5jAV1rF186VxQc'
chal = Challenge(addr, 100)
chal = Challenge(addr, 100, 50)

iter0 = '66357e60899acae95ce1e31def3d7b32a73d34b2f12ece73cdca025a26e17e32'
iter3 = '96a6cb8668775a1751d7cf1d59cd0a8d3bc67e8ed5e6f5fce0376d5e04284071'
Expand All @@ -17,5 +18,12 @@ def test_seeds(self):

def test_challenge(self):
addr = '191GVvAaTRxLmz3rW3nU5jAV1rF186VxQc'
chal = Challenge(addr, 100)
chal = Challenge(addr, 100, 50)
self.assertTrue(chal.pick_seed() in chal.get_seeds())

def test_shard(self):
addr = '191GVvAaTRxLmz3rW3nU5jAV1rF186VxQc'
chal = Challenge(addr, 100, 10*1024*1024) # 10 MB
seed = chal.pick_seed()
path = chal.gen_shard(seed, 'data/')
os.remove(path)

0 comments on commit 74a464c

Please sign in to comment.