Өвдөлтгүй IPFS (гэхдээ энэ нь үнэн зөв биш)

Өвдөлтгүй IPFS (гэхдээ энэ нь үнэн зөв биш)

Хабре аль хэдийн байсан ч гэсэн IPFS-ийн тухай нэгээс олон нийтлэл.

Би энэ чиглэлээр мэргэшсэн мэргэжилтэн биш гэдгийг би даруй тодруулах болно, гэхдээ би энэ технологийг нэгээс олон удаа сонирхож байсан ч үүнтэй тоглох гэж оролдох нь ихэвчлэн өвдөлт үүсгэдэг. Өнөөдөр би дахин туршилт хийж эхэлсэн бөгөөд зарим нэг үр дүнгээ хуваалцахыг хүсч байна. Товчхондоо, IPFS суулгах процесс болон зарим функцуудыг тайлбарлах болно (бүх зүйлийг ubuntu дээр хийсэн, би үүнийг бусад платформ дээр туршиж үзээгүй).

Хэрэв та IPFS гэж юу болохыг анзаараагүй бол энд дэлгэрэнгүй бичсэн болно. habr.com/en/post/314768

тохиргоо

Туршилтын цэвэр байдлын үүднээс би үүнийг гадны сервер дээр нэн даруй суулгахыг санал болгож байна, учир нь бид дотоод горим болон алсын удирдлагатай ажиллах зарим бэрхшээлийг авч үзэх болно. Дараа нь, хэрэв хүсвэл, энэ нь удаан хугацаанд нурахгүй, тийм ч их биш юм.

Go суулгана уу

Албан ёсны баримт бичиг
Одоогийн хувилбарыг эндээс үзнэ үү 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-шинэчилсэн хувилбарууд - татаж авах боломжтой бүх хувилбаруудыг харах.
ipfs-шинэчилсэн хувилбар - одоо суулгасан хувилбарыг харах (бид IPFS суулгах хүртэл энэ нь байхгүй болно).
ipfs-шинэчлэлтийг хамгийн сүүлд суулгана уу - 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 интерфэйсүүдэд хандах бөгөөд бүх зүйл танд боломжтой болно (Жишээ нь, тестлээрэй:5001/webui/). Гэхдээ гадаад сервер дээр суулгасан үед анхдагчаар гарцууд нь интернетэд хаалттай байдаг. Хоёр дахь гарц:

  1. webui админ (github) 5001 порт дээр.
  2. 8080 порт дээрх гадаад API (зөвхөн унших).

Одоогийн байдлаар хоёр портыг (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 (гэхдээ энэ нь үнэн зөв биш)

Баримт нь вэбуи миний бодлоор маш хоёрдмол утгатай ажилладаг. Нэгдүгээрт, интерфэйс нь нээлттэй байгаа серверийн API-д холбогдохыг оролддог (мэдээж хөтөч дээрх хаяг дээр үндэслэн). хэрэв тэнд ажиллахгүй бол орон нутгийн гарцтай холбогдохыг оролдоно. Хэрэв танд IPFS дотооддоо ажиллаж байгаа бол webui нь танд сайн ажиллах болно, зөвхөн та гадаад сервер дээр webui нээсэн боловч гадаад биш харин дотоод IPFS-тэй ажиллах болно. Дараа нь та файлуудыг байршуулах боловч зарим шалтгааны улмаас тэдгээрийг гадаад сервер дээр ийм байдлаар харахгүй байна ...

Хэрэв энэ нь дотооддоо ажиллахгүй бол холболтын алдаа гарна. Манай тохиолдолд алдаа нь 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

мөн --mount туг ашиглан ipfs-г дахин эхлүүлнэ үү

ipfs daemon --mount

Та өөр газар хавтас үүсгэж, тэдгээрт хүрэх замыг ipfs демон параметрүүдээр зааж өгч болно -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 хавтаснууд нь зөвхөн одоогийн хэрэглэгчдэд боломжтой байдаг (тэр ч байтугай root нь ийм хавтаснаас унших боломжгүй, системийн бусад хэрэглэгчдийг дурдахгүй). Хэрэв та эдгээр фолдерыг бусад хэрэглэгчдэд нээлттэй болгохыг хүсвэл тохиргооны хэсэгт "FuseAllowOther": худал гэснийг "FuseAllowOther": үнэн болгож өөрчлөх хэрэгтэй. Гэхдээ энэ нь бүгд биш юм. Хэрэв та IPFS-ийг root хэлбэрээр ажиллуулбал бүх зүйл хэвийн байна. Хэрэв ердийн хэрэглэгчийн нэрийн өмнөөс (судо ч гэсэн) байвал алдаа гарах болно

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

Энэ тохиолдолд та #user_allow_other мөрийн тайлбарыг арилгаснаар /etc/fuse.conf-г засварлах хэрэгтэй.

Үүний дараа ipfs-г дахин эхлүүлнэ үү.

FUSE-тэй холбоотой мэдэгдэж буй асуудлууд

Асуудлыг нэгээс олон удаа анзаарсан: ipfs-ийг залгах замаар дахин эхлүүлсний дараа (болон магадгүй бусад тохиолдолд) /ipfs болон /ipns холбох цэгүүд боломжгүй болдог. Тэдэнд хандах эрх байхгүй бөгөөд ls -la /ipfs харуулж байна ???? эрхийн жагсаалтад.

Энэ шийдлийг олсон:

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

Дараа нь ipfs-г дахин эхлүүлнэ үү.

Үйлчилгээг нэмж байна

Мэдээжийн хэрэг, терминал дээр ажиллах нь зөвхөн эхний туршилтуудад тохиромжтой. Байлдааны горимд демон нь системийг эхлүүлэх үед автоматаар эхлэх ёстой.

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 зангилааг гадаад сервер дээр болон дотоодод суулгасан нөхцөл байдлыг авч үзье. Гадаад сервер дээр бид зарим файл нэмээд CID-ээр IPFS-ээр дамжуулан авахыг оролддог. Юу тохиолдох вэ? Мэдээжийн хэрэг, локал сервер нь манай гадаад серверийн талаар юу ч мэдэхгүй бөгөөд CID-ээр файлыг олох боломжтой бүх IPFS-ийн үе тэнгийнхнээс "асуух" замаар оролдох болно (үүнтэй аль хэдийн "танилцаж" чадсан). Тэд эргээд бусдаас асуух болно. Файл олдох хүртэл гэх мэт. Үнэндээ бид файлыг албан ёсны гарцаар дамжуулан авахыг оролдох үед ижил зүйл тохиолддог ipfs.io. Хэрэв та азтай бол файл хэдхэн секундын дотор олдох болно. Хэрэв тийм биш бол хэдхэн минутын дотор олдохгүй бөгөөд энэ нь ажлын тав тухыг ихээхэн нөлөөлдөг. Гэхдээ энэ файл эхлээд хаана гарч ирэхийг бид мэднэ. Тэгэхээр бид яагаад локал сервертээ "Эхлээд тэндээс хай" гэж шууд хэлж болохгүй гэж? Үүнийг хийх боломжтой бололтой.

1. Бид алсын сервер рүү очоод ~/.ipfs/config тохиргоог харна

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

2. Sudo үйлчилгээний ipfs статусыг ажиллуулаад дотроос Swarm оруулгуудыг хайж олоорой, жишээлбэл:

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

3. Бид эндээс "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID" маягтын ерөнхий хаягийг нэмнэ.

4. Найдвартай байхын тулд бид энэ хаягийг орон нутгийн webui ашиглан үе тэнгийнхэндээ нэмэхийг хичээх болно.

Өвдөлтгүй IPFS (гэхдээ энэ нь үнэн зөв биш)

5. Хэрэв бүх зүйл хэвийн байвал локал тохиргоог ~ / .ipfs / config нээгээд, дотроос "Bootstrap"-г олоорой: [...
хүлээн авсан хаягаа эхлээд массив дээр нэмнэ.

IPFS-г дахин эхлүүлнэ үү.

Одоо файлыг гадаад серверт нэмж, дотоод сервер дээр хүсэлт гаргахыг оролдъё. Хурдан нисэх ёстой.

Гэхдээ энэ функц нь тогтвортой биш байна. Миний ойлгож байгаагаар бид Bootstrap дээр peer-ийн хаягийг зааж өгсөн ч ipfs нь үйл ажиллагааны явцад үе тэнгийнхэнтэйгээ идэвхтэй холболтуудын жагсаалтыг өөрчилдөг. Ямартай ч энэ талаар хэлэлцэж, байнгын найр наадам хийх боломжийн талаар санал хүсэлтийг хэлэлцэж байна. энд мөн юм шиг санагдаж байна гэж бодсон зарим функцийг нэмэх [имэйлээр хамгаалагдсан]+

Одоогийн үе тэнгийнхний жагсаалтыг webui болон терминал дээрээс үзэх боломжтой.

ipfs swarm peers

Мөн энд тэнд та өөрийн баярыг гараар нэмж болно.

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

Энэ функцийг сайжруулах хүртэл та хүссэн үе тэнгийнхэнтэйгээ холболт байгаа эсэхийг шалгах, хэрэв үгүй ​​бол холболт нэмэх хэрэгсэл бичиж болно.

Үндэслэл

IPFS-ийн талаар аль хэдийн мэддэг хүмүүсийн дунд IPFS-ийн эсрэг ба эсрэг аргументууд байдаг. Үндсэндээ өчигдөр хэлэлцүүлэг мөн намайг IPFS-ийг дахин ухахыг уриалав. Дээр дурдсан хэлэлцүүлгийн тухайд: Би хэлсэн хүмүүсийн аливаа аргументыг эрс эсэргүүцэж байна гэж хэлж чадахгүй (би зөвхөн нэг ба хагас програмист IPFS ашигладаг гэдэгтэй санал нийлэхгүй байна). Ерөнхийдөө хоёулаа өөр өөрийнхөөрөө зөв (ялангуяа чекийн талаархи тайлбар чамайг бодоход хүргэдэг). Харин ёс суртахуун, эрх зүйн үнэлгээг нь хаячихвал энэ технологийн техникийн үнэлгээг хэн өгөх вэ? Би хувьдаа “Үүнийг хоёрдмол утгагүй хийх ёстой, тодорхой хэтийн төлөвтэй” гэсэн дотоод мэдрэмж төрдөг. Гэхдээ яг яагаад, тодорхой томъёолол байдаггүй. Жишээлбэл, хэрэв та одоо байгаа төвлөрсөн хэрэгслүүдийг харвал тэдгээр нь олон талаараа хол түрүүлж байна (тогтвортой байдал, хурд, удирдах чадвар гэх мэт). Гэсэн хэдий ч ийм төвлөрсөн бус системгүйгээр хэрэгжих боломжгүй, утга учиртай мэт санагдах нэг бодол надад байна. Мэдээжийн хэрэг, би хэтэрхий хүчтэй савлаж байна, гэхдээ би үүнийг ингэж томъёолох болно: Интернетэд мэдээлэл түгээх зарчмыг өөрчлөх ёстой.

Би тайлбарлая. Ингээд бодохоор “Өгсөн хүн нь хамгаална, зориулаагүй нь алдагдуулахгүй, хүлээж авахгүй байгаасай” гэсэн зарчмын дагуу мэдээлэл тараалаа. Жишээлбэл, янз бүрийн шуудангийн үйлчилгээ, үүлэн хадгалалт гэх мэтийг авч үзэхэд хялбар байдаг. Тэгээд бид юугаар төгсөх вэ? Хабре төв дээр Мэдээллийн аюулгүй байдал Эхний мөрөнд байгаа бөгөөд бараг өдөр бүр бид дэлхий даяар дахин нэг алдагдсан тухай мэдээ хүлээн авдаг. Зарчмын хувьд, хамгийн сонирхолтой бүх зүйлийг <irony> гайхалтай гэж жагсаасан болно нийтлэл Зун дуусч байна. Илрээгүй мэдээлэл бараг үлдээгүй. Өөрөөр хэлбэл, интернетийн гол аваргууд улам бүр томорч, улам их мэдээлэл хуримтлуулж байгаа бөгөөд ийм алдагдал нь нэг төрлийн мэдээллийн атомын дэлбэрэлт юм. Ийм зүйл урьд өмнө хэзээ ч тохиолдож байгаагүй бөгөөд энд дахин тохиолдож байна. Үүний зэрэгцээ, олон хүн эрсдэлтэй гэдгийг ойлгож байгаа ч гуравдагч талын компаниудад мэдээллээ үргэлжлүүлэн даатгах болно. Нэгдүгээрт, өөр сонголт тийм ч их биш, хоёрдугаарт, тэд бүх нүхийг нөхсөн, дахин ийм зүйл тохиолдохгүй гэж амлаж байна.

Би ямар сонголтыг харж байна вэ? Миний бодлоор эхлээд өгөгдлийг нээлттэй тараах ёстой юм шиг байна. Гэхдээ энэ тохиолдолд нээлттэй байх нь бүх зүйлийг уншихад хялбар байх ёстой гэсэн үг биш юм. Би хадгалах, түгээх нээлттэй байдлын тухай ярьж байна, гэхдээ уншихад бүрэн нээлттэй байх тухай биш. Мэдээллийг нийтийн түлхүүрээр түгээх ёстой гэж би бодож байна. Эцсийн эцэст, нийтийн / хувийн түлхүүрүүдийн зарчим нь аль хэдийн хуучирсан, бараг интернет шиг. Хэрэв мэдээлэл нь нууц биш бөгөөд өргөн хүрээний хувьд зориулагдсан бол түүнийг нийтийн түлхүүрээр шууд гаргадаг (гэхдээ шифрлэгдсэн хэлбэрээр байгаа бол хэн ч үүнийг бэлэн түлхүүрээр тайлж болно). Хэрэв тийм биш бол нийтийн түлхүүргүйгээр байрлуулсан бөгөөд түлхүүр нь өөрөө энэ мэдээлэлд хандах ёстой зүйл рүү шилждэг. Үүний зэрэгцээ, үүнийг унших ёстой хүн зөвхөн түлхүүртэй байх ёстой бөгөөд энэ мэдээллийг хаанаас авах вэ, тэр үнэхээр хөөрөх ёсгүй - тэр зүгээр л сүлжээнээс татаж авдаг (энэ бол агуулгаар нь түгээх шинэ зарчим юм. хаяг).

Тиймээс, их хэмжээний халдлага хийхийн тулд халдагчид асар олон тооны хувийн түлхүүр авах шаардлагатай бөгөөд үүнийг нэг дор хийх боломжгүй юм. Миний харж байгаагаар энэ даалгавар нь тодорхой үйлчилгээг хакердахаас хамаагүй хэцүү юм.

Энд бас нэг асуудал хаагдсан: зохиогчийн эрхийг баталгаажуулах. Одоо интернетээс та манай найзуудын бичсэн олон ишлэлийг олж болно. Гэхдээ тэдгээрийг бичсэн нь тэд байсан гэсэн баталгаа хаана байна вэ? Одоо ийм бичлэг бүрийг тоон гарын үсэг дагалдуулсан бол илүү хялбар байх байсан. Энэ мэдээлэл хаана байх нь хамаагүй, гол зүйл бол гарын үсэг бөгөөд үүнийг хуурамчаар үйлдэх нь мэдээжийн хэрэг юм.

Энд сонирхолтой зүйл байна: 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 гэх мэт жишээ төслүүд тойрог зам-дбдээр ажилладаг orbit.chat. Өөрөөр хэлбэл, онолын хувьд төхөөрөмж бүрийг (зөвхөн хөдөлгөөнт төдийгүй) өөрийн шифрлэх-шифрлэх машинуудаар хялбархан тоноглож болно. Энэ тохиолдолд хүн бүр хувийн түлхүүрээ хадгалахад л анхаарах ёстой бөгөөд хүн бүр өөрийн аюулгүй байдлын төлөө хариуцлага хүлээх бөгөөд супер алдартай интернетийн аварга том компанид өөр хүний ​​​​хүчин зүйлийн барьцаанд орохгүй байх болно.

Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой. Нэвтрэх, гуйя.

Та IPFS-ийн талаар өмнө нь сонсож байсан уу?

  • Би IPFS-ийн талаар хэзээ ч сонсож байгаагүй, гэхдээ энэ нь сонирхолтой санагдаж байна

  • Сонсохгүй, сонсохыг ч хүсэхгүй байна

  • Сонссон ч сонирхоогүй

  • Сонссон боловч ойлгоогүй, гэхдээ одоо сонирхолтой санагдаж байна

  • Би IPFS-ийг удаан хугацаанд идэвхтэй ашиглаж байна.

69 хэрэглэгч санал өгсөн. 13 хэрэглэгч түдгэлзсэн.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх