Peergos создает следующую сеть — частную сеть, где все контролируют конечные пользователи. Представьте себе, что веб-приложения по умолчанию безопасны и не могут отслеживать вас. Представьте себе, что вы можете точно контролировать, какие личные данные может видеть каждое веб-приложение. Представьте себе, что вам больше никогда не придется входить в приложение. Вы владеете своими данными и сами решаете, где они хранятся и кто может их видеть. В Peergos мы считаем, что конфиденциальность является фундаментальным правом человека, и мы хотим, чтобы каждый мог легко взаимодействовать в Интернете, уважая это право.
Основой Peergos является одноранговая зашифрованная глобальная файловая система с детальным контролем доступа, разработанная для защиты от слежки за содержимым данных или графами дружбы. У него есть безопасный мессенджер, зашифрованный почтовый клиент и мост, а также полностью конфиденциальная и безопасная социальная сеть, где пользователи могут контролировать, кто и что видит (выполняется криптографически). Наш девиз в Peergos: «Контролируйте свои данные, контролируйте свою судьбу».
Имя «Пиргос» происходит от греческого слова Πύργος (Пиргос), что означает крепость или башня, но в фонетическом написании оно имеет хорошую связь с одноранговым соединением. Произношение: пэр-госс (как в сплетне).
Дополнительные скриншоты смотрите в репозитории веб-интерфейса https://github.com/Peergos/web-ui.
Хотите попробовать это сейчас? Вот секретная ссылка на папку, доступная только для чтения;
У нас есть сервер https://peergos.net/. Доступно ограниченное количество бесплатных аккаунтов. Вы можете перейти на платную учетную запись, чтобы получить больше места.
Более подробную информацию о наших функциях и архитектуре можно прочитать в нашей технической книге.
Чтобы ознакомиться с последними разработками, прочтите последние примечания к выпуску или просмотрите наши репозитории веб-интерфейса.
Слайды доклада, посвященного Peergos, находятся здесь.
Глубокое погружение в лагерь IPFS 2024
Глубокое погружение в Devstaff Crete:
Обзор на IPFS Thing:
Приложения на Peergos:
Глубокое погружение в приложения:
Доклад об архитектуре на IPFS Lab Day:
Введение и обновление 2020 года:
Введение:
Если вы хотите поддержать разработку Peergos, оставьте заявку
регулярное пожертвование менее 100 евро в неделю
или
крупное или разовое пожертвование.
Cure53 провела аудит Peergos в июне 2019 года. Окончательный отчет можно найти здесь.
В Matrix есть публичный чат для Peergos.
1.0 Уровни архитектуры
2.0 Язык
3.0 Узлы
4.0 Доверие
4.0 Вход в систему
5.0 Шифрование
5.1 Постквантовое шифрование
6.0 Сеть друзей
7.0 Совместное использование файла (с другим пользователем, по секретной ссылке или публично)
Используйте этот метод для входа в учетную запись Peergos на другом экземпляре без какой-либо зависимости от DNS или центров сертификации TLS.
Загрузите выпуск с https://peergos.net/public/peergos/releases.
Установите Java. Вам понадобится установленная версия Java >= 17.
Запустите Peergos с помощью:
java -jar Peergos.jar daemon
Все данные Peergos по умолчанию будут храниться в ~/.peergos, который можно переопределить с помощью среды var или arg — PEERGOS_PATH.
Затем вы можете получить доступ к веб-интерфейсу и войти в систему через http://localhost:8000.
В этом режиме все ваши записи передаются непосредственно на ваш домашний сервер. Локальный экземпляр кэширует все блоки, к которым вы обращаетесь, для более быстрого последующего доступа.
Используйте этот метод для запуска нового домашнего сервера (лучше всего с общедоступным IP-адресом и всегда на компьютере) для создания учетных записей или переноса учетных записей на них.
Загрузите выпуск с https://peergos.net/public/peergos/releases.
Установите Java. Вам понадобится установленная версия Java >= 17.
Запустите Peergos с помощью:
java -jar Peergos.jar daemon -generate-token true
Убедитесь, что вы можете прослушивать общедоступный IP-адрес.
Некоторые облачные хосты по умолчанию не добавляют ваш общедоступный IP-адрес в сетевые интерфейсы. В этих случаях вам может потребоваться запустить что-то вроде
sudo ip address add MY.PUBLIC.IP dev eth0
Все данные Peergos по умолчанию будут храниться в ~/.peergos, который можно переопределить с помощью переменной среды или arg - PEERGOS_PATH.
Затем вы можете получить доступ к веб-интерфейсу и зарегистрироваться через напечатанный адрес локального хоста, который включает в себя одноразовый токен регистрации.
Конфигурация хранится в $PEERGOS_PATH/config, поэтому для последующих запусков вы можете просто использовать следующую команду, если не хотите переопределить какую-либо конфигурацию.
java -jar Peergos.jar daemon
Обратите внимание: на каком бы сервере Peergos вы ни зарегистрировались (ваш домашний сервер) ваши данные будут храниться, поэтому, если вы не собираетесь оставлять сервер Peergos работающим постоянно, мы рекомендуем зарегистрироваться на https://peergos.net, а затем вы можете войти в систему через локальный экземпляр Peergos, и все ваши данные волшебным образом окажутся на сервере peergos.net. Peergos может работать за NAT и межсетевыми экранами, но мы рекомендуем использовать сервер с общедоступным IP-адресом. Если вы хотите сделать свой веб-интерфейс общедоступным, вам потребуется указать доменное имя и сертификаты TLS (мы рекомендуем использовать nginx и letsencrypt).
Если вы не настроили доменное имя и TLS, вы все равно можете войти в свою учетную запись из другого экземпляра Peergos, например, который вы запускаете локально на своем ноутбуке — соединения безопасно маршрутизируются через потоки P2P TLS1.3 на ваш домашний сервер. В этом случае любые записи передаются на ваш домашний сервер, поэтому ваши данные всегда сохраняются там. Если вы предоставляете свой экземпляр через DNS-имя и сертификат TLS, вам нужно будет добавить этот параметр:
-публичный сервер правда
Если вы также используете обратный прокси-сервер, такой как nginx, для завершения TLS, вам нужно будет сообщить Pegos, какой домен вы используете, с помощью следующего аргумента:
-публичный домен $YOUR_DOMAIN
Сертификат TLS также должен будет охватывать поддомен с подстановочными знаками, чтобы приложения (например, средство просмотра PDF-файлов, текстовый редактор, календарь и пользовательские сторонние приложения) работали. Например, у него должны быть записи A, охватывающие $YOUR_DOMAIN и *.$YOUR_DOMAIN.
Если вы используете обратный прокси-сервер, например nginx, для завершения TLS, вот хороший пример файла конфигурации nginx (замените $YOUR_DOMAIN_NAME):
# Peergos server config
server {
listen 80 default_server;
listen [::]:80 default_server;
location ^~ /.well-known {
allow all;
proxy_pass http://127.0.0.1:8888;
}
# redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:!TLS_AES_128_GCM_SHA256;
ssl_certificate /etc/letsencrypt/live/$YOUR_DOMAIN_NAME/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$YOUR_DOMAIN_NAME/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000" always;
server_name $YOUR_DOMAIN_NAME;
client_max_body_size 2M;
location / {
proxy_pass http://localhost:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
allow all;
}
# pass through for letsencrypt
location ^~ /.well-known {
allow all;
proxy_pass http://127.0.0.1:8888;
}
}
Следуйте инструкциям по самостоятельному размещению, но добавьте следующие параметры (либо в командной строке, либо в файле .peergos/config после первого запуска):
-use-s3 true
-authed-s3-reads true
-direct-s3-writes true
-s3.accessKey $ACCESS_KEY
-s3.bucket $BUCKET
-s3.region $REGION
-s3.region.endpoint $ENDPOINT (e.g. us-east-1.linodeobjects.com)
-s3.secretKey #SECRET_KEY
NB Minio, похоже, имеет некоторые проблемы, поэтому используйте Minio: -authed-s3-reads false -direct-s3-writes false
Вам также потребуется установить в файле cors.xml для сегмента следующее значение:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://$YOUR_DOMAIN</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>Content-Length</ExposeHeader>
<MaxAgeSeconds>3600</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration>
Следуйте инструкциям по самостоятельному размещению, но добавьте следующие параметры (либо в командной строке, либо в файле .peergos/config после первого запуска):
-use-postgres true
-postgres.database $DATABASE
-postgres.host $HOST
-postgres.password $PASSWORD
-postgres.username $USERNAME
В командной строке доступен ряд команд. Вы можете запустить -help, чтобы найти доступные команды или подробную информацию о любой команде или подкоманде. Большинству пользователей потребуются только команды daemon и оболочки , а также, возможно, Identity или Fuse . Вы можете использовать команду миграции , чтобы переместить все ваши данные на новый сервер (где выполняется команда).
>> java -Djava.library.path=native-lib -jar Peergos.jar -help
Main: Run a Peergos command
Sub commands:
daemon: The user facing Peergos server
shell: An interactive command-line-interface to a Peergos server
fuse: Mount a Peergos user's filesystem natively
quota: Manage quota of users on this server
server-msg: Send and receive messages to/from users of this server
gateway: Serve websites directly from Peergos
migrate: Move a Peergos account to this server
identity: Create or verify an identity proof
ipfs: Install, configure and start IPFS daemon
pki: Start the Peergos PKI Server that has already been bootstrapped
pki-init: Bootstrap and start the Peergos PKI Server
или
>> java -Djava.library.path=native-lib -jar Peergos.jar identity -help
identity: Create or verify an identity proof
Sub commands:
link: Link your Peergos identity to an account on another service.
verify: Verify an identity link post from another service.
Чтобы отразить все ваши данные на другом сервере, сначала выполните следующую команду (в любом экземпляре):
java -jar Зеркало Peergos.jar init -username $username
Он запросит ваш пароль, а затем выведет три параметра, которые необходимо передать демону зеркала.
Затем запустите демон на экземпляре, на котором вы хотите отразить ваши данные, со следующими дополнительными аргументами, предоставленными командой init.
java -jar Peergos.jar daemon -mirror.username $username -mirror.bat $mirrorBat -login-keypair $loginKeypair
Затем это будет постоянно отражать данные этого пользователя в этом экземпляре.
Чтобы выполнить миграцию на другой сервер, сначала убедитесь, что у вас достаточно квоты, а затем запустите на нем команду миграции.
java -jar Перенести Peergos.jar
Он запросит ваше имя пользователя и пароль, локально отразит все ваши данные, а затем обновит PKI, чтобы сделать его вашим домашним сервером.
После миграции ваша личность не изменится, все ссылки на ваши данные продолжают работать, и вы сохраняете свой социальный граф, не сообщая никому об этом.
С помощью оболочки можно выполнять различные операции.
java -jar Peergos.jar shell
Для подключения к серверу вам необходимо указать адрес сервера (включая http/https), имя пользователя и пароль.
Enter Server address
> https://peergos.net
Enter username
> demo
Enter password for ' demo '
> **************************************
Generating keys
Logging in
Retrieving Friends
demo@https://peergos.net >
Чтобы показать все доступные команды
demo@https://peergos.net > help
Подсказка: следующая команда может быть полезна для первоначальной загрузки папок большего размера.
put local_path remote_path
Существует клиент двунаправленной синхронизации, который позволит вам синхронизировать собственный каталог с каталогом Peergos (или несколькими парами каталогов). Чтобы настроить это при первом запуске:
>> java -jar Peergos.jar sync init -peergos-url https://peergos.net
Следуйте инструкциям, чтобы ввести свое имя пользователя, пароль и каталог Pegos, с которым вы хотите синхронизироваться. Это выведет что-то вроде:
>> Run the sync dir command with the following args: -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs $LOCAL_DIR
Затем запустить клиент синхронизации с помощью:
>> java -jar Peergos.jar sync dir -peergos-url https://peergos.net -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs /path/to/local/dir
Вы можете смонтировать пространство Peergos с помощью следующей команды
>> java -Djava.library.path=native-lib -jar Peergos.jar fuse -peergos-url https://peergos.net -username $username -password $password
Установите osxfuse с помощью
>> brew install --cask osxfuse
Установите winfsp с помощью
>> choco install winfsp
Вы можете запустить локальный мост webdav, который позволит вам получить доступ к файлам Peergos с помощью любого клиента, совместимого с webdav. Запустите следующую команду (выберите произвольное имя пользователя и пароль webdav):
>> java -Djava.library.path=native-lib -jar Peergos.jar webdav -peergos-url https://peergos.net -username $username -PEERGOS_PASSWORD $password -webdav.username $webdav-username -PEERGOS_WEBDAV_PASSWORD $webdav-password
Для сборки требуется jdk17 и ant. Для установки зависимостей используйте следующее:
sudo apt-get install ant
sudo apt-get install openjdk-17-jdk
brew install ant # installs openjdk as a dependency
ant -version
Apache Ant(TM) version 1.10.8 compiled on May 10 2020
Обратите внимание, что это не включает веб-интерфейс, для полной сборки, включая сборку веб-интерфейса https://github.com/peergos/web-ui.
ant dist
ant gwtc
Вам необходимо установить ant-optional:
sudo apt-get install ant-optional
Для пакета ant в macOS не требуется ничего дополнительного.
Запуск тестов автоматически установит и настроит правильную версию IPFS, запустит демон и затем завершит его работу.
ant test
Цель ant compile
будет компилировать исходные коды только в папках src/peergos/{client,server,shared}.