IPFS nang walang sakit (ngunit hindi ito tumpak)

IPFS nang walang sakit (ngunit hindi ito tumpak)

Sa kabila ng katotohanan na si Habré na noon higit sa isang artikulo tungkol sa IPFS.

Lilinawin ko kaagad na hindi ako eksperto sa lugar na ito, ngunit nagpakita ako ng interes sa teknolohiyang ito nang higit sa isang beses, ngunit ang pagsisikap na paglaruan ito ay kadalasang nagdulot ng kaunting sakit. Ngayon nagsimula akong mag-eksperimento muli at nakakuha ng ilang mga resulta na gusto kong ibahagi. Sa madaling salita, ang proseso ng pag-install ng IPFS at ilang mga tampok ay ilalarawan (lahat ay ginawa sa ubuntu, hindi ko pa ito sinubukan sa ibang mga platform).

Kung napalampas mo kung ano ang IPFS, nakasulat ito sa ilang detalye dito: habr.com/en/post/314768

Instalasyon

Para sa kadalisayan ng eksperimento, iminumungkahi ko agad na i-install ito sa ilang panlabas na server, dahil isasaalang-alang namin ang ilang mga pitfalls sa pagtatrabaho sa lokal na mode at remote. Tapos, kung gugustuhin, matagal-tagal na rin itong di-demolish, wala naman masyado.

I-install ang go

Opisyal na dokumentasyon
Tingnan ang kasalukuyang bersyon sa golang.org/dl

Tandaan: mas mainam na mag-install ng IPFS sa ngalan ng user na dapat na madalas na gumamit nito. Ang katotohanan ay sa ibaba ay isasaalang-alang namin ang opsyon ng pag-mount sa pamamagitan ng Piyus at may mga subtleties.

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

Pagkatapos ay kailangan mong i-update ang kapaligiran (higit pang mga detalye dito: 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

Ang pagsuri na ang go ay naka-install

go version

I-install ang IPFS

Nagustuhan ko ang paraan ng pag-install ipfs update.

I-install ito gamit ang command

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

Pagkatapos nito, maaari mong patakbuhin ang mga sumusunod na command:

ipfs-update na mga bersyon - upang makita ang lahat ng magagamit na bersyon para sa pag-download.
ipfs-update na bersyon - upang makita ang kasalukuyang naka-install na bersyon (hanggang sa na-install namin ang IPFS, ito ay wala).
pinakabagong pag-install ng ipfs-update - i-install ang pinakabagong bersyon ng IPFS. Sa halip na pinakabago, ayon sa pagkakabanggit, maaari mong tukuyin ang anumang nais na bersyon mula sa listahan ng mga magagamit.

Pag-install ng ipfs

ipfs-update install latest

Suriin

ipfs --version

Direkta sa pag-install sa mga pangkalahatang tuntunin ang lahat.

Simulan ang IPFS

Pagsisimula

Una kailangan mong magsagawa ng pagsisimula.

ipfs init

Bilang tugon, makakatanggap ka ng ganito:

 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

Maaari mong patakbuhin ang iminungkahing command

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Resulta

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

Dito, sa aking opinyon, nagsisimula ang kawili-wili. Ang mga lalaki sa yugto ng pag-install ay nagsisimula nang gumamit ng kanilang sariling mga teknolohiya. Ang iminungkahing hash QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv ay hindi partikular na binuo para sa iyo, ngunit itinahi sa release. Iyon ay, bago ang paglabas, naghanda sila ng isang welcome text, ibinuhos ito sa IPFS at idinagdag ang address sa installer. Sa tingin ko ito ay napaka-cool. At ang file na ito (mas tiyak, ang buong folder) ay maaari na ngayong matingnan hindi lamang sa lokal, kundi pati na rin sa opisyal na gateway ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. Kasabay nito, maaari mong siguraduhin na ang mga nilalaman ng folder ay hindi nagbago sa anumang paraan, dahil kung ito ay nagbago, kung gayon ang hash ay nagbago din.

Sa pamamagitan ng paraan, sa kasong ito, ang IPFS ay may ilang pagkakatulad sa server ng control ng bersyon. Kung gumawa ka ng mga pagbabago sa mga source file ng folder at muling ibuhos ang folder sa IPFS, pagkatapos ay makakatanggap ito ng bagong address. Kasabay nito, ang lumang folder ay hindi mapupunta kahit saan nang ganoon lang at magiging available sa dating address nito.

Direktang paglulunsad

ipfs daemon

Dapat kang makatanggap ng tugon tulad nito:

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

Pagbubukas ng mga pinto sa Internet

Bigyang-pansin ang dalawang linyang ito:

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

Ngayon, kung nag-install ka ng IPFS nang lokal, maa-access mo ang mga interface ng IPFS sa mga lokal na address at magiging available sa iyo ang lahat (Halimbawa, localhost:5001/webui/). Ngunit kapag naka-install sa isang panlabas na server, bilang default, ang mga gateway ay sarado sa Internet. Dalawang gateway:

  1. webui admin (github) sa port 5001.
  2. Panlabas na API sa port 8080 (readonly).

Sa ngayon, ang parehong mga port (5001 at 8080) ay maaaring mabuksan para sa mga eksperimento, ngunit sa isang server ng labanan, siyempre, ang port 5001 ay dapat na sarado na may isang firewall. Mayroon ding port 4001, na kailangan para mahanap ka ng ibang mga kapantay. Dapat itong iwanang bukas sa mga kahilingan sa labas.

Buksan ang ~/.ipfs/config para sa pag-edit at hanapin ang mga linyang ito dito:

"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"
}

Baguhin ang 127.0.0.1 sa ip ng iyong server at i-save ang file, pagkatapos ay i-restart ang ipfs (ihinto ang pagpapatakbo ng command gamit ang Ctrl+C at simulan itong muli).

Dapat makuha

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

Ngayon ang mga panlabas na interface ay dapat na magagamit.

Suriin

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

Dapat mabuksan ang readme file sa itaas.

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

Dapat buksan ang web interface.

Kung gumagana ang webui para sa iyo, ang mga setting ng IPFS ay maaaring direktang baguhin dito, kasama ang pagtingin sa mga istatistika, ngunit sa ibaba ay isasaalang-alang ko ang mga opsyon sa pagsasaayos nang direkta sa pamamagitan ng config file, na sa pangkalahatan ay hindi kritikal. Mas mainam na tandaan kung saan eksakto ang config at kung ano ang gagawin dito, kung hindi man kung ang web face ay hindi gumagana, ito ay magiging mas mahirap.

Pagse-set up ng web interface para gumana sa iyong server

Narito ang unang pitfall, na tumagal ng halos tatlong oras.

Kung nag-install ka ng IPFS sa isang panlabas na server, ngunit hindi nag-install o nagpatakbo ng IPFS nang lokal, pagkatapos ay kapag pumunta ka sa /webui sa web interface, dapat kang makakita ng error sa koneksyon:

IPFS nang walang sakit (ngunit hindi ito tumpak)

Ang katotohanan ay ang webui, sa palagay ko, ay gumagana nang hindi maliwanag. Una, sinusubukan nitong kumonekta sa API ng server kung saan bukas ang interface (batay sa address sa browser, siyempre). at kung nabigo ito doon, susubukan nitong kumonekta sa lokal na gateway. At kung mayroon kang IPFS na tumatakbo nang lokal, kung gayon ang webui ay gagana nang maayos para sa iyo, ikaw lamang ang gagana sa lokal na IPFS, at hindi panlabas, kahit na binuksan mo ang webui sa isang panlabas na server. Pagkatapos ay i-upload mo ang mga file, ngunit sa ilang kadahilanan ay hindi mo nakikita ang mga ito nang ganoon sa isang panlabas na server...

At kung hindi ito tumatakbo nang lokal, magkakaroon kami ng error sa koneksyon. Sa aming kaso, ang error ay malamang na dahil sa CORS, na ipinahiwatig din ng webui, na nagmumungkahi ng pagdaragdag ng isang config.

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"]'

Kakarehistro ko lang ng wildcard

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

Ang mga idinagdag na header ay matatagpuan sa parehong ~/.ipfs/config. Sa aking kaso ito ay

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

I-restart namin ang ipfs at nakita namin na matagumpay na nakakonekta ang webui (sa anumang kaso, dapat, kung binuksan mo ang mga gateway para sa mga kahilingan mula sa labas, tulad ng inilarawan sa itaas).

Ngayon ay maaari kang mag-upload ng mga folder at file nang direkta sa pamamagitan ng web interface, pati na rin lumikha ng iyong sariling mga folder.

Pag-mount ng FUSE filesystem

Narito ang isang medyo kawili-wiling tampok.

Mga file (pati na rin ang mga folder), maaari naming idagdag hindi lamang sa pamamagitan ng web interface, ngunit direkta din sa terminal, halimbawa

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

Ang huling hash ay ang hash ng root folder.

Gamit ang hash na ito, maaari kaming magbukas ng folder sa anumang ipfs node (na mahahanap ang aming node at makuha ang mga nilalaman), magagawa namin sa web interface sa port 5001 o 8080, o maaari naming lokal sa pamamagitan ng ipfs.

ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt

Ngunit maaari mo pa ring buksan ito tulad ng isang regular na folder.

Gumawa tayo ng dalawang folder sa ugat at magbigay ng mga karapatan sa kanila sa ating user.

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

at i-restart ang ipfs gamit ang --mount flag

ipfs daemon --mount

Maaari kang lumikha ng mga folder sa ibang mga lugar at tukuyin ang landas patungo sa kanila sa pamamagitan ng mga parameter ng ipfs daemon -mount -mount-ipfs /ipfs_path -mount-ipns /ipns_path

Ngayon ang pagbabasa mula sa folder na ito ay medyo hindi karaniwan.

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

Ibig sabihin, walang direktang pag-access sa ugat ng folder na ito. Ngunit maaari mong makuha ang nilalaman, alam ang hash.

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

Kasabay nito, kahit na ang auto-completion ay gumagana sa loob ng folder kapag tinukoy ang path.

Tulad ng sinabi ko sa itaas, mayroong mga subtleties na may ganitong pag-mount: bilang default, ang mga naka-mount na FUSE folder ay magagamit lamang sa kasalukuyang gumagamit (kahit na ang root ay hindi makakabasa mula sa naturang folder, hindi sa pagbanggit ng iba pang mga gumagamit sa system). Kung gusto mong gawing available ang mga folder na ito sa ibang mga user, pagkatapos ay sa config kailangan mong baguhin ang "FuseAllowOther": false sa "FuseAllowOther": true. Ngunit hindi lang iyon. Kung nagpapatakbo ka ng IPFS bilang ugat, kung gayon ang lahat ay OK. At kung sa ngalan ng isang regular na user (kahit sudo), magkakaroon ka ng error

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

Sa kasong ito, kailangan mong i-edit ang /etc/fuse.conf sa pamamagitan ng pag-uncomment sa #user_allow_other na linya.

Pagkatapos nito, i-restart ang ipfs.

Mga kilalang isyu sa FUSE

Ang problema ay napansin ng higit sa isang beses na pagkatapos i-restart ang ipfs sa pag-mount (at marahil sa ibang mga kaso), ang /ipfs at /ipns mount point ay hindi magagamit. Walang access sa kanila, at ang ls -la /ipfs ay nagpapakita ???? sa listahan ng mga karapatan.

Natagpuan ang solusyon na ito:

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

Pagkatapos ay i-restart ang ipfs.

Pagdaragdag ng serbisyo

Siyempre, ang pagtakbo sa terminal ay angkop lamang para sa mga paunang pagsubok. Sa combat mode, ang daemon ay dapat na awtomatikong magsimula sa system startup.

Sa ngalan ng sudo, lumikha ng file /etc/systemd/system/ipfs.service at sumulat dito:

[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

Ang USERNAME, siyempre, ay dapat mapalitan ng iyong user (at marahil ang buong path sa ipfs program ay magiging iba para sa iyo (dapat mong tukuyin ang buong path)).

Ina-activate namin ang serbisyo.

sudo systemctl enable ipfs.service

Sinimulan namin ang serbisyo.

sudo service ipfs start

Sinusuri ang katayuan ng serbisyo.

sudo service ipfs status

Para sa kadalisayan ng eksperimento, posibleng i-reboot ang server sa hinaharap upang matiyak na awtomatikong magsisimula ang ipfs.

Pagdaragdag ng mga kilalang piging sa atin

Isaalang-alang ang isang sitwasyon kung saan mayroon kaming mga IPFS node na naka-install sa parehong panlabas na server at lokal. Sa isang panlabas na server, nagdaragdag kami ng ilang file at sinusubukang kunin ito sa pamamagitan ng IPFS nang lokal ng CID. Ano ang mangyayari? Siyempre, ang lokal na server ay malamang na walang alam tungkol sa aming panlabas na server at susubukan lamang na hanapin ang file sa pamamagitan ng CID sa pamamagitan ng "pagtatanong" sa lahat ng mga kapantay ng IPFS na magagamit nito (kung saan nagawa na nitong "makilala"). Yung iba naman magtatanong. At iba pa, hanggang sa matagpuan ang file. Sa totoo lang, ang parehong bagay ay nangyayari kapag sinubukan naming makuha ang file sa pamamagitan ng opisyal na gateway ipfs.io. Kung ikaw ay mapalad, ang file ay makikita sa loob ng ilang segundo. At kung hindi, hindi ito mahahanap kahit sa ilang minuto, na lubos na nakakaapekto sa kaginhawaan ng trabaho. Ngunit alam namin kung saan unang lalabas ang file na ito. Kaya bakit hindi natin sabihin agad sa ating lokal na server na "Maghanap ka muna doon"? Tila, ito ay maaaring gawin.

1. Pumunta kami sa remote server at tumingin sa ~/.ipfs/config config

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

2. Patakbuhin ang katayuan ng sudo service ipfs at hanapin ang mga entry ng Swarm dito, halimbawa:

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

3. Idinaragdag namin mula rito ang pangkalahatang address ng form na "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID".

4. Para sa pagiging maaasahan, susubukan naming idagdag ang address na ito sa mga kapantay sa pamamagitan ng aming lokal na webui.

IPFS nang walang sakit (ngunit hindi ito tumpak)

5. Kung OK ang lahat, buksan ang lokal na config ~ / .ipfs / config, hanapin ang "Bootstrap" dito: [...
at idagdag muna ang natanggap na address sa array.

I-restart ang IPFS.

Ngayon, idagdag natin ang file sa panlabas na server at subukang hilingin ito sa lokal. Dapat mabilis na lumipad.

Ngunit hindi pa stable ang functionality na ito. Sa pagkakaintindi ko, kahit na tukuyin natin ang address ng isang peer sa Bootstrap, binabago ng ipfs ang listahan ng mga aktibong koneksyon sa mga peer habang tumatakbo. Sa anumang kaso, ang talakayan tungkol dito at mga kagustuhan tungkol sa posibilidad ng pagtukoy ng mga permanenteng kapistahan ay isinasagawa dito at parang dapat magdagdag ng ilang pag-andar sa [protektado ng email]+

Ang listahan ng kasalukuyang mga kapantay ay maaaring matingnan pareho sa webui at sa terminal.

ipfs swarm peers

At dito at doon maaari mong idagdag nang manu-mano ang iyong kapistahan.

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

Hanggang sa napabuti ang functionality na ito, maaari kang magsulat ng tool para tingnan kung may koneksyon sa gustong peer at, kung hindi, magdagdag ng koneksyon.

Pangangatwiran

Sa mga pamilyar na sa IPFS, mayroong parehong mga argumento para sa at laban sa IPFS. Basically, kahapon talakayan at sinenyasan akong maghukay muli sa IPFS. At tungkol sa talakayan na nabanggit sa itaas: Hindi ko masasabi na mahigpit kong tinututulan ang anumang argumento ng mga nagsalita (hindi ako sumasang-ayon lamang sa katotohanan na ang isa at kalahating programmer ay gumagamit ng IPFS). Sa pangkalahatan, pareho silang tama sa sarili nilang paraan (lalo na komento tungkol sa mga tseke nagpapaisip sa iyo). Ngunit kung itatapon natin ang moral at legal na pagtatasa, sino ang magbibigay ng teknikal na pagtatasa ng teknolohiyang ito? Sa personal, mayroon akong ilang uri ng panloob na pakiramdam na "dapat itong gawin nang walang pag-aalinlangan, mayroon itong ilang mga prospect." Pero bakit nga ba, walang malinaw na formulation. Tulad ng, kung titingnan mo ang umiiral na mga sentralisadong tool, kung gayon sa maraming aspeto ay nauuna sila (katatagan, bilis, pamamahala, atbp.). Gayunpaman, mayroon akong isang pag-iisip na tila may katuturan at halos hindi maipapatupad nang walang ganitong mga desentralisadong sistema. Siyempre, masyado akong nahihirapan, ngunit bubuoin ko ito sa ganitong paraan: dapat baguhin ang prinsipyo ng pagpapakalat ng impormasyon sa Internet.

Hayaan mo akong magpaliwanag. Kung iisipin mo, ngayon ay mayroon na tayong impormasyon na ipinamahagi ayon sa prinsipyong "Sana poprotektahan ito ng pinagkalooban ko at hindi ito mawawala o matanggap ng mga hindi nilayon." Bilang halimbawa, madaling isaalang-alang ang iba't ibang serbisyo ng mail, mga cloud storage, atbp. At ano ang ating matatapos? Sa Habré hub Seguridad ng impormasyon ay nasa unang linya at halos araw-araw ay nakakatanggap kami ng balita tungkol sa isa pang pandaigdigang pagtagas. Sa prinsipyo, ang lahat ng mga pinaka-kagiliw-giliw na bagay ay nakalista sa <irony> kahanga-hanga artikulo Malapit nang matapos ang summer. Halos walang natitira na data. Iyon ay, ang mga pangunahing higante sa Internet ay nagiging mas malaki, sila ay nag-iipon ng higit pa at higit pang impormasyon, at ang mga naturang paglabas ay isang uri ng impormasyon na mga pagsabog ng atom. Hindi pa ito nangyari noon, at narito na naman. Kasabay nito, bagama't naiintindihan ng marami na may mga panganib, patuloy nilang ipagkakatiwala ang kanilang data sa mga kumpanya ng third-party. Una, walang masyadong alternatibo, at pangalawa, ipinangako nila na lahat ng mga butas ay kanilang natagpi-tagpi at hindi na ito mauulit.

Anong opsyon ang nakikita ko? Tila sa akin na ang data ay dapat na unang ipamahagi nang bukas. Ngunit ang pagiging bukas sa kasong ito ay hindi nangangahulugan na ang lahat ay dapat na madaling basahin. Pinag-uusapan ko ang pagiging bukas ng imbakan at pamamahagi, ngunit hindi kabuuang pagiging bukas sa pagbabasa. Ipinapalagay ko na ang impormasyon ay dapat ipamahagi gamit ang mga pampublikong key. Pagkatapos ng lahat, ang prinsipyo ng pampubliko / pribadong mga susi ay luma na, halos tulad ng Internet. Kung ang impormasyon ay hindi kumpidensyal at inilaan para sa isang malawak na bilog, pagkatapos ay inilatag kaagad ito gamit ang isang pampublikong susi (ngunit nasa naka-encrypt na anyo pa rin, kahit sino ay maaaring i-decrypt ito gamit ang magagamit na susi). At kung hindi, pagkatapos ay inilatag ito nang walang pampublikong susi, at ang susi mismo ay inilipat sa kung ano ang dapat magkaroon ng access sa impormasyong ito. Kasabay nito, ang dapat magbasa nito ay dapat lamang magkaroon ng isang susi, at kung saan kukunin ang impormasyong ito, hindi siya dapat talagang pumailanglang - hinila lang niya ito mula sa network (ito ang bagong prinsipyo ng pamamahagi sa pamamagitan ng nilalaman, hindi sa pamamagitan ng address).

Kaya, para sa isang malawakang pag-atake, ang mga umaatake ay kailangang makakuha ng isang malaking bilang ng mga pribadong key, at ito ay malamang na hindi gawin sa isang lugar. Ang gawaing ito, tulad ng nakikita ko, ay mas mahirap kaysa sa pag-hack ng isang partikular na serbisyo.

At narito ang isa pang problema ay sarado: kumpirmasyon ng pagiging may-akda. Ngayon sa Internet maaari kang makahanap ng maraming mga quote na isinulat ng aming mga kaibigan. Ngunit nasaan ang garantiya na sila ang sumulat nito? Ngayon, kung ang bawat naturang tala ay sinamahan ng isang digital na lagda, ito ay magiging mas madali. At hindi mahalaga kung saan namamalagi ang impormasyong ito, ang pangunahing bagay ay ang pirma, na, siyempre, ay mahirap huwad.

At narito ang kawili-wili dito: Ang IPFS ay nagdadala na ng mga tool sa pag-encrypt (pagkatapos ng lahat, ito ay binuo sa teknolohiya ng blockchain). Ang pribadong key ay agad na tinukoy sa config.

  "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.................

Hindi ako isang espesyalista sa seguridad at hindi ko alam nang eksakto kung paano gamitin ito nang tama, ngunit tila sa akin ang mga key na ito ay ginagamit sa antas ng pagpapalitan sa pagitan ng mga IPFS node. At saka js-ipfs at mga halimbawang proyekto tulad ng orbit-dbkung saan ito gumagana orbit.chat. Iyon ay, ayon sa teorya, ang bawat aparato (mobile at hindi lamang) ay madaling nilagyan ng sarili nitong encryption-decryption machine. Sa kasong ito, nananatili lamang para sa lahat na mag-ingat sa pag-save ng kanilang mga pribadong susi, at ang bawat isa ay magiging responsable para sa kanilang sariling seguridad, at hindi maging isang hostage ng isa pang kadahilanan ng tao sa ilang sobrang sikat na higante sa Internet.

Ang mga rehistradong user lamang ang maaaring lumahok sa survey. Mag-sign in, pakiusap

Narinig mo na ba ang tungkol sa IPFS dati?

  • Hindi ko pa narinig ang tungkol sa IPFS, ngunit mukhang kawili-wili

  • Hindi narinig at ayaw marinig

  • Naririnig ngunit hindi interesado

  • Narinig, ngunit hindi naiintindihan, ngunit ngayon ay tila kawili-wili

  • Matagal na akong aktibong gumagamit ng IPFS.

69 user ang bumoto. 13 na user ang umiwas.

Pinagmulan: www.habr.com

Magdagdag ng komento