Peergos กำลังสร้างเว็บแห่งใหม่ ซึ่งเป็นเว็บส่วนตัวที่ผู้ใช้ปลายทางสามารถควบคุมได้ ลองนึกภาพเว็บแอปมีความปลอดภัยเป็นค่าเริ่มต้นและไม่สามารถติดตามคุณได้ ลองจินตนาการถึงความสามารถในการควบคุมข้อมูลส่วนตัวที่แต่ละเว็บแอปสามารถมองเห็นได้ ลองนึกภาพไม่ต้องลงชื่อเข้าใช้แอปอีกต่อไป คุณเป็นเจ้าของข้อมูลของคุณและตัดสินใจว่าจะจัดเก็บข้อมูลไว้ที่ใดและใครบ้างที่สามารถเห็นข้อมูลได้ ที่ Peergos เราเชื่อว่าความเป็นส่วนตัวเป็นสิทธิมนุษยชนขั้นพื้นฐาน และเราต้องการทำให้ทุกคนโต้ตอบออนไลน์ได้อย่างง่ายดายในลักษณะที่เคารพสิทธินี้
รากฐานของ Peergos คือระบบไฟล์ระดับโลกที่เข้ารหัสแบบเพียร์ทูเพียร์ พร้อมการควบคุมการเข้าถึงแบบละเอียดที่ออกแบบมาให้ทนทานต่อการสอดส่องเนื้อหาข้อมูลหรือกราฟมิตรภาพ มีโปรแกรมส่งข้อความที่ปลอดภัย โปรแกรมรับส่งเมลและบริดจ์ที่เข้ารหัส และเครือข่ายโซเชียลที่เป็นส่วนตัวและปลอดภัยโดยสมบูรณ์ ซึ่งผู้ใช้สามารถควบคุมได้ว่าใครจะเห็นอะไร (ดำเนินการด้วยการเข้ารหัส) คำขวัญของเราที่ Peergos คือ "ควบคุมข้อมูลของคุณ ควบคุมโชคชะตาของคุณ"
ชื่อ Peergos มาจากคำภาษากรีก Πύργος (Pyrgos) ซึ่งหมายถึงฐานที่มั่นหรือหอคอย แต่สะกดตามหลักสัทศาสตร์โดยมีความเชื่อมโยงที่ดีกับการเป็นแบบ peer-to-peer การออกเสียง: peer-goss (เช่นเดียวกับการนินทา)
ดูภาพหน้าจอเพิ่มเติมในพื้นที่เก็บข้อมูล web-ui https://github.com/Peergos/web-ui
อยากลองตอนนี้เลยไหม? นี่คือลิงก์ลับแบบอ่านอย่างเดียวไปยังโฟลเดอร์
เราใช้เซิร์ฟเวอร์ที่ https://peergos.net/ มีบัญชีฟรีจำนวนจำกัด คุณสามารถอัปเกรดเป็นบัญชีแบบชำระเงินเพื่อเพิ่มพื้นที่เก็บข้อมูลได้
คุณสามารถอ่านรายละเอียดเพิ่มเติมเกี่ยวกับคุณสมบัติและสถาปัตยกรรมของเราได้ในหนังสือเทคโนโลยีของเรา
หากต้องการดูการพัฒนาล่าสุด โปรดอ่านบันทึกประจำรุ่นล่าสุด หรือดูการเปิดตัว repo ของ web-ui ของเรา
สไลด์เสวนาแนะนำ Peergos อยู่ที่นี่
เจาะลึกที่ IPFS Camp 2024
เจาะลึกที่ Devstaff Crete:
ภาพรวมที่ IPFS Thing:
การใช้งานบน Peergos:
เจาะลึกแอปพลิเคชัน:
การพูดคุยเรื่องสถาปัตยกรรมที่ IPFS Lab Day:
บทนำและการอัปเดตปี 2020:
การแนะนำ:
หากคุณต้องการสนับสนุนการพัฒนา Peergos โปรดดำเนินการ
การบริจาคซ้ำน้อยกว่า 100 ยูโรต่อสัปดาห์
หรือก
ใหญ่กว่าหรือบริจาคครั้งเดียว
Cure53 ดำเนินการตรวจสอบ Peergos ในเดือนมิถุนายน 2019 รายงานขั้นสุดท้ายอยู่ที่นี่
มีห้องสนทนาสาธารณะสำหรับ Peergos บน Matrix
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 ตามค่าเริ่มต้น ซึ่งสามารถแทนที่ได้ด้วยสภาพแวดล้อม var หรือ arg - PEERGOS_PATH
จากนั้นคุณจึงสามารถเข้าถึงอินเทอร์เฟซเว็บและลงทะเบียนผ่านที่อยู่ localhost ที่พิมพ์ไว้ ซึ่งรวมถึงโทเค็นการลงทะเบียนแบบใช้ครั้งเดียว
การกำหนดค่าจะถูกจัดเก็บไว้ใน $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 คุณจะต้องบอก peergos ว่าคุณกำลังใช้โดเมนใดกับ arg ต่อไปนี้:
-โดเมนสาธารณะ $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 และ เชลล์ และอาจรวมถึง เอกลักษณ์ หรือ ฟิวส์ด้วย คุณสามารถใช้คำสั่ง โยกย้าย เพื่อย้ายข้อมูลทั้งหมดของคุณไปยังเซิร์ฟเวอร์ใหม่ (โดยที่คำสั่งถูกรัน)
>> 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 - ชื่อผู้ใช้ $ ชื่อผู้ใช้
มันจะถามรหัสผ่านของคุณ จากนั้นพิมพ์พารามิเตอร์สามตัวที่คุณต้องส่งให้กับมิเรอร์ดีมอน
จากนั้นรัน daemon บนอินสแตนซ์ที่คุณต้องการมิเรอร์ข้อมูลของคุณ โดยมี args เพิ่มเติมต่อไปนี้จัดทำโดยคำสั่ง init
java -jar Peergos.jar daemon -mirror.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
และปฏิบัติตามคำแนะนำเพื่อป้อนชื่อผู้ใช้ รหัสผ่าน และ peergos dir ที่คุณต้องการซิงค์ด้วย สิ่งนี้จะแสดงผลดังนี้:
>> 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
โปรดทราบว่านี่ไม่รวมเว็บ UI ใด ๆ สำหรับบิลด์แบบเต็มรวมถึงบิลด์เว็บอินเตอร์เฟส https://github.com/peergos/web-ui
ant dist
ant gwtc
คุณต้องติดตั้ง ant-เป็นทางเลือก:
sudo apt-get install ant-optional
ไม่จำเป็นต้องมีอะไรเพิ่มเติมสำหรับแพ็คเกจ ant บน macOS
การทดสอบที่รันอยู่จะติดตั้งและกำหนดค่า IPFS เวอร์ชันที่ถูกต้องโดยอัตโนมัติ รัน daemon และยุติการทำงานในภายหลัง
ant test
เป้าหมาย ant compile
จะคอมไพล์ซอร์สในโฟลเดอร์ src/peergos/{client,server,shared} เท่านั้น