hyphanet

Anonymizers vbuild01506 · 15.02.2026 активный

Один из старейших проектов даркнета. Freenet — это P2P-сеть для хранения и распространения контента. Данные распределены по узлам участников и зашифрованы. Сеть может работать в darknet-режиме, когда узлы соединяются только с доверенными друзьями, что делает сеть практически необнаружимой.

vbuild01506
15.02.2026 current
Добавлен 27.11.2025 · Обновлён 27.11.2025 · Anonymizers
Установка
---Debian-base---
sudo apt update && sudo apt install openjdk-8-jdk

export build="1503"; curl -LO https://github.com/hyphanet/fred/releases/download/build${build}/freenet.jar && java -jar ./freenet.jar -console
./gradlew jar
переведено ИИ

Статус сборки Статус Coverity

Freenet

Freenet — это платформа для цензуроустойчивой коммуникации и публикации. Это peer-to-peer программное обеспечение, которое предоставляет распределённое, шифрованное, децентрализованное хранилище данных. Веб-сайты и приложения, предоставляющие такие функции, как форумы и чаты, построены поверх него.

Fred расшифровывается как Freenet REference Daemon.

Сборка

Мы включили Gradle Wrapper, как рекомендовано проектом Gradle. Если вы доверяете версии, которую мы зафиксировали, вы можете собрать сразу:

POSIX / Windows PowerShell:

$ ./gradlew jar

Windows cmd:

> gradlew jar

Мы настроили его) на проверку контрольной суммы архива, загружаемого с https://services.gradle.org.

Сборка с помощью ant

$ mkdir -p lib; (cd lib && grep -o CHK.* ../dependencies.properties  | xargs -P16 -I {} bash -c 'fcpget -v {} "$(echo {} | sed s,^.*/,,)"')
$ ant -propertyfile build.properties -f build-clean.xml -Dtest.skip=true -Dfindbugs.skip=true

Сборка установщиков

Установщики собираются из специализированных репозиториев:

Бесплатная подпись кода для установщика Windows предоставляется SignPath.io, сертификат — SignPath Foundation.

Тестирование

Запуск тестов

Для запуска всех модульных тестов используйте

./gradlew --parallel test

Вы можете запустить конкретные тесты с помощью фильтра тестов, похожего на следующий:

./gradlew --parallel test --tests *M3UFilterTest

TODO: как запускать интеграционные тесты.

Запуск ваших изменений как узла

Чтобы протестировать вашу версию Freenet, соберите её с помощью ./gradlew jar, остановите свой узел, замените freenet.jar в вашей директории Freenet на build/libs/freenet.jar и снова запустите узел.

Для переопределения значений, установленных в build.gradle, поместите их в файл gradle.properties в формате переменная = значение. Например:

org.gradle.parallel = true
org.gradle.daemon = true
org.gradle.jvmargs=-Xms256m -Xmx1024m
org.gradle.configureondemand=true

tasks.withType(Test)  {
  maxParallelForks = Runtime.runtime.availableProcessors()
}

Участие в разработке

Смотрите наши руководства для участников).

Связаться с нами

Добавление новой зависимости

Все зависимости должны быть доступны через Freenet, поэтому их необходимо добавить в dependencies.properties.

  • Добавьте её в build.gradle в зависимости и dependencyVerification. Запустите ./gradlew jar --debug, чтобы найти файлы, не прошедшие проверку.
  • fcpupload {dependencyfile.jar}
  • добавьте её во все установщики: wininstaller-innosetup, java_installer, mactray. Поищите jna-platform, чтобы узнать, куда помещать и регистрировать зависимость.
  • добавьте зависимость и CHK в dependencies.properties.
  • обновите scripts/update.sh, res/wrapper.conf и res/unix/run.sh в java_installer, чтобы включить зависимость.

На примере pebble: Имя файла — просто jar-файл. Ключ — это то, что возвращает fcpupload. Размер — wc -c filename.jar, sha256 — sha256sum filename.jar, порядок — это то, где она должна быть размещена в wrapper.conf в wrapper.java.classpath.

pebble.version=3.1.5
pebble.filename=pebble-3.1.5.jar
pebble.filename-regex=pebble-*.jar
pebble.key=CHK@y~p8HMUVXmVgfSnrmUyu2UNXMO9uMDHS5nwo2YuOKvw,yzwLFP0GXa8RjwRpicQCPFKNggDXLkTQKH8nISe0qUY,AAMC--8/pebble-3.1.5.jar
pebble.size=318169
pebble.sha256=85e77f9fd64c0a1f85569db8f95c1fb8e6ef8b296f4d6206440dc6306140c1a1
pebble.type=CLASSPATH
pebble.order=4

Лицензирование

Freenet лицензирован под лицензией GPL, версии 2 или позднее — см. LICENSE.Freenet. Мы используем некоторый код под лицензией Apache, версии 2 (в основном, компоненты Apache Commons), и некоторый изменённый код под лицензией BSD (Mantissa). Всё это совместимо с GPL, хотя, по мнению некоторых, ASL2 совместима только с GPL3. Некоторые плагины лицензированы под GPL3.

Комментарии
Войдите, чтобы оставить комментарий