IPFS โดยไม่มีความเจ็บปวด (แต่ไม่ถูกต้อง)

IPFS โดยไม่มีความเจ็บปวด (แต่ไม่ถูกต้อง)

แม้ว่าข้อเท็จจริงที่ว่าHabréอยู่แล้ว มากกว่าหนึ่งบทความเกี่ยวกับ IPFS.

ฉันจะชี้แจงทันทีว่าฉันไม่ใช่ผู้เชี่ยวชาญในด้านนี้ แต่ฉันได้แสดงความสนใจในเทคโนโลยีนี้มากกว่าหนึ่งครั้ง แต่การพยายามเล่นกับมันมักจะทำให้เกิดความเจ็บปวด วันนี้ฉันเริ่มทดลองอีกครั้งและได้ผลลัพธ์บางอย่างที่ฉันต้องการแบ่งปัน กล่าวโดยสรุปคือ ขั้นตอนการติดตั้ง IPFS และคุณสมบัติบางอย่างจะได้รับการอธิบาย (ทุกอย่างทำบน Ubuntu ฉันไม่ได้ลองบนแพลตฟอร์มอื่น)

หากคุณพลาดว่า IPFS คืออะไร รายละเอียดบางอย่างจะเขียนไว้ที่นี่: habr.com/th/post/314768

การติดตั้ง

เพื่อความบริสุทธิ์ของการทดลอง ฉันแนะนำให้ติดตั้งบนเซิร์ฟเวอร์ภายนอกทันที เนื่องจากเราจะพิจารณาถึงข้อผิดพลาดบางประการเกี่ยวกับการทำงานในโหมดโลคัลและรีโมต จากนั้นหากต้องการจะไม่ถูกทำลายเป็นเวลานานมีไม่มาก

ติดตั้งไป

เอกสารอย่างเป็นทางการ
ดูเวอร์ชั่นปัจจุบันได้ที่ golang.org/dl

หมายเหตุ: เป็นการดีกว่าที่จะติดตั้ง IPFS ในนามของผู้ใช้ที่ควรใช้บ่อยที่สุด ความจริงก็คือด้านล่างเราจะพิจารณาตัวเลือกการติดตั้งผ่าน ฟิวส์ และมีรายละเอียดปลีกย่อย

cd ~
curl -O https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz
tar xvf go1.12.9.linux-amd64.tar.gz
sudo chown -R root:root ./go
sudo mv go /usr/local
rm go1.12.9.linux-amd64.tar.gz

จากนั้นคุณต้องอัปเดตสภาพแวดล้อม (รายละเอียดเพิ่มเติมที่นี่: golang.org/doc/code.html#GOPATH).

echo 'export GOPATH=$HOME/work' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc

กำลังตรวจสอบว่า go ได้รับการติดตั้งแล้ว

go version

ติดตั้ง IPFS

ฉันชอบวิธีการติดตั้งมากที่สุด การอัปเดต ipfs.

ติดตั้งด้วยคำสั่ง

go get -v -u github.com/ipfs/ipfs-update

หลังจากนั้น คุณสามารถเรียกใช้คำสั่งต่อไปนี้:

ipfs-update เวอร์ชั่น - เพื่อดูเวอร์ชันที่มีให้ดาวน์โหลดทั้งหมด
รุ่นปรับปรุง ipfs - เพื่อดูเวอร์ชันที่ติดตั้งในปัจจุบัน (จนกว่าเราจะติดตั้ง IPFS จะไม่มีเลย)
ipfs-update ติดตั้งล่าสุด - ติดตั้ง IPFS เวอร์ชันล่าสุด แทนที่จะเป็นล่าสุด ตามลำดับ คุณสามารถระบุเวอร์ชันที่ต้องการได้จากรายการที่มีอยู่

การติดตั้ง ipfs

ipfs-update install latest

ตรวจสอบ

ipfs --version

โดยตรงกับการติดตั้งในเงื่อนไขทั่วไปทุกอย่าง

เริ่ม IPFS

การเริ่มต้น

ก่อนอื่นคุณต้องดำเนินการเริ่มต้น

ipfs init

ในการตอบกลับคุณจะได้รับสิ่งนี้:

 ipfs init
initializing IPFS node at /home/USERNAME/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmeCWX1DD7HnXXXXXXXXXXXXXXXXXXXXXXXXxxx
to get started, enter:
	ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

คุณสามารถเรียกใช้คำสั่งที่แนะนำ

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

ผล

Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

 -------------------------------------------------------
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
 -------------------------------------------------------

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes

ในความคิดของฉันสิ่งที่น่าสนใจเริ่มต้นขึ้น พวกที่อยู่ในขั้นตอนการติดตั้งเริ่มใช้เทคโนโลยีของตนเองแล้ว แฮชที่เสนอ QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv ไม่ได้สร้างขึ้นสำหรับคุณโดยเฉพาะ แต่รวมอยู่ในการเปิดตัว นั่นคือก่อนการเปิดตัว พวกเขาเตรียมข้อความต้อนรับ ใส่ลงใน IPFS และเพิ่มที่อยู่ให้กับตัวติดตั้ง ฉันคิดว่ามันเจ๋งมาก และไฟล์นี้ (อย่างแม่นยำยิ่งขึ้นคือทั้งโฟลเดอร์) สามารถดูได้ไม่เพียง แต่ในเครื่อง แต่ยังอยู่ในเกตเวย์อย่างเป็นทางการด้วย ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. ในเวลาเดียวกัน คุณสามารถมั่นใจได้ว่าเนื้อหาของโฟลเดอร์ไม่มีการเปลี่ยนแปลง แต่อย่างใด เพราะหากมีการเปลี่ยนแปลง แฮชก็จะเปลี่ยนไปด้วย

อย่างไรก็ตาม ในกรณีนี้ IPFS มีความคล้ายคลึงกันบางอย่างกับเซิร์ฟเวอร์ควบคุมเวอร์ชัน หากคุณทำการเปลี่ยนแปลงไฟล์ต้นฉบับของโฟลเดอร์และเทโฟลเดอร์ลงใน IPFS อีกครั้ง โฟลเดอร์นั้นจะได้รับที่อยู่ใหม่ ในเวลาเดียวกัน โฟลเดอร์เก่าจะไม่ไปไหนเช่นเดียวกับที่อยู่เดิม และจะมีอยู่ตามที่อยู่ก่อนหน้า

เปิดตัวโดยตรง

ipfs daemon

คุณควรได้รับการตอบกลับดังนี้:

ipfs daemon
Initializing daemon...
go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/linux
Golang version: go1.12.7
Swarm listening on /ip4/x.x.x.x/tcp/4001
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

เปิดประตูสู่อินเทอร์เน็ต

ให้ความสนใจกับสองบรรทัดนี้:

WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080

ตอนนี้ หากคุณติดตั้ง IPFS ในเครื่อง คุณจะเข้าถึงอินเทอร์เฟซ IPFS ที่ที่อยู่ในเครื่อง และทุกอย่างจะพร้อมใช้งานสำหรับคุณ (ตัวอย่างเช่น localhost:5001/webui/). แต่เมื่อติดตั้งบนเซิร์ฟเวอร์ภายนอก เกตเวย์จะปิดไปยังอินเทอร์เน็ตตามค่าเริ่มต้น เกตเวย์สอง:

  1. ผู้ดูแลระบบเว็บบุย (GitHub) บนพอร์ต 5001
  2. API ภายนอกบนพอร์ต 8080 (อ่านอย่างเดียว)

จนถึงตอนนี้สามารถเปิดพอร์ตทั้งสอง (5001 และ 8080) สำหรับการทดลองได้ แต่แน่นอนว่าบนเซิร์ฟเวอร์การต่อสู้ พอร์ต 5001 ควรปิดด้วยไฟร์วอลล์ นอกจากนี้ยังมีพอร์ต 4001 ซึ่งจำเป็นเพื่อให้เพื่อนคนอื่นๆ สามารถค้นหาคุณได้ ควรปล่อยให้มีการร้องขอจากภายนอก

เปิด ~/.ipfs/config เพื่อแก้ไขและค้นหาบรรทัดเหล่านี้ในนั้น:

"Addresses": {
  "Swarm": [
    "/ip4/0.0.0.0/tcp/4001",
    "/ip6/::/tcp/4001"
  ],
  "Announce": [],
  "NoAnnounce": [],
  "API": "/ip4/127.0.0.1/tcp/5001",
  "Gateway": "/ip4/127.0.0.1/tcp/8080"
}

เปลี่ยน 127.0.0.1 เป็น ip ของเซิร์ฟเวอร์และบันทึกไฟล์ จากนั้นรีสตาร์ท ipfs (หยุดคำสั่งที่รันด้วย Ctrl+C แล้วเริ่มใหม่อีกครั้ง)

ควรได้รับ

...
WebUI: http://ip_вашего_сервера:5001/webui
Gateway (readonly) server listening on /ip4/ip_вашего_сервера/tcp/8080

ตอนนี้อินเทอร์เฟซภายนอกควรพร้อมใช้งานแล้ว

เช็คเอาท์

http://домен_или_ip_сервера:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

ไฟล์ readme ด้านบนควรเปิดขึ้น

http://домен_или_ip_сервера:5001/webui/

เว็บอินเตอร์เฟสควรเปิดขึ้น

หาก webui ใช้งานได้สำหรับคุณ คุณสามารถเปลี่ยนการตั้งค่า IPFS ได้โดยตรงในนั้น รวมถึงการดูสถิติ แต่ด้านล่าง ฉันจะพิจารณาตัวเลือกการกำหนดค่าโดยตรงผ่านไฟล์กำหนดค่า ซึ่งโดยทั่วไปไม่สำคัญ เป็นการดีกว่าที่จะจำได้อย่างแม่นยำว่าการกำหนดค่าอยู่ที่ไหนและจะทำอย่างไรกับมัน มิฉะนั้น หากหน้าเว็บไม่ทำงาน มันจะยากขึ้น

การตั้งค่าเว็บอินเตอร์เฟสเพื่อทำงานร่วมกับเซิร์ฟเวอร์ของคุณ

นี่คือหลุมพรางแรกซึ่งใช้เวลาประมาณสามชั่วโมง

หากคุณติดตั้ง IPFS บนเซิร์ฟเวอร์ภายนอก แต่ไม่ได้ติดตั้งหรือเรียกใช้ IPFS ภายในเครื่อง เมื่อคุณไปที่ /webui ในเว็บอินเตอร์เฟส คุณควรเห็นข้อผิดพลาดในการเชื่อมต่อ:

IPFS โดยไม่มีความเจ็บปวด (แต่ไม่ถูกต้อง)

ความจริงก็คือในความคิดของฉัน webui นั้นทำงานคลุมเครือมาก อย่างแรก มันพยายามเชื่อมต่อกับ API ของเซิร์ฟเวอร์ที่อินเทอร์เฟซเปิดอยู่ (แน่นอนว่าขึ้นอยู่กับที่อยู่ในเบราว์เซอร์) และหากใช้ไม่ได้ ก็จะพยายามเชื่อมต่อกับโลคัลเกตเวย์ และหากคุณมี IPFS ที่ทำงานอยู่ในเครื่อง webui ก็จะทำงานได้ดีสำหรับคุณ มีเพียงคุณเท่านั้นที่จะทำงานกับ IPFS ภายในเครื่องได้ ไม่ใช่จากภายนอก แม้ว่าคุณจะเปิด webui บนเซิร์ฟเวอร์ภายนอกก็ตาม จากนั้นคุณอัปโหลดไฟล์ แต่ด้วยเหตุผลบางอย่าง คุณไม่เห็นไฟล์แบบนั้นบนเซิร์ฟเวอร์ภายนอก...

และถ้ามันไม่ทำงานในเครื่อง เราก็จะได้รับข้อผิดพลาดในการเชื่อมต่อ ในกรณีของเรา ข้อผิดพลาดน่าจะเกิดจาก CORS ซึ่งระบุโดย webui ด้วยเช่นกัน ซึ่งแนะนำให้เพิ่มการกำหนดค่า

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_вашего сервера:5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'

ฉันเพิ่งลงทะเบียนไวด์การ์ด

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

ส่วนหัวที่เพิ่มสามารถพบได้ใน ~/.ipfs/config เดียวกัน ในกรณีของฉันก็คือ

  "API": {
    "HTTPHeaders": {
      "Access-Control-Allow-Origin": [
        "*"
      ]
    }
  },

เรารีสตาร์ท ipfs และเราเห็นว่า webui เชื่อมต่อสำเร็จแล้ว (ไม่ว่าในกรณีใด หากคุณเปิดเกตเวย์สำหรับคำขอจากภายนอกตามที่อธิบายไว้ข้างต้น)

ตอนนี้คุณสามารถอัปโหลดโฟลเดอร์และไฟล์ได้โดยตรงผ่านเว็บอินเทอร์เฟซ รวมทั้งสร้างโฟลเดอร์ของคุณเอง

การติดตั้งระบบไฟล์ FUSE

นี่เป็นคุณสมบัติที่น่าสนใจทีเดียว

ไฟล์ (เช่นเดียวกับโฟลเดอร์) เราสามารถเพิ่มได้ไม่เพียงผ่านเว็บอินเตอร์เฟสเท่านั้น แต่ยังเพิ่มโดยตรงในเทอร์มินัลด้วย

ipfs add test -r
added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt
added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test

แฮชสุดท้ายคือแฮชของโฟลเดอร์รูท

การใช้แฮชนี้ เราสามารถเปิดโฟลเดอร์บนโหนด ipfs ใดก็ได้ (ซึ่งสามารถค้นหาโหนดของเราและรับเนื้อหาได้) เราสามารถเปิดในเว็บอินเตอร์เฟสบนพอร์ต 5001 หรือ 8080 หรือเราสามารถทำได้ในเครื่องผ่าน ipfs

ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt

แต่คุณยังสามารถเปิดได้เหมือนโฟลเดอร์ทั่วไป

มาสร้างสองโฟลเดอร์ที่รูทและให้สิทธิ์กับผู้ใช้ของเรา

sudo mkdir /ipfs /ipns
sudo chown USERNAME /ipfs /ipns

และรีสตาร์ท ipfs ด้วย --mount flag

ipfs daemon --mount

คุณสามารถสร้างโฟลเดอร์ในที่อื่นๆ และระบุพาธผ่านพารามิเตอร์ ipfs daemon -mount -mount-ipfs /ipfs_path -mount-ipns /ipns_path

ตอนนี้การอ่านจากโฟลเดอร์นี้ค่อนข้างผิดปกติ

ls -la /ipfs
ls: reading directory '/ipfs': Operation not permitted
total 0

นั่นคือไม่มีการเข้าถึงรูทของโฟลเดอร์นี้โดยตรง แต่คุณสามารถรับเนื้อหาโดยรู้แฮช

ls -la /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx
total 0
-r--r--r-- 1 root root 10 Aug 31 07:03 test.txt

cat /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx/test.txt 
test
test

ในเวลาเดียวกัน การเติมข้อความอัตโนมัติจะทำงานภายในโฟลเดอร์เมื่อมีการระบุพาธ

ดังที่ฉันได้กล่าวไว้ข้างต้น การติดตั้งดังกล่าวมีรายละเอียดปลีกย่อย: ตามค่าเริ่มต้น โฟลเดอร์ FUSE ที่ติดตั้งจะมีให้สำหรับผู้ใช้ปัจจุบันเท่านั้น (แม้แต่รูทก็จะไม่สามารถอ่านจากโฟลเดอร์ดังกล่าวได้ ไม่ต้องพูดถึงผู้ใช้รายอื่นในระบบ) หากคุณต้องการให้ผู้ใช้รายอื่นใช้งานโฟลเดอร์เหล่านี้ได้ คุณต้องเปลี่ยน "FuseAllowOther": false เป็น "FuseAllowOther" เป็น true ในการกำหนดค่า แต่นั่นไม่ใช่ทั้งหมด หากคุณเรียกใช้ IPFS ในฐานะรูท ทุกอย่างก็โอเค และถ้าในนามของผู้ใช้ทั่วไป (แม้แต่ sudo) คุณจะได้รับข้อผิดพลาด

mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf

ในกรณีนี้ คุณต้องแก้ไข /etc/fuse.conf โดยยกเลิกการแสดงความคิดเห็นในบรรทัด #user_allow_other

หลังจากนั้นให้รีสตาร์ท ipfs

ปัญหาที่ทราบเกี่ยวกับ FUSE

พบปัญหามากกว่าหนึ่งครั้งหลังจากรีสตาร์ท ipfs พร้อมการเมานต์ (และอาจในกรณีอื่นๆ) จุดเมาต์ /ipfs และ /ipns จะไม่พร้อมใช้งาน ไม่สามารถเข้าถึงได้และ ls -la /ipfs แสดง ???? ในรายการสิทธิ.

พบวิธีแก้ปัญหานี้:

fusermount -z -u /ipfs
fusermount -z -u /ipns

จากนั้นรีสตาร์ท ipfs

การเพิ่มบริการ

แน่นอนว่าการทำงานในเทอร์มินัลนั้นเหมาะสำหรับการทดสอบเบื้องต้นเท่านั้น ในโหมดการต่อสู้ daemon ควรเริ่มต้นโดยอัตโนมัติเมื่อเริ่มต้นระบบ

ในนามของ sudo ให้สร้างไฟล์ /etc/systemd/system/ipfs.service และเขียนลงไป:

[Unit]
Description=IPFS Daemon
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/home/USERNAME/work/bin/ipfs daemon --mount
User=USERNAME
Restart=always

[Install]
WantedBy=multi-user.target

แน่นอนว่า USERNAME จะต้องถูกแทนที่ด้วยผู้ใช้ของคุณ (และบางทีเส้นทางแบบเต็มไปยังโปรแกรม ipfs จะแตกต่างออกไปสำหรับคุณ (คุณต้องระบุเส้นทางแบบเต็ม))

เราเปิดใช้บริการ

sudo systemctl enable ipfs.service

เราเริ่มให้บริการ

sudo service ipfs start

การตรวจสอบสถานะของบริการ

sudo service ipfs status

เพื่อความบริสุทธิ์ของการทดสอบ คุณสามารถรีบูตเซิร์ฟเวอร์ในอนาคตเพื่อตรวจสอบว่า ipfs เริ่มทำงานโดยอัตโนมัติได้สำเร็จ

เพิ่มงานฉลองที่เรารู้จัก

พิจารณาสถานการณ์ที่เราติดตั้งโหนด IPFS ทั้งบนเซิร์ฟเวอร์ภายนอกและในเครื่อง บนเซิร์ฟเวอร์ภายนอก เราเพิ่มไฟล์บางไฟล์และพยายามรับผ่าน IPFS ภายในเครื่องด้วย CID อะไรจะเกิดขึ้น? แน่นอนว่าเซิร์ฟเวอร์ภายในมักจะไม่รู้อะไรเกี่ยวกับเซิร์ฟเวอร์ภายนอกของเราและจะพยายามค้นหาไฟล์ด้วย CID โดย "ถาม" เพียร์ IPFS ทั้งหมดที่พร้อมใช้งาน (ซึ่งได้จัดการเพื่อ "ทำความคุ้นเคย" แล้ว) ในทางกลับกันจะถามคนอื่น ไปเรื่อย ๆ จนกว่าจะพบไฟล์ อันที่จริง สิ่งเดียวกันนี้เกิดขึ้นเมื่อเราพยายามรับไฟล์ผ่านเกตเวย์อย่างเป็นทางการ ipfs.io. หากคุณโชคดี จะพบไฟล์ในไม่กี่วินาที และหากไม่มีก็จะไม่พบแม้ในไม่กี่นาทีซึ่งส่งผลต่อความสะดวกสบายในการทำงานอย่างมาก แต่เรารู้ว่าไฟล์นี้จะปรากฏที่ใดก่อน เหตุใดเราจึงไม่บอกเซิร์ฟเวอร์ในพื้นที่ของเราทันทีว่า "ค้นหาที่นั่นก่อน" เห็นได้ชัดว่าสามารถทำได้

1. เราไปที่เซิร์ฟเวอร์ระยะไกลและดูในการกำหนดค่า ~/.ipfs/config

"Identity": {
    "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuxxxxxxxxxxxxxxxx",

2. เรียกใช้สถานะ sudo service ipfs และค้นหารายการ Swarm ในนั้น เช่น:

Swarm announcing /ip4/ip_вашего_сервера/tcp/4001

3. เราเพิ่มที่อยู่ทั่วไปของแบบฟอร์ม "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID" จากนี้

4. เพื่อความน่าเชื่อถือ เราจะพยายามเพิ่มที่อยู่นี้ให้กับเพื่อน ๆ ผ่าน webui ในพื้นที่ของเรา

IPFS โดยไม่มีความเจ็บปวด (แต่ไม่ถูกต้อง)

5. หากทุกอย่างเรียบร้อยดี ให้เปิด local config ~ / .ipfs / config ค้นหา “Bootstrap” ในนั้น: [...
และเพิ่มที่อยู่ที่ได้รับก่อนในอาร์เรย์

รีสตาร์ท IPFS

ตอนนี้ให้เพิ่มไฟล์ไปยังเซิร์ฟเวอร์ภายนอกและลองร้องขอในเครื่อง ควรบินให้เร็ว

แต่ฟังก์ชั่นนี้ยังไม่เสถียร เท่าที่ฉันเข้าใจ แม้ว่าเราจะระบุที่อยู่ของเพียร์ใน Bootstrap แต่ ipfs ก็ยังเปลี่ยนรายการการเชื่อมต่อที่แอ็คทีฟกับเพียร์ระหว่างการดำเนินการ ไม่ว่าในกรณีใด การหารือเกี่ยวกับเรื่องนี้และความปรารถนาเกี่ยวกับความเป็นไปได้ในการระบุงานเลี้ยงถาวรกำลังดำเนินการอยู่ ที่นี่ และดูเหมือนว่า ควร เพิ่มฟังก์ชันบางอย่างให้กับ [ป้องกันอีเมล]+

รายชื่อเพื่อนปัจจุบันสามารถดูได้ทั้งใน webui และในเทอร์มินัล

ipfs swarm peers

และที่นี่และที่นั่น คุณสามารถเพิ่มงานเลี้ยงของคุณด้วยตนเอง

ipfs swarm connect "/ip4/ip_вашего_сервера/tcp/4001/ipfs/$PeerID"

จนกว่าฟังก์ชันการทำงานนี้จะได้รับการปรับปรุง คุณสามารถเขียนเครื่องมือเพื่อตรวจสอบการเชื่อมต่อกับเพียร์ที่ต้องการ และถ้าไม่ใช่ เพื่อเพิ่มการเชื่อมต่อ

การให้เหตุผล

ในบรรดาผู้ที่คุ้นเคยกับ IPFS อยู่แล้ว มีทั้งข้อโต้แย้งสำหรับและต่อต้าน IPFS โดยทั่วไปเมื่อวานนี้ อภิปรายผล และแจ้งให้ฉันขุดใน IPFS อีกครั้ง และเกี่ยวกับการสนทนาที่กล่าวถึงข้างต้น: ฉันไม่สามารถพูดได้ว่าฉันคัดค้านข้อโต้แย้งใด ๆ ของผู้ที่พูดอย่างรุนแรง (ฉันไม่เห็นด้วยกับข้อเท็จจริงที่ว่าโปรแกรมเมอร์ครึ่งหนึ่งใช้ IPFS) โดยทั่วไปแล้ว ทั้งคู่มีแนวทางที่ถูกต้อง (โดยเฉพาะ ความคิดเห็นเกี่ยวกับเช็ค ทำให้คุณคิด). แต่ถ้าเราละทิ้งการประเมินทางศีลธรรมและกฎหมาย ใครจะเป็นผู้ประเมินทางเทคนิคของเทคโนโลยีนี้ โดยส่วนตัวแล้วฉันมีความรู้สึกบางอย่างในใจว่า "สิ่งนี้ต้องทำอย่างชัดเจน มีโอกาสแน่นอน" แต่ทำไมไม่มีสูตรที่ชัดเจน เช่น ถ้าคุณมองไปที่เครื่องมือแบบรวมศูนย์ที่มีอยู่แล้ว ในหลาย ๆ ด้าน เครื่องมือเหล่านี้นำหน้าไปมาก (ความเสถียร ความเร็ว ความสามารถในการจัดการ ฯลฯ) อย่างไรก็ตาม ฉันมีความคิดหนึ่งที่ดูเหมือนจะสมเหตุสมผลและแทบจะไม่สามารถดำเนินการได้หากไม่มีระบบกระจายอำนาจดังกล่าว แน่นอนว่าฉันแกว่งแรงเกินไป แต่ฉันจะกำหนดด้วยวิธีนี้: หลักการเผยแพร่ข้อมูลบนอินเทอร์เน็ตจะต้องเปลี่ยน

ให้ฉันอธิบาย หากคุณลองคิดดู ตอนนี้เรามีข้อมูลที่แจกจ่ายตามหลักการ "ฉันหวังว่าคนที่ฉันมอบให้จะปกป้องมัน และจะไม่สูญหายหรือได้รับจากผู้ที่ไม่ได้ตั้งใจ" ตัวอย่างเช่น การพิจารณาบริการอีเมลต่างๆ พื้นที่เก็บข้อมูลบนคลาวด์ ฯลฯ เป็นเรื่องง่าย แล้วเราจบอะไรมา? บนฮาเบรฮับ ความปลอดภัยของข้อมูล อยู่ในบรรทัดแรกและเกือบทุกวันเราได้รับข่าวเกี่ยวกับการรั่วไหลทั่วโลกอีกครั้ง ตามหลักการแล้ว สิ่งที่น่าสนใจที่สุดทั้งหมดอยู่ใน <ประชด> ยอดเยี่ยม บทความ ฤดูร้อนใกล้จะจบลงแล้ว แทบไม่เหลือข้อมูลที่รั่วไหล. นั่นคือ ยักษ์ใหญ่ด้านอินเทอร์เน็ตหลักเริ่มมีขนาดใหญ่ขึ้น พวกเขากำลังสะสมข้อมูลมากขึ้นเรื่อย ๆ และการรั่วไหลดังกล่าวเป็นการระเบิดปรมาณูของข้อมูลประเภทหนึ่ง สิ่งนี้ไม่เคยเกิดขึ้นมาก่อน และนี่ก็เป็นอีกครั้ง ในขณะเดียวกัน แม้ว่าหลายคนจะเข้าใจว่ามีความเสี่ยง แต่พวกเขาก็จะเชื่อถือข้อมูลของตนต่อบริษัทบุคคลที่สามต่อไป ประการแรก ไม่มีทางเลือกอื่นมากนัก และประการที่สอง พวกเขาสัญญาว่าได้แก้ไขช่องโหว่ทั้งหมดแล้ว และจะไม่เกิดเหตุการณ์เช่นนี้อีก

ฉันเห็นตัวเลือกใด สำหรับฉันแล้วดูเหมือนว่าข้อมูลควรได้รับการเผยแพร่อย่างเปิดเผยในขั้นต้น แต่การเปิดกว้างในกรณีนี้ไม่ได้หมายความว่าทุกอย่างควรอ่านง่าย ฉันกำลังพูดถึงความเปิดกว้างในการจัดเก็บและการแจกจ่าย แต่ไม่ใช่ความเปิดกว้างทั้งหมดในการอ่าน ฉันคิดว่าข้อมูลควรถูกแจกจ่ายด้วยกุญแจสาธารณะ ท้ายที่สุดหลักการของคีย์สาธารณะ / ส่วนตัวนั้นเก่าแล้วเกือบจะเหมือนกับอินเทอร์เน็ต หากข้อมูลไม่เป็นความลับและมีไว้สำหรับวงกว้าง ข้อมูลนั้นจะถูกวางทันทีด้วยรหัสสาธารณะ (แต่ยังคงอยู่ในรูปแบบเข้ารหัส ใครๆ ก็สามารถถอดรหัสได้ด้วยรหัสที่มี) และถ้าไม่เช่นนั้นก็จะวางโดยไม่มีรหัสสาธารณะและรหัสนั้นจะถูกโอนไปยังสิ่งที่ควรเข้าถึงข้อมูลนี้ ในเวลาเดียวกันผู้ที่ควรอ่านควรมีรหัสเท่านั้นและตำแหน่งที่จะรับข้อมูลนี้เขาไม่ควรบินจริง ๆ - เขาเพิ่งดึงมันออกมาจากเครือข่าย (นี่คือหลักการใหม่ของการกระจายเนื้อหาไม่ใช่โดย ที่อยู่).

ดังนั้น สำหรับการโจมตีจำนวนมาก ผู้โจมตีจำเป็นต้องได้รับคีย์ส่วนตัวจำนวนมาก และไม่น่าจะทำได้ในที่เดียว อย่างที่ฉันเห็นงานนี้ยากกว่าการแฮ็คบริการใดบริการหนึ่ง

และที่นี่ปิดปัญหาอื่น: การยืนยันการประพันธ์ ขณะนี้บนอินเทอร์เน็ตคุณสามารถค้นหาคำพูดมากมายที่เขียนโดยเพื่อนของเรา แต่ที่ไหนจะรับประกันได้ว่าพวกเขาเป็นคนเขียน? ตอนนี้ หากบันทึกดังกล่าวแต่ละรายการมีลายเซ็นดิจิทัลมาด้วย มันจะง่ายกว่านี้มาก และไม่สำคัญว่าข้อมูลนี้จะอยู่ที่ใด สิ่งสำคัญคือลายเซ็นซึ่งแน่นอนว่าปลอมแปลงได้ยาก

และนี่คือสิ่งที่น่าสนใจ: IPFS มีเครื่องมือเข้ารหัสอยู่แล้ว (หลังจากนั้นก็สร้างขึ้นจากเทคโนโลยีบล็อกเชน) รหัสส่วนตัวจะถูกระบุทันทีในการกำหนดค่า

  "Identity": {
    "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx",
    "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5
pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60
KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7
2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................

ฉันไม่ใช่ผู้เชี่ยวชาญด้านความปลอดภัยและไม่ทราบวิธีการใช้อย่างถูกต้อง แต่สำหรับฉันแล้วดูเหมือนว่าคีย์เหล่านี้จะใช้ในระดับการแลกเปลี่ยนระหว่างโหนด IPFS และนอกจากนี้ยังมี js-ipfs และตัวอย่างโครงการ เช่น วงโคจร-dbซึ่งมันใช้งานได้ orbit.แชท. นั่นคือ ตามทฤษฎีแล้ว อุปกรณ์แต่ละเครื่อง (อุปกรณ์เคลื่อนที่และไม่เพียงแต่) สามารถติดตั้งเครื่องเข้ารหัส-ถอดรหัสของตัวเองได้อย่างง่ายดาย ในกรณีนี้ มีเพียงทุกคนเท่านั้นที่จะต้องดูแลบันทึกคีย์ส่วนตัวของตน และทุกคนจะต้องรับผิดชอบในความปลอดภัยของตนเอง และไม่ตกเป็นตัวประกันของปัจจัยมนุษย์อื่นในยักษ์ใหญ่อินเทอร์เน็ตยอดนิยมบางราย

เฉพาะผู้ใช้ที่ลงทะเบียนเท่านั้นที่สามารถเข้าร่วมในการสำรวจได้ เข้าสู่ระบบ, โปรด.

คุณเคยได้ยินเกี่ยวกับ IPFS มาก่อนหรือไม่?

  • ฉันไม่เคยได้ยินเกี่ยวกับ IPFS แต่ดูเหมือนว่าน่าสนใจ

  • ไม่ได้ยินและไม่อยากได้ยิน

  • ได้ยินแต่ไม่สนใจ

  • ได้ยิน แต่ไม่เข้าใจ แต่ตอนนี้ดูเหมือนว่าน่าสนใจ

  • ฉันใช้งาน IPFS อย่างจริงจังมาเป็นเวลานาน

ผู้ใช้ 69 คนโหวต ผู้ใช้ 13 รายงดออกเสียง

ที่มา: will.com

เพิ่มความคิดเห็น