Peergos 正在建立下一個網路——最終用戶掌控的私人網路。想像網路應用程式預設是安全的並且無法追蹤您。想像一下能夠準確控制每個網路應用程式可以看到哪些個人資料。想像一下再也不用登入應用程式了。您擁有自己的資料並決定其儲存位置以及誰可以看到它。在 Peergos,我們相信隱私是一項基本人權,我們希望讓每個人都能以尊重這項權利的方式輕鬆進行線上互動。
Peergos 的基礎是一個點對點加密的全域檔案系統,具有細粒度的存取控制,旨在抵抗資料內容或友誼圖的監視。它有一個安全的信使、一個加密的電子郵件用戶端和橋接器,以及一個完全私密且安全的社交網絡,用戶可以控制誰看到什麼(以加密方式執行)。 Peergos 的座右銘是「掌控你的數據,掌控你的命運」。
Peergos 這個名字來自希臘語 Πύργος (Pyrgos),意思是要塞或塔樓,但在語音拼字上與點對點有著很好的聯繫。發音:peer-goss(如八卦)。
在 web-ui 儲存庫中查看更多螢幕截圖 https://github.com/Peergos/web-ui。
現在想嘗試嗎?這是一個資料夾的唯讀秘密連結;
我們在 https://peergos.net/ 上運行伺服器。可用的免費帳戶數量有限。您可以升級到付費帳戶以獲得更多儲存空間。
您可以在我們的技術書中閱讀有關我們的功能和架構的更多詳細資訊。
要了解最新進展,請閱讀最新的發行說明或查看我們的 web-ui 儲存庫版本。
介紹 Peergos 的演講幻燈片在這裡
深入探討 IPFS Camp 2024
克里特島 Devstaff 深入探討:
IPFS 事物概述:
Peergos 上的應用:
應用深入探討:
IPFS 實驗室日的架構演講:
簡介和2020年更新:
介紹:
如果您想支持 Peergos 的開發,請做出一個
每週經常性捐款少於 100 歐元
或一個
較大額或一次性捐款。
Cure53 於 2019 年 6 月對 Peergos 進行了審計。
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中,可以使用環境變數或arg - PEERGOS_PATH 覆寫它。
然後您可以存取 Web 介面並透過 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中,可以使用環境var或arg覆蓋 - PEERGOS_PATH
然後,您可以存取 Web 介面並透過列印的本機主機位址進行註冊,其中包括一次性註冊令牌。
配置儲存在 $PEERGOS_PATH/config 中,因此對於後續運行,您可以只使用以下內容,除非您想要覆寫任何配置
java -jar Peergos.jar daemon
請注意,無論您透過哪個Peergos 伺服器(您的家庭伺服器)註冊,都會儲存您的數據,因此,如果您不打算讓Peergos 伺服器永久運行,那麼我們建議您在https://peergos.net 上註冊,然後您可以透過本機 Peergos 執行個體登錄,您的所有資料將神奇地最終儲存在peergos.net 伺服器上。 Peergos 可以在 NAT 和防火牆後面工作,但我們建議使用具有公用 IP 的伺服器。如果您想公開公開您的 Web 介面,您將需要安排網域和 TLS 憑證(我們建議使用 nginx 和 LetsEncrypt)。
如果您沒有設定網域名稱和 TLS,您仍然可以從另一個 Peergos 執行個體(例如您在筆記型電腦上本機執行的執行個體)登入您的帳戶 - 連線透過 P2P TLS1.3 流安全路由到您的家庭伺服器。在這種情況下,任何寫入都會代理到您的家庭伺服器,因此您的資料始終保留在那裡。如果您確實透過 DNS 名稱和 TLS 憑證公開您的實例,則需要新增此參數:
-公共伺服器 true
如果您也使用像 nginx 這樣的反向代理來終止 TLS,您需要透過以下參數告訴 Peergos 您正在使用哪個域:
-公有域$YOUR_DOMAIN
並且 TLS 憑證還需要覆寫應用程式(例如 PDF 檢視器、文字編輯器、行事曆和自訂第 3 方應用程式)才能運作的通配符子網域。例如,它應該具有覆蓋 $YOUR_DOMAIN 和 *.$YOUR_DOMAIN 的 A 記錄
如果您使用像 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 來查找可用命令或任何命令或子命令的詳細資訊。大多數使用者應該只需要守護程式和shell指令,也許還需要identity或fuse 。您可以使用migrate命令將所有資料移動到新伺服器(運行該命令的位置)。
>> 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 $用戶名
它將詢問您的密碼,然後列印您需要提供給鏡像守護程式的三個參數。
然後在要鏡像資料的實例上執行守護程序,並使用 init 指令提供的以下附加參數。
java -jar Peergos.jar daemon -mirror.username $username -mirror.bat $mirrorBat -login-keypair $loginKeypair
然後,這將連續鏡像該執行個體上該使用者的資料。
要遷移到另一台伺服器,請先確保伺服器有足夠的配額,然後對其執行 migrate 命令。
java -jar Peergos.jar 遷移
它將詢問您的用戶名和密碼,在本地鏡像您的所有數據,然後更新 PKI 以使其成為您的家庭伺服器。
遷移後,您的身分不會改變,所有指向您資料的連結都將繼續有效,並且您可以保留您的社交圖譜,而無需告訴任何人。
可以使用 shell 完成各種操作。
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
有一個雙向同步用戶端,可讓您將本機目錄與對等目錄(或多對目錄)同步。要進行設置,請首先運行:
>> java -jar Peergos.jar sync init -peergos-url https://peergos.net
然後按照提示輸入您的使用者名稱、密碼和要同步的peergos 目錄。這將輸出類似:
>> 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 橋,它允許您使用任何 webdav 相容客戶端存取您的 Peergos 檔案。執行以下命令(選擇任意 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
請注意,這不包括任何 Web ui,對於包括 Web 介面構建的完整構建,https://github.com/peergos/web-ui
ant dist
ant gwtc
您需要安裝 ant 可選:
sudo apt-get install ant-optional
macOS 上的 ant 包不需要任何額外的東西。
執行測試將自動安裝和配置正確版本的 IPFS,運行守護進程,然後終止它。
ant test
ant compile
目標只會編譯 src/peergos/{client,server,shared} 資料夾中的原始碼。