Введение

GnucDNA была программной библиотекой для разработки одноранговых приложений. Она предоставляла разработчикам общий слой для создания собственных клиентов или сетей Gnutella или Gnutella2. Будучи отдельным компонентом, GnucDNA могла обновляться независимо от клиента, распространяя улучшения на уже использующие её приложения.

Общий

GnucDNA – это широко распространенная и хорошо зарекомендовавшая себя библиотека, которую программисты могут расширять. Она предоставляет возможность создания децентрализованной сети между узлами с интегрированной поддержкой Ultrapeer, что позволяет сети избегать ограничений, связанных с узлами с низкой пропускной способностью. Однако, поддержка Ultrapeer, соответственно Hub на G2, устарела по сравнению с современными реализациями в таких клиентах, как gtk gnutella и Shareaza. Библиотека предоставляет программам, использующим её, возможность обмена файлами со встроенной поддержкой загрузки и выгрузки, постановки файлов в очередь и частичного обмена файлами (возможность выгружать проверенные фрагменты файла во время его загрузки), вычисления хеш-сумм файлов, извлечения метаданных для обмена по сети, а также выполнения расширенного поиска по конкретным хеш-суммам и метаданным. GnucDNA также позволяет приложениям легко обновлять программное обеспечение через ту же P2P-сеть, которую они создают. Компонент GnucDNA основан на COM, что обеспечивает языковую независимость и универсальность. Приложения, написанные на C++, Visual Basic, .Net и даже на скриптовых языках, могут использовать GnucDNA. Кроме того, будучи отдельным компонентом, он может использоваться в различных ситуациях, например, как часть плагина, сервиса или работающего за веб-сервером.

История

Более пяти лет разработки было посвящено кодированию, улучшению и тестированию GnucDNA в рамках проекта Gnucleus. Когда другие обратили внимание на проект, движок был скопирован более 15 раз, однако, несмотря на то, что интерфейсы и сервисы, предлагаемые другими, были хороши, они не могли угнаться за основным развитием. Поэтому было принято решение выделить движок Gnucleus, теперь известный как GnucDNA, в отдельный компонент, чтобы любой желающий мог получить к нему доступ, не опасаясь отстать от новых разработок и улучшений. Это также открывает новые возможности для тех, кто заинтересован в создании собственных P2P-сетей, но не хочет заново разрабатывать механизмы низкоуровневой связи и передачи файлов.

Гнуклеус

Gnucleus — это клиентский проект для сетей gnutella и Gnutella2 под Microsoft Windows, в котором изначально разрабатывался код библиотеки GnucDNA до выделения в полусамостоятельный проект. Как и библиотека GnucDNA, он распространяется под лицензией GNU General Public License. Клиент спроектирован таким образом, чтобы быть простым в использовании, не ограничивая при этом количество доступных настроек. Gnucleus реализует ряд функций, включая поддержку режима Ultrapeer в gnutella (соответственно, Hub-режима в G2), многопоточную загрузку из нескольких источников, частичный обмен файлами, хеширование файлов по алгоритму SHA1, проверку подблоков с использованием дерева Меркла и поддержку прокси-серверов.

Киви Альфа

Kiwi Alpha – это одноранговое приложение для обмена файлами, использующее библиотеку GnucDNA для подключения к сетям Gnutella и G2. Основной целью разработки является минимальное потребление ресурсов и простота использования для начинающих пользователей. Kiwi Alpha не включает в себя функциональность, такую как медиаплееры, в соответствии с принципом легковесности. Однако, приложение поставляется с двумя предустановленными рекламными модулями, например, SaveNow, что противоречит заявленной минимальной нагрузке на систему. Кроме того, на веб-сайте программы утверждается, что "Kiwi Alpha не требует регистрации пользователей и защищает их конфиденциальность, обеспечивая анонимное подключение к сети". Это утверждение вводит в заблуждение, поскольку оба поддерживаемых протокола не скрывают IP-адрес пользователя, что подразумевается в данном заявлении.