コード例 #1
0
ファイル: test_forest.py プロジェクト: qq52389433/p2pool
    def test_tracker3(self):
        for ii in xrange(10):
            items = []
            for i in xrange(random.randrange(100)):
                x = random.choice(items + [
                    FakeShare(hash=None),
                    FakeShare(hash=random.randrange(1000000, 2000000))
                ]).hash
                items.append(FakeShare(hash=i, previous_hash=x))

            t = forest.Tracker()
            test_tracker(t)

            for item in math.shuffled(items):
                t.add(item)
                test_tracker(t)
                if random.randrange(3) == 0:
                    while True:
                        try:
                            t.remove(random.choice(list(t.items)))
                        except NotImplementedError:
                            pass
                        else:
                            break
                    test_tracker(t)

            for item in math.shuffled(items):
                if item.hash not in t.items:
                    t.add(item)
                    test_tracker(t)
                if random.randrange(3) == 0:
                    while True:
                        try:
                            t.remove(random.choice(list(t.items)))
                        except NotImplementedError:
                            pass
                        else:
                            break
                    test_tracker(t)

            while t.items:
                while True:
                    try:
                        t.remove(random.choice(list(t.items)))
                    except NotImplementedError:
                        pass
                    else:
                        break
                test_tracker(t)
コード例 #2
0
ファイル: height_tracker.py プロジェクト: 1185/p2pool
 def __init__(self, best_block_func, factory, backlog_needed):
     self._best_block_func = best_block_func
     self._factory = factory
     self._backlog_needed = backlog_needed
     
     self._tracker = forest.Tracker()
     
     self._watch1 = self._factory.new_headers.watch(self._heard_headers)
     self._watch2 = self._factory.new_block.watch(self._request)
     
     self._requested = set()
     self._clear_task = deferral.RobustLoopingCall(self._requested.clear)
     self._clear_task.start(60)
     
     self._last_notified_size = 0
     
     self.updated = variable.Event()
     
     self._think_task = deferral.RobustLoopingCall(self._think)
     self._think_task.start(15)
     self._think2_task = deferral.RobustLoopingCall(self._think2)
     self._think2_task.start(15)
コード例 #3
0
    def __init__(self, rpc_proxy, factory, backlog_needed=1000):
        self._rpc_proxy = rpc_proxy
        self._factory = factory
        self._backlog_needed = backlog_needed

        self._tracker = forest.Tracker()

        self._watch1 = self._factory.new_headers.watch(self._heard_headers)
        self._watch2 = self._factory.new_block.watch(self._heard_block)

        self._requested = set()
        self._clear_task = task.LoopingCall(self._requested.clear)
        self._clear_task.start(60)

        self._last_notified_size = 0

        self.updated = variable.Event()

        self._think_task = task.LoopingCall(self._think)
        self._think_task.start(15)
        self._think2_task = task.LoopingCall(self._think2)
        self._think2_task.start(15)