如何增加dht节点的数量?
当前数量约为240:
app['lt_session'].status().dht_nodes)
虽然uTorrent说它有大约500个。
这里是设置:
async def lt_session(app):
ses = app['lt_session'] = lt.session({
'active_downloads': 50,
})
ses.listen_on(6881, 6881)
# ses.set_max_connections(3)
ses.add_extension('ut_metadata')
ses.add_extension('smart_ban')
ses.add_extension('ut_pex')
ses.add_extension('metadata_transfer')
ses.add_dht_router("router.utorrent.com", 6881)
ses.add_dht_router("router.bittorrent.com", 6881)
ses.add_dht_router("dht.transmissionbt.com", 6881)
ses.add_dht_router("dht.aelitis.com", 6881)
ses.add_dht_router("router.bitcomet.com", 6881)
ses.start_dht()
ses.start_lsd()
app['torrents'] = {}
[如果您有一个“扩展的路由表”,并且深度为19(我相信这与网络的大小有关),那么您最终将在常规路由表存储桶中拥有128+64+32+16+(15*8)
= 360个节点(一旦填满向上)。在除此之外,每个级别都有8个替换桶,因此+(19 * 8)。
libtorrent的node_count
仅计算主路由表存储桶中使用的节点数。如果您也要计算替换节点,请添加dht_node_cache
。
如果要确保您的路由表适合尽可能多的节点,并且对允许添加哪些节点的限制最小:
请确保将dht_extended_routing_table
设置为true。如果要删除有关允许哪些节点进入路由表的限制,可以设置:
dht_restrict_routing_ips
至false
dht_restrict_search_ips
至false
此外,如果您有多个外部IP,您可能要确保启用监听所有这些IP,因为libtorrent将为每个IP运行DHT节点。例如,如果您拥有机器人hIPv4和IPv6。