IPFS bez sāpēm (bet tas nav precīzi)

IPFS bez sāpēm (bet tas nav precīzi)

Neskatoties uz to, ka Habrē jau bija vairāk nekā viens raksts par IPFS.

Uzreiz precizÄ“Å”u, ka neesmu eksperts Å”ajā jomā, taču interesi par Å”o tehnoloÄ£iju esmu izrādÄ«jis ne reizi vien, taču mēģinājums ar to paspēlēties nereti sagādāja zināmas sāpes. Å odien es atsāku eksperimentēt un ieguvu dažus rezultātus, ar kuriem vēlos padalÄ«ties. ÄŖsāk sakot, tiks aprakstÄ«ts IPFS instalÄ“Å”anas process un dažas funkcijas (viss tika darÄ«ts uz ubuntu, uz citām platformām neesmu mēģinājis).

Ja palaidāt garām, kas ir IPFS, tas ir rakstīts Ŕeit: habr.com/en/post/314768

UzstādīŔana

Eksperimenta tīrības labad es iesaku to nekavējoties instalēt kādā ārējā serverī, jo mēs apsvērsim dažas nepilnības, strādājot vietējā režīmā un attālināti. Tad, ja vēlas, ilgi nejauks, nav daudz.

Instalējiet go

Oficiālā dokumentācija
Skatiet paÅ”reizējo versiju vietnē golang.org/dl

Piezīme: labāk ir instalēt IPFS tā lietotāja vārdā, kuram tas ir paredzēts visbiežāk. Fakts ir tāds, ka tālāk mēs apsvērsim iespēju uzstādīt cauri FUSE un tur ir smalkumi.

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

Pēc tam jums ir jāatjaunina vide (sÄ«kāka informācija Å”eit: 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

Pārbauda, ā€‹ā€‹vai go ir instalēta

go version

Instalējiet IPFS

Visvairāk man patika uzstādīŔanas metode ipfs atjauninājums.

Instalējiet to ar komandu

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

Pēc tam varat palaist Ŕādas komandas:

ipfs-update versijas - lai redzētu visas lejupielādei pieejamās versijas.
ipfs-update versija - lai redzētu paÅ”laik instalēto versiju (kamēr mums nebÅ«s instalēta IPFS, tā nebÅ«s).
ipfs-update instalēt jaunāko - instalējiet jaunāko IPFS versiju. Attiecīgi jaunākās versijas vietā varat norādīt jebkuru vēlamo versiju pieejamo versiju sarakstā.

IPfs instalēŔana

ipfs-update install latest

Pārbaude

ipfs --version

TieŔi ar uzstādīŔanu vispārīgi viss.

Sāciet IPFS

Inicializācija

Vispirms jums ir jāveic inicializācija.

ipfs init

Atbildot uz to, jūs saņemsit kaut ko līdzīgu:

 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

Varat palaist ieteikto komandu

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Piedzīvojiet efektīvu rezultātu spēku

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

Å eit, manuprāt, sākas interesantais. PuiÅ”i uzstādÄ«Å”anas stadijā jau sāk izmantot savas tehnoloÄ£ijas. Piedāvātais hash QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv nav Ä«paÅ”i Ä£enerēts jums, bet ir ieŔūts laidienā. Tas ir, pirms izlaiÅ”anas viņi sagatavoja apsveikuma tekstu, ielēja to IPFS un pievienoja adresi instalētājam. Manuprāt, tas ir ļoti forÅ”i. Un Å”o failu (precÄ«zāk, visu mapi) tagad var apskatÄ«t ne tikai lokāli, bet arÄ« oficiālajā vārtejā ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. Tajā paŔā laikā varat bÅ«t droÅ”s, ka mapes saturs nekādā veidā nav mainÄ«jies, jo, ja tas bÅ«tu mainÄ«jies, tad bÅ«tu mainÄ«jies arÄ« hash.

Starp citu, Å”ajā gadÄ«jumā IPFS ir dažas lÄ«dzÄ«bas ar versiju kontroles serveri. Ja veicat izmaiņas mapes avota failos un atkal ievietojat mapi IPFS, tā saņems jaunu adresi. Tajā paŔā laikā vecā mape tāpat vien nekur neaizies un bÅ«s pieejama savā iepriekŔējā adresē.

TieŔā palaiŔana

ipfs daemon

Jums vajadzētu saņemt Ŕādu atbildi:

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

Durvju atvērÅ”ana internetam

Pievērsiet uzmanÄ«bu Ŕīm divām rindām:

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

Tagad, ja esat instalējis IPFS lokāli, jūs piekļūsit IPFS saskarnēm, izmantojot vietējās adreses, un viss būs pieejams jums (piemēram, localhost:5001/webui/). Bet, instalējot ārējā serverī, pēc noklusējuma vārtejas ir slēgtas internetam. Otrās vārtejas:

  1. webui administrators (GitHub) 5001. portā.
  2. Ārējais API portā 8080 (tikai lasāms).

Pagaidām eksperimentiem var atvērt abus portus (5001 un 8080), bet uz kaujas servera, protams, ports 5001 bÅ«tu jāslēdz ar ugunsmÅ«ri. Ir arÄ« ports 4001, kas ir nepiecieÅ”ams, lai citi vienaudži varētu jÅ«s atrast. Tas jāatstāj atvērts ārējiem pieprasÄ«jumiem.

Atveriet ~/.ipfs/config rediģēŔanai un atrodiet tajā Ŕīs rindas:

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

Mainiet 127.0.0.1 uz sava servera IP un saglabājiet failu, pēc tam restartējiet ipfs (apturiet palaiÅ”anas komandu ar Ctrl+C un sāciet to vēlreiz).

Vajadzētu saņemties

...
WebUI: http://ip_Š²Š°ŃˆŠµŠ³Š¾_сŠµŃ€Š²ŠµŃ€Š°:5001/webui
Gateway (readonly) server listening on /ip4/ip_Š²Š°ŃˆŠµŠ³Š¾_сŠµŃ€Š²ŠµŃ€Š°/tcp/8080

Tagad ārējām saskarnēm jābūt pieejamām.

Pārbaudiet

http://Š“Š¾Š¼ŠµŠ½_ŠøŠ»Šø_ip_сŠµŃ€Š²ŠµŃ€Š°:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

IepriekÅ” minētajam failam readme ir jāatveras.

http://Š“Š¾Š¼ŠµŠ½_ŠøŠ»Šø_ip_сŠµŃ€Š²ŠµŃ€Š°:5001/webui/

Jāatveras tīmekļa saskarnei.

Ja webui der jums, tad IPFS iestatÄ«jumus var mainÄ«t tieÅ”i tajā, ieskaitot statistikas apskati, bet tālāk es apsvērÅ”u konfigurācijas opcijas tieÅ”i caur konfigurācijas failu, kas parasti nav kritisks. VienkārÅ”i labāk atcerēties, kur tieÅ”i atrodas konfigurācija un ko ar to darÄ«t, pretējā gadÄ«jumā, ja tÄ«mekļa seja nedarbosies, bÅ«s grÅ«tāk.

Tīmekļa saskarnes iestatīŔana darbam ar serveri

Šeit ir pirmā kļūme, kas aizņēma apmēram trīs stundas.

Ja instalējāt IPFS ārējā serverī, bet neinstalējāt vai nepalaidāt IPFS lokāli, tīmekļa saskarnē atverot vietni /webui, jums vajadzētu redzēt savienojuma kļūdu:

IPFS bez sāpēm (bet tas nav precīzi)

Fakts ir tāds, ka webui, manuprāt, darbojas ļoti neviennozÄ«mÄ«gi. Pirmkārt, tas mēģina izveidot savienojumu ar tā servera API, kurā ir atvērta saskarne (protams, pamatojoties uz adresi pārlÅ«kprogrammā). un, ja tas tur nedarbojas, tas mēģina izveidot savienojumu ar vietējo vārteju. Un, ja IPFS darbojas lokāli, tad webui darbosies labi, tikai jÅ«s strādāsit ar vietējo IPFS, nevis ārējo, lai gan Webui atvērāt ārējā serverÄ«. Pēc tam jÅ«s augÅ”upielādējat failus, bet kaut kādu iemeslu dēļ jÅ«s neredzat tos tāpat kā ārējā serverÄ«ā€¦

Un, ja tas nedarbojas lokāli, mēs saņemam savienojuma kļūdu. Mūsu gadījumā kļūda, visticamāk, ir saistīta ar CORS, ko norāda arī webui, iesakot pievienot konfigurāciju.

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

Es tikko reģistrēju aizstājējzīmi

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

Pievienotās galvenes var atrast tajā paŔā ~/.ipfs/config. Manā gadījumā tā ir

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

Mēs restartējam ipfs un redzam, ka webui ir veiksmÄ«gi izveidots savienojums (jebkurā gadÄ«jumā tam vajadzētu bÅ«t, ja atvērāt vārtejas pieprasÄ«jumiem no ārpuses, kā aprakstÄ«ts iepriekÅ”).

Tagad varat augÅ”upielādēt mapes un failus tieÅ”i, izmantojot tÄ«mekļa saskarni, kā arÄ« izveidot savas mapes.

FUSE failu sistēmas uzstādÄ«Å”ana

Å eit ir diezgan interesanta funkcija.

Failus (kā arÄ« mapes), mēs varam pievienot ne tikai caur tÄ«mekļa saskarni, bet arÄ« tieÅ”i terminālÄ«, piemēram,

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

Pēdējais jauktais ir saknes mapes jaucējvārds.

Izmantojot Å”o jaucējfunkciju, mēs varam atvērt mapi jebkurā ipfs mezglā (kas var atrast mÅ«su mezglu un iegÅ«t saturu), mēs varam tÄ«mekļa saskarnē portā 5001 vai 8080 vai arÄ« lokāli, izmantojot ipfs.

ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt

Bet jūs joprojām varat to atvērt kā parastu mapi.

Izveidosim divas mapes saknē un pieŔķirsim tiesÄ«bas uz tām mÅ«su lietotājam.

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

un restartējiet ipfs ar --mount karogu

ipfs daemon --mount

Varat izveidot mapes citās vietās un norādīt ceļu uz tām, izmantojot ipfs dēmona parametrus -mount -mount-ipfs /ipfs_path -mount-ipns /ipns_path

Tagad lasīŔana no Ŕīs mapes ir nedaudz neparasta.

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

Tas nozÄ«mē, ka nav tieÅ”as piekļuves Ŕīs mapes saknei. Bet jÅ«s varat iegÅ«t saturu, zinot 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

Tajā paŔā laikā pat automātiskā pabeigÅ”ana darbojas mapē, kad ir norādÄ«ts ceļŔ.

Kā jau teicu iepriekÅ”, Ŕādai montāžai ir smalkumi: pēc noklusējuma uzstādÄ«tās FUSE mapes ir pieejamas tikai paÅ”reizējam lietotājam (pat root nevarēs lasÄ«t no Ŕādas mapes, nemaz nerunājot par citiem sistēmas lietotājiem). Ja vēlaties Ŕīs mapes padarÄ«t pieejamas citiem lietotājiem, tad konfigurācijā ir jāmaina "FuseAllowOther": false uz "FuseAllowOther": true. Bet tas vēl nav viss. Ja palaižat IPFS kā root, tad viss ir kārtÄ«bā. Un, ja parasta lietotāja vārdā (pat sudo), tad jÅ«s saņemsit kļūdu

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

Šādā gadījumā ir jārediģē /etc/fuse.conf, atņemot komentārus no rindas #user_allow_other.

Pēc tam restartējiet ipfs.

Zināmas problēmas ar FUSE

Vairāk nekā vienu reizi ir pamanÄ«ta problēma, ka pēc ipfs restartÄ“Å”anas ar montāžu (un varbÅ«t arÄ« citos gadÄ«jumos) /ipfs un /ipns pievienoÅ”anas punkti kļūst nepieejami. Tiem nav piekļuves, un ls -la /ipfs rāda ???? tiesÄ«bu sarakstā.

Atrasts Ŕāds risinājums:

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

Pēc tam restartējiet ipfs.

Pakalpojuma pievienoŔana

Protams, palaist terminālÄ« ir piemērota tikai sākotnējiem testiem. Cīņas režīmā dēmonam vajadzētu startēt automātiski sistēmas startÄ“Å”anas laikā.

Sudo vārdā izveidojiet failu /etc/systemd/system/ipfs.service un ierakstiet tajā:

[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

LIETOTĀJVĀRDS, protams, ir jāaizstāj ar savu lietotāju (un, iespējams, pilns ceļŔ uz ipfs programmu jums bÅ«s atŔķirÄ«gs (jums ir jānorāda pilns ceļŔ)).

Mēs aktivizējam pakalpojumu.

sudo systemctl enable ipfs.service

Mēs sākam pakalpojumu.

sudo service ipfs start

Pakalpojuma statusa pārbaude.

sudo service ipfs status

Eksperimenta tīrības labad nākotnē būs iespējams pārstartēt serveri, lai pārbaudītu, vai ipfs tiek veiksmīgi startēts automātiski.

Pievienojot mums zināmos svētkus

Apsveriet situāciju, kad IPFS mezgli ir instalēti gan ārējā serverÄ«, gan lokāli. Ārējā serverÄ« mēs pievienojam kādu failu un mēģinām to iegÅ«t, izmantojot IPFS lokāli, izmantojot CID. Kas notiks? Protams, vietējais serveris, visticamāk, neko nezina par mÅ«su ārējo serveri un vienkārÅ”i mēģinās atrast failu pēc CID, ā€œjautājotā€ visiem tam pieejamajiem IPFS vienaudžiem (ar kuriem tas jau ir paspējis ā€œiepazÄ«tiesā€). Tie savukārt jautās citiem. Un tā tālāk, lÄ«dz fails tiek atrasts. Faktiski tas pats notiek, kad mēs cenÅ”amies iegÅ«t failu caur oficiālo vārteju ipfs.io. Ja jums paveiksies, fails tiks atrasts dažu sekunžu laikā. Un ja nē, tas netiks atrasts pat dažu minÅ«Å”u laikā, kas ļoti ietekmē darba komfortu. Bet mēs zinām, kur Å”is fails parādÄ«sies vispirms. Tātad, kāpēc mēs nekavējoties nepaziņojam savam vietējam serverim "Vispirms meklējiet tur"? AcÄ«mredzot to var izdarÄ«t.

1. Mēs ejam uz attālo serveri un meklējam ~/.ipfs/config config

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

2. Palaidiet sudo pakalpojuma ipfs statusu un meklējiet tajā Swarm ierakstus, piemēram:

Swarm announcing /ip4/ip_Š²Š°ŃˆŠµŠ³Š¾_сŠµŃ€Š²ŠµŃ€Š°/tcp/4001

3. Mēs pievienojam no Ŕīs formas vispārÄ«go adresi "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID".

4. Lai nodroÅ”inātu uzticamÄ«bu, mēs mēģināsim pievienot Å”o adresi vienaudžiem, izmantojot mÅ«su vietējo tÄ«mekļa saskarni.

IPFS bez sāpēm (bet tas nav precīzi)

5. Ja viss ir kārtÄ«bā, atveriet lokālo konfigurāciju ~ / .ipfs / config, atrodiet tajā ā€œBootstrapā€: [...
un vispirms pievienojiet saņemto adresi masīvam.

Restartējiet IPFS.

Tagad pievienosim failu ārējam serverim un mēģināsim to pieprasīt vietējā serverī. Jālido ātri.

Bet Ŕī funkcionalitāte vēl nav stabila. Cik saprotu, pat ja Bootstrap norādām peer adresi, ipfs darbÄ«bas laikā maina aktÄ«vo savienojumu sarakstu ar peeriem. Jebkurā gadÄ«jumā notiek diskusija par Å”o un vēlmēm par iespēju precizēt pastāvÄ«gus svētkus Å”eit un Ŕķiet vajadzēja pievienot kādu funkcionalitāti [e-pasts aizsargāts]+

PaÅ”reizējo vienaudžu sarakstu var apskatÄ«t gan webui, gan terminālÄ«.

ipfs swarm peers

Un Å”eit un tur jÅ«s varat pievienot savus svētkus manuāli.

ipfs swarm connect "/ip4/ip_Š²Š°ŃˆŠµŠ³Š¾_сŠµŃ€Š²ŠµŃ€Š°/tcp/4001/ipfs/$PeerID"

Kamēr Ŕī funkcionalitāte nav uzlabota, varat uzrakstÄ«t rÄ«ku, lai pārbaudÄ«tu, vai ir izveidots savienojums ar vajadzÄ«go lÄ«dzinieku, un, ja nē, pievienot savienojumu.

Pamatojums

Starp tiem, kuri jau ir pazÄ«stami ar IPFS, ir gan argumenti par, gan pret IPFS. BÅ«tÄ«bā vakar diskusija un mudināja mani vēlreiz izpētÄ«t IPFS. Un attiecÄ«bā uz iepriekÅ” minēto diskusiju: ā€‹ā€‹es nevaru teikt, ka es stingri iebilstu pret jebkuru runātāju argumentu (es nepiekrÄ«tu tikai tam, ka pusotrs programmētājs izmanto IPFS). Kopumā abiem ir taisnÄ«ba savā veidā (it Ä«paÅ”i komentārs par čekiem liek aizdomāties). Bet, ja mēs atmetam morālo un juridisko vērtējumu, kurÅ” sniegs Ŕīs tehnoloÄ£ijas tehnisko novērtējumu? Man personÄ«gi ir kaut kāda iekŔēja sajÅ«ta, ka "tas ir jādara viennozÄ«mÄ«gi, tam ir zināmas perspektÄ«vas". Bet kāpēc tieÅ”i, skaidra formulējuma nav. Piemēram, ja paskatās uz esoÅ”ajiem centralizētajiem rÄ«kiem, tad daudzos aspektos tie ir tālu priekŔā (stabilitāte, ātrums, vadāmÄ«ba utt.). Tomēr man ir viena doma, kas Ŕķiet saprātÄ«ga un kuru diez vai var Ä«stenot bez Ŕādām decentralizētām sistēmām. Protams, es Ŕūpojos pārāk stipri, bet es to formulētu tā: jāmaina informācijas izplatÄ«Å”anas princips internetā.

Ä»auj man paskaidrot. Ja tā padomā, tagad mums ir informācija, kas izplatÄ«ta pēc principa ā€œEs ceru, ka tas, kuram es to iedevu, to pasargās un to nepazaudēs un nesaņems tie, kam tā nebija paredzēta.ā€ Kā piemēru var viegli apsvērt dažādus pasta pakalpojumus, mākoņkrātuves utt. Un ar ko mēs nonākam? HabrĆ© centrā Informācijas droŔība ir pirmajā rindā un gandrÄ«z katru dienu mēs saņemam ziņas par kārtējo globālo noplÅ«di. Principā visas interesantākās lietas ir uzskaitÄ«tas <ironijā> brÄ«niŔķīgi rakstu Vasara gandrÄ«z beigusies. Nav palicis gandrÄ«z nekādu nenopludinātu datu. Tas ir, galvenie interneta giganti kļūst lielāki, tie uzkrāj arvien vairāk informācijas, un Ŕādas noplÅ«des ir sava veida informācijas atomsprādzieni. Tas nekad agrāk nav noticis, un Å”eit tas ir atkal. Tajā paŔā laikā, lai gan daudzi saprot, ka pastāv riski, viņi arÄ« turpmāk uzticēs savus datus treÅ”o puÅ”u uzņēmumiem. Pirmkārt, nav daudz alternatÄ«vu, un, otrkārt, viņi sola, ka ir aizlāpÄ«juÅ”i visas bedres un tas vairs neatkārtosies.

Kādu iespēju es redzu? Man Ŕķiet, ka sākotnēji dati bÅ«tu jāizplata atklāti. Taču atklātÄ«ba Å”ajā gadÄ«jumā nenozÄ«mē, ka visam jābÅ«t viegli lasāmam. Es runāju par uzglabāŔanas un izplatÄ«Å”anas atvērtÄ«bu, bet ne par pilnÄ«gu lasÄ«Å”anas atvērtÄ«bu. Es pieņemu, ka informācija ir jāizplata ar publiskajām atslēgām. Galu galā publisko / privāto atslēgu princips jau ir vecs, gandrÄ«z kā internets. Ja informācija nav konfidenciāla un ir paredzēta plaÅ”am lokam, tad tā tiek nekavējoties izkārtota ar publisko atslēgu (bet tomēr Å”ifrētā veidā, tikai ikviens var to atÅ”ifrēt ar pieejamo atslēgu). Un, ja nē, tad tā tiek izkārtota bez publiskās atslēgas, un pati atslēga tiek nodota tam, kam vajadzētu piekļūt Å”ai informācijai. Tajā paŔā laikā tam, kuram tas bÅ«tu jāizlasa, vajadzētu bÅ«t tikai atslēgai, un, kur iegÅ«t Å”o informāciju, viņam patieŔām nevajadzētu pacelties gaisā - viņŔ vienkārÅ”i izvelk to no tÄ«kla (tas ir jaunais izplatÄ«Å”anas princips pēc satura, nevis pēc satura adrese).

Tādējādi masveida uzbrukumam uzbrucējiem bÅ«s jāiegÅ«st milzÄ«gs skaits privāto atslēgu, un tas, visticamāk, netiks darÄ«ts vienuviet. Å is uzdevums, kā es redzu, ir grÅ«tāks nekā konkrēta pakalpojuma uzlauÅ”ana.

Un Å”eit tiek slēgta vēl viena problēma: autorÄ«bas apstiprināŔana. Tagad internetā jÅ«s varat atrast daudz citātu, ko rakstÄ«juÅ”i mÅ«su draugi. Bet kur ir garantija, ka tie bija tie, kas tos uzrakstÄ«ja? Tagad, ja katram Ŕādam ierakstam bÅ«tu pievienots ciparparaksts, tas bÅ«tu daudz vienkārŔāk. Un nav svarÄ«gi, kur Ŕī informācija atrodas, galvenais ir paraksts, kuru, protams, ir grÅ«ti viltot.

Un Å”eit ir interesanti: IPFS jau ir Å”ifrÄ“Å”anas rÄ«ki (galu galā tas ir balstÄ«ts uz blokķēdes tehnoloÄ£iju). Privātā atslēga tiek nekavējoties norādÄ«ta konfigurācijā.

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

Es neesmu droŔības speciālists un nevaru precÄ«zi zināt, kā to pareizi lietot, bet man Ŕķiet, ka Ŕīs atslēgas tiek izmantotas apmaiņas lÄ«menÄ« starp IPFS mezgliem. Un arÄ« js-ipfs un piemēru projekti, piemēram, orbÄ«ta-dbuz kuriem tas darbojas orbÄ«ta.čats. Tas ir, teorētiski katru ierÄ«ci (mobilo un ne tikai) var viegli aprÄ«kot ar savām Å”ifrÄ“Å”anas-atÅ”ifrÄ“Å”anas maŔīnām. Å ajā gadÄ«jumā atliek tikai katram parÅ«pēties par savu privāto atslēgu saglabāŔanu, un katrs bÅ«s atbildÄ«gs par savu droŔību, nevis bÅ«s kārtējā cilvēciskā faktora Ä·Ä«lnieks uz kāda superpopulāra interneta giganta.

Aptaujā var piedalīties tikai reģistrēti lietotāji. Ielogoties, lūdzu.

Vai esat dzirdējuÅ”i par IPFS iepriekÅ”?

  • Es nekad neesmu dzirdējis par IPFS, bet tas Ŕķiet interesanti

  • Neesmu dzirdējis un negribu dzirdēt

  • Dzirdēts, bet neinteresē

  • Dzirdēts, bet nesapratis, bet tagad Ŕķiet interesanti

  • Es jau ilgu laiku aktÄ«vi izmantoju IPFS.

Nobalsoja 69 lietotāji. 13 lietotāji atturējās.

Avots: www.habr.com

Pievieno komentāru