Один из старейших проектов даркнета. Freenet — это P2P-сеть для хранения и распространения контента. Данные распределены по узлам участников и зашифрованы. Сеть может работать в darknet-режиме, когда узлы соединяются только с доверенными друзьями, что делает сеть практически необнаружимой.
---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
Freenet — это платформа для цензуроустойчивой коммуникации и публикации. Это peer-to-peer программное обеспечение, которое предоставляет распределённое, шифрованное, децентрализованное хранилище данных. Веб-сайты и приложения, предоставляющие такие функции, как форумы и чаты, построены поверх него.
Fred расшифровывается как Freenet REference Daemon.
Мы включили Gradle Wrapper, как рекомендовано проектом Gradle. Если вы доверяете версии, которую мы зафиксировали, вы можете собрать сразу:
$ ./gradlew jar
> gradlew jar
Мы настроили его) на проверку контрольной суммы архива, загружаемого с https://services.gradle.org.
$ 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 на
irc.libera.chat.Все зависимости должны быть доступны через Freenet, поэтому их необходимо добавить в dependencies.properties.
./gradlew jar --debug, чтобы найти файлы, не прошедшие проверку.jna-platform, чтобы узнать, куда помещать и регистрировать зависимость.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.