IIRC проблема в том, что ваш маршрутизатор не закрывает эти соединения TCP правильно так, насколько Bitcoin обеспокоен эти связи все еще открыты.
Если это так, то клиент Bitcoin не будет идти вниз от скажем более 100 соединений до 8 открытых соединений (как показано в строке состояния GUI) после изменения IP-адреса, не так ли?
У меня был клиент Линукс 0.4.0 работает в течение ночи несколько раз и никогда не замечал снижение соединений (также получать новые IP каждый 24hours). Так на самом деле это выглядит как проблема на вашей стороне, а не общий вопрос.
Интересно, сколько соединений было отчет клиента Bitcoin иметь открытым, когда вы проверили это?
Может быть стоит отметить, что другое программное обеспечение, я использую для добычи полезных ископаемых (poclbm.py), ИРЦ, Usenet и BitTorrent делает обрабатывать изменение IP-адреса без проблем.
Я мог бы легко написать скрипт, который убивает и перезапустить клиент Bitcoin при изменении IP-адреса, но это будет больше, чем обходной путь фактического исправления.
ОБНОВИТЬ:
Я проверял исходный код здесь:
https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L405Функции ThreadGetMyExternalIP () и GetMyExternalIP () в частности. Я думаю, что проблема связана с тем, как кэшируются IP-адрес при получении от любого
IRC (Сервер IP: 92.243.23.21), или когда dyndns.org услуги резервного копирования и showmyip.com используется (Да, к моему удивлению, клиент Bitcoin на самом деле
полагаться на эти услуги жёстко).
Кажется, эти функции не называются должным образом, когда мой маршрутизатор получить новый IP-адрес через DHCP, поэтому никакие входящие соединения не могут достичь хоста, потому что старый IP-адрес используется, только 8 соединений, которые до сих пор исходящих воссоединяется нормально после тайм-аута.