Пример #1
0
	def _key_buckets_init(self, buckets=1, key_hash=sha1):
		self.folder_buckets = buckets
		if buckets != 1:
			self._key_hash = sha1
			self._key_hash_max = khm = 1 << (8 * sha1('').digest_size)
			self._key_hash_max = khm - (khm % buckets) - 1
			self._bucket_format = '{{:0{}d}}'.format(len(str(buckets)))
Пример #2
0
 def _permuted(server):
     seed = server.get_permutation_seed()
     return sha1(peer_selection_index + seed).digest()
Пример #3
0
 def _permuted(server):
     seed = server.get_permutation_seed()
     is_unpreferred = server not in preferred_servers
     return (is_unpreferred, sha1(peer_selection_index + seed).digest())
Пример #4
0
 def get_servers_for_index(self, key):
     return sorted(self.client._servers,
                   key=lambda x: sha1(key+x[0]).digest())
Пример #5
0
 def get_servers_for_index(self, peer_selection_index):
     # first cut: return a list of (peerid, versioned-rref) tuples
     assert self.permute_peers == True
     servers = self.get_all_servers()
     key = peer_selection_index
     return sorted(servers, key=lambda x: sha1(key+x[0]).digest())