Merge pull request #2951 from lbryio/add-fixed-peers-conf
add `fixed_peers` setting to config
This commit is contained in:
commit
870e139fce
6 changed files with 16 additions and 10 deletions
|
@ -577,9 +577,14 @@ class Config(CLIConfig):
|
||||||
)
|
)
|
||||||
|
|
||||||
# servers
|
# servers
|
||||||
reflector_servers = Servers("Reflector re-hosting servers", [
|
reflector_servers = Servers("Reflector re-hosting servers for mirroring publishes", [
|
||||||
('reflector.lbry.com', 5566)
|
('reflector.lbry.com', 5566)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
fixed_peers = Servers("Fixed peers to fall back to if none are found on P2P for a blob", [
|
||||||
|
('cdn.reflector.lbry.com', 5567)
|
||||||
|
])
|
||||||
|
|
||||||
lbryum_servers = Servers("SPV wallet servers", [
|
lbryum_servers = Servers("SPV wallet servers", [
|
||||||
('spv11.lbry.com', 50001),
|
('spv11.lbry.com', 50001),
|
||||||
('spv12.lbry.com', 50001),
|
('spv12.lbry.com', 50001),
|
||||||
|
|
|
@ -66,7 +66,7 @@ def _download_properties(conf: Config, external_ip: str, resolve_duration: float
|
||||||
"node_rpc_timeout": conf.node_rpc_timeout,
|
"node_rpc_timeout": conf.node_rpc_timeout,
|
||||||
"peer_connect_timeout": conf.peer_connect_timeout,
|
"peer_connect_timeout": conf.peer_connect_timeout,
|
||||||
"blob_download_timeout": conf.blob_download_timeout,
|
"blob_download_timeout": conf.blob_download_timeout,
|
||||||
"use_fixed_peers": len(conf.reflector_servers) > 0,
|
"use_fixed_peers": len(conf.fixed_peers) > 0,
|
||||||
"fixed_peer_delay": fixed_peer_delay,
|
"fixed_peer_delay": fixed_peer_delay,
|
||||||
"added_fixed_peers": added_fixed_peers,
|
"added_fixed_peers": added_fixed_peers,
|
||||||
"active_peer_count": active_peer_count,
|
"active_peer_count": active_peer_count,
|
||||||
|
|
|
@ -51,15 +51,15 @@ class StreamDownloader:
|
||||||
def _delayed_add_fixed_peers():
|
def _delayed_add_fixed_peers():
|
||||||
self.added_fixed_peers = True
|
self.added_fixed_peers = True
|
||||||
self.peer_queue.put_nowait([
|
self.peer_queue.put_nowait([
|
||||||
make_kademlia_peer(None, address, None, tcp_port=port + 1, allow_localhost=True)
|
make_kademlia_peer(None, address, None, tcp_port=port, allow_localhost=True)
|
||||||
for address, port in addresses
|
for address, port in addresses
|
||||||
])
|
])
|
||||||
|
|
||||||
if not self.config.reflector_servers:
|
if not self.config.fixed_peers:
|
||||||
return
|
return
|
||||||
addresses = [
|
addresses = [
|
||||||
(await resolve_host(url, port + 1, proto='tcp'), port)
|
(await resolve_host(url, port, proto='tcp'), port)
|
||||||
for url, port in self.config.reflector_servers
|
for url, port in self.config.fixed_peers
|
||||||
]
|
]
|
||||||
if 'dht' in self.config.components_to_skip or not self.node or not \
|
if 'dht' in self.config.components_to_skip or not self.node or not \
|
||||||
len(self.node.protocol.routing_table.get_peers()) > 0:
|
len(self.node.protocol.routing_table.get_peers()) > 0:
|
||||||
|
|
|
@ -386,6 +386,7 @@ class CommandTestCase(IntegrationTestCase):
|
||||||
conf.blockchain_name = 'lbrycrd_regtest'
|
conf.blockchain_name = 'lbrycrd_regtest'
|
||||||
conf.lbryum_servers = [('127.0.0.1', 50001)]
|
conf.lbryum_servers = [('127.0.0.1', 50001)]
|
||||||
conf.reflector_servers = [('127.0.0.1', 5566)]
|
conf.reflector_servers = [('127.0.0.1', 5566)]
|
||||||
|
conf.fixed_peers = [('127.0.0.1', 5567)]
|
||||||
conf.known_dht_nodes = []
|
conf.known_dht_nodes = []
|
||||||
conf.blob_lru_cache_size = self.blob_lru_cache_size
|
conf.blob_lru_cache_size = self.blob_lru_cache_size
|
||||||
conf.components_to_skip = [
|
conf.components_to_skip = [
|
||||||
|
|
|
@ -34,13 +34,13 @@ class BlobExchangeTestBase(AsyncioTestCase):
|
||||||
self.addCleanup(shutil.rmtree, self.client_dir)
|
self.addCleanup(shutil.rmtree, self.client_dir)
|
||||||
self.addCleanup(shutil.rmtree, self.server_dir)
|
self.addCleanup(shutil.rmtree, self.server_dir)
|
||||||
self.server_config = Config(data_dir=self.server_dir, download_dir=self.server_dir, wallet=self.server_dir,
|
self.server_config = Config(data_dir=self.server_dir, download_dir=self.server_dir, wallet=self.server_dir,
|
||||||
reflector_servers=[])
|
fixed_peers=[])
|
||||||
self.server_storage = SQLiteStorage(self.server_config, os.path.join(self.server_dir, "lbrynet.sqlite"))
|
self.server_storage = SQLiteStorage(self.server_config, os.path.join(self.server_dir, "lbrynet.sqlite"))
|
||||||
self.server_blob_manager = BlobManager(self.loop, self.server_dir, self.server_storage, self.server_config)
|
self.server_blob_manager = BlobManager(self.loop, self.server_dir, self.server_storage, self.server_config)
|
||||||
self.server = BlobServer(self.loop, self.server_blob_manager, 'bQEaw42GXsgCAGio1nxFncJSyRmnztSCjP')
|
self.server = BlobServer(self.loop, self.server_blob_manager, 'bQEaw42GXsgCAGio1nxFncJSyRmnztSCjP')
|
||||||
|
|
||||||
self.client_config = Config(data_dir=self.client_dir, download_dir=self.client_dir, wallet=self.client_dir,
|
self.client_config = Config(data_dir=self.client_dir, download_dir=self.client_dir, wallet=self.client_dir,
|
||||||
reflector_servers=[])
|
fixed_peers=[])
|
||||||
self.client_storage = SQLiteStorage(self.client_config, os.path.join(self.client_dir, "lbrynet.sqlite"))
|
self.client_storage = SQLiteStorage(self.client_config, os.path.join(self.client_dir, "lbrynet.sqlite"))
|
||||||
self.client_blob_manager = BlobManager(self.loop, self.client_dir, self.client_storage, self.client_config)
|
self.client_blob_manager = BlobManager(self.loop, self.client_dir, self.client_storage, self.client_config)
|
||||||
self.client_peer_manager = PeerManager(self.loop)
|
self.client_peer_manager = PeerManager(self.loop)
|
||||||
|
|
|
@ -187,7 +187,7 @@ class TestStreamManager(BlobExchangeTestBase):
|
||||||
await self._test_time_to_first_bytes(check_post)
|
await self._test_time_to_first_bytes(check_post)
|
||||||
|
|
||||||
async def test_fixed_peer_delay_dht_peers_found(self):
|
async def test_fixed_peer_delay_dht_peers_found(self):
|
||||||
self.client_config.reflector_servers = [(self.server_from_client.address, self.server_from_client.tcp_port - 1)]
|
self.client_config.fixed_peers = [(self.server_from_client.address, self.server_from_client.tcp_port)]
|
||||||
server_from_client = None
|
server_from_client = None
|
||||||
self.server_from_client, server_from_client = server_from_client, self.server_from_client
|
self.server_from_client, server_from_client = server_from_client, self.server_from_client
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ class TestStreamManager(BlobExchangeTestBase):
|
||||||
await self._test_time_to_first_bytes(check_post, DownloadSDTimeoutError, after_setup=after_setup)
|
await self._test_time_to_first_bytes(check_post, DownloadSDTimeoutError, after_setup=after_setup)
|
||||||
|
|
||||||
async def test_override_fixed_peer_delay_dht_disabled(self):
|
async def test_override_fixed_peer_delay_dht_disabled(self):
|
||||||
self.client_config.reflector_servers = [(self.server_from_client.address, self.server_from_client.tcp_port - 1)]
|
self.client_config.fixed_peers = [(self.server_from_client.address, self.server_from_client.tcp_port)]
|
||||||
self.client_config.components_to_skip = ['dht', 'hash_announcer']
|
self.client_config.components_to_skip = ['dht', 'hash_announcer']
|
||||||
self.client_config.fixed_peer_delay = 9001.0
|
self.client_config.fixed_peer_delay = 9001.0
|
||||||
self.server_from_client = None
|
self.server_from_client = None
|
||||||
|
|
Loading…
Reference in a new issue