GreyLink 0.51
(27.11.2011)
Поддержка распределённой сети (DHT), совместимой с клиентом StrongDC++.
Создана независимая реализация, внешние отличия:
- Список пиров, участвующих в таблице роутинга и открытых соединениях, отображается в специальном окне ("Распределённая сеть"). DHT-сеть работает только когда открыто это окно. По умолчанию открывается при старте (настройка, как обычно: Окна → Открывать при запуске). Кнопку можно вынести на тулбар.
- Ограничения greylink, применимые к хабам (отдельная шара, лимиты слотов, запрет обмена скачиваемыми файлами, отсутствующими в шаре и т.п.), можно применить к DHT-юзерам, добавив в список избранных хабов псевдо-хаб с адресом “dht:” и настроив индивидуальные параметры хаба
- UDP-порт для DHT совмещён с DC++ UDP-портом (не нужна отдельная настройка NAT для DHT). По содержимому приходящих пакетов однозначно определяется их принадлежность к DHT-, ADC- или NMDC-протоколу. Нужно помнить, что это демаскирующий фактор и greylink-клиенты с работающим DHT могут быть легко обнаружены админами хаба. Дополнительный бонус - SrcPort у отправляемых UDP-пакетов (содержащих поисковые ответы), совпадает с портом, принимающим UDP-пакеты, а не назначается случайно для каждого отправляемого пакета с ответом на поисковый запрос, как у других DC-клиентов, это снижает число записей в NAT-таблицах у некоторых роутеров.
- Не существует ошибки в маршрутизации (found by vlob)
- Шара распределённой сети хранится в базе данных SQLite (а не в памяти с выгрузкой в XML-файл при закрытии клиента)
- Файлы из шары публикуются в распределённую сеть в случайном порядке (в StrongDC++ публикация всегда происходит в определённом порядке, при большой шаре и периодических перезапусках клиента до последних файлов никогда не доходит очередь)
- Если нода 3 раза не ответила на запросы PUB/SCH/INF, она удаляется из списка активных. Стандартная реализациия DHT в DC++ продолжает посылать команды PUB/SCH на ip:port ещё 2 часа после отключения ноды
- Приватный чат между DHT-узлами (не тестировалось)
Исправлена ошибка версии 0.43: программа не посылала UDP-ответы на поисковые запросы от ADC-хабов
Внутренняя память генератора случайных чисел инициализируется через Microsoft Crypto API, а не от текущего времени (важно для DHT).
Опция "Использовать TLS" (криптозащита соединений между клиентами и хабом) по умолчанию выключена, т.к. создавала нагрузку на CPU, раздражающую пользователей.
При открытии собственного файл-листа он сохраняется (если изменялся) на диск в files.xml.bz2, чтобы в дальнейшем можно было просматривать разницу между версиями своей шары (Galantic)
CDM-отладчик корректно показывает строки NMDC-протокола (в кодировке хаба). Механизмы для работы окон поиск-шпиона и CDM-отладчика оптимизированы, чтобы уменьшить нагрузку, если эти окна закрыты
Несколько мелких удобств, которые предотвращают неочевидные "проблемы" пользователей (не описаны, т.к. элементарно реализуются по описанию)