Se niċċara mill-ewwel li m'iniex espert f'dan il-qasam, imma wrejt interess f'din it-teknoloġija aktar minn darba, iżda li nipprova nilgħab magħha spiss ikkawża xi uġigħ. Illum erġajt bdejt nesperimenta u sibt xi riżultati li nixtieq naqsamhom. Fil-qosor, il-proċess ta 'installazzjoni IPFS u xi karatteristiċi se jiġu deskritti (kollox sar fuq ubuntu, ma ppruvajtx fuq pjattaformi oħra). Jekk tlift x'inhu l-IPFS, huwa miktub f'xi dettall hawn: habr.com/en/post/314768
Installazzjoni
Għall-purità ta 'l-esperiment, nissuġġerixxi li immedjatament tinstallah fuq xi server estern, peress li se nikkunsidraw xi żvantaġġi bil-ħidma fil-mod lokali u remot. Imbagħad, jekk mixtieq, mhux se jitwaqqa 'għal żmien twil, ma jkunx hemm ħafna.
Nota: huwa aħjar li tinstalla l-IPFS f'isem l-utent li suppost jużah l-aktar spiss. Il-fatt hu li hawn taħt se nikkunsidraw l-għażla tal-immuntar permezz Fjus u hemm irqaq.
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
verżjonijiet ipfs-update - biex tara l-verżjonijiet kollha disponibbli għat-tniżżil. verżjoni ipfs-aġġornament - biex tara l-verżjoni installata bħalissa (sakemm ikollna l-IPFS installat, ma jkun xejn). ipfs-update tinstalla l-aktar tard - tinstalla l-aħħar verżjoni tal-IPFS. Minflok l-aħħar, rispettivament, tista 'tispeċifika kwalunkwe verżjoni mixtieqa mil-lista ta' dawk disponibbli.
Installazzjoni ta' ipfs
ipfs-update install latest
Iċċekkja
ipfs --version
Direttament ma 'l-installazzjoni f'termini ġenerali kollox.
Ibda l-IPFS
Inizjalizzazzjoni
L-ewwel trid twettaq l-inizjalizzazzjoni.
ipfs init
Bi tweġiba, int ser tirċievi xi ħaġa bħal din:
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
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
Hawnhekk, fl-opinjoni tiegħi, jibda l-interessanti. Il-guys fl-istadju tal-installazzjoni diġà qed jibdew jużaw it-teknoloġiji tagħhom stess. Il-hash propost QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv mhuwiex iġġenerat speċifikament għalik, iżda meħjuta fir-rilaxx. Jiġifieri, qabel ir-rilaxx, ħejjew test ta 'merħba, tefgħuh f'IPFS u żiedu l-indirizz lill-installatur. Naħseb li jibred ħafna. U dan il-fajl (b'mod aktar preċiż, il-folder kollu) issa jista' jitqies mhux biss lokalment, iżda wkoll fuq il-portal uffiċjali ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. Fl-istess ħin, tista 'tkun ċert li l-kontenut tal-folder ma nbidilx bl-ebda mod, għax kieku nbidel, allura l-hash kien jinbidel ukoll.
Mill-mod, f'dan il-każ, IPFS għandu xi xebh mas-server tal-kontroll tal-verżjoni. Jekk tagħmel bidliet fil-fajls tas-sors tal-folder u għal darb'oħra ferra l-folder f'IPFS, allura tirċievi indirizz ġdid. Fl-istess ħin, il-folder l-antik ma jmur imkien eżatt hekk u se jkun disponibbli fl-indirizz preċedenti tiegħu.
Tnedija diretta
ipfs daemon
Għandek tirċievi tweġiba bħal din:
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
Niftħu l-bibien għall-Internet
Oqgħod attent għal dawn iż-żewġ linji:
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Issa, jekk installajt IPFS lokalment, imbagħad ikollok aċċess għall-interfaces tal-IPFS billi tuża indirizzi lokali u kollox ikun disponibbli għalik (Per eżempju, localhost:5001/webui/). Iżda meta jiġi installat fuq server estern, b'mod awtomatiku, il-bibien huma magħluqa għall-Internet. Gateways tnejn:
S'issa, iż-żewġ portijiet (5001 u 8080) jistgħu jinfetħu għal esperimenti, iżda fuq server tal-ġlieda kontra, ovvjament, il-port 5001 għandu jingħalaq b'firewall. Hemm ukoll il-port 4001, li huwa meħtieġ sabiex sħabhom oħra jkunu jistgħu jsibuk. Għandu jitħalla miftuħ għal talbiet minn barra.
Iftaħ ~/.ipfs/config għall-editjar u sib dawn il-linji fiha:
Jekk webui jaħdem għalik, allura s-settings tal-IPFS jistgħu jinbidlu direttament fiha, inkluża l-istatistika tal-wiri, iżda hawn taħt ser nikkunsidra l-għażliet ta 'konfigurazzjoni direttament permezz tal-fajl tal-konfigurazzjoni, li ġeneralment mhuwiex kritiku. Huwa biss aħjar li tiftakar eżattament fejn hi l-konfigurazzjoni u x'għandek tagħmel magħha, inkella jekk il-wiċċ tal-web ma jaħdimx, ikun aktar diffiċli.
Twaqqif ta' interface tal-web biex taħdem mas-server tiegħek
Hawn hu l-ewwel nasa, li ħadet madwar tliet sigħat.
Jekk installajt IPFS fuq server estern, iżda ma installajtx jew ma ħadimx IPFS lokalment, allura meta tmur għal /webui fl-interface tal-web, għandek tara żball ta' konnessjoni:
Il-fatt hu li webui, fl-opinjoni tiegħi, jaħdem b'mod ambigwu ħafna. L-ewwel, tipprova tikkonnettja mal-API tas-server fejn l-interface hija miftuħa (ibbażat fuq l-indirizz fil-browser, ovvjament). u jekk ma taħdimx hemm, jipprova jgħaqqad mal-portal lokali. U jekk għandek l-IPFS taħdem lokalment, allura webui jaħdem tajjeb għalik, biss int taħdem ma 'IPFS lokali, u mhux esterna, għalkemm ftaħt webui fuq server estern. Imbagħad ittella’ l-fajls, imma għal xi raġuni ma tarahomx hekk fuq server estern...
U jekk ma tkunx qed taħdem lokalment, allura jkollna żball ta 'konnessjoni. Fil-każ tagħna, l-iżball huwa probabbli ħafna minħabba CORS, li huwa indikat ukoll minn webui, li jissuġġerixxi li żżid konfigurazzjoni.
Nibdew mill-ġdid ipfs u naraw li webui ikkonnettja b'suċċess (fi kwalunkwe każ, għandu, jekk inti tiftaħ il-bibien għal talbiet minn barra, kif deskritt hawn fuq).
Issa tista 'ttella' folders u fajls direttament permezz tal-interface tal-web, kif ukoll toħloq folders tiegħek.
Immuntar tas-sistema tal-fajls FUSE
Hawnhekk hawn karatteristika pjuttost interessanti.
Fajls (kif ukoll folders), nistgħu nżidu mhux biss permezz tal-interface tal-web, iżda wkoll direttament fit-terminal, pereżempju
ipfs add test -r
added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt
added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test
L-aħħar hash huwa l-hash tal-folder tal-għeruq.
Bl-użu ta 'dan il-hash, nistgħu niftħu folder fuq kwalunkwe node ipfs (li tista' ssib in-node tagħna u tikseb il-kontenut), nistgħu fl-interface tal-web fuq il-port 5001 jew 8080, jew nistgħu lokalment permezz ta 'ipfs.
ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt
Imma xorta tista 'tiftaħ bħal folder regolari.
Ejja noħolqu żewġ folders fl-għerq u nagħtuhom drittijiet lill-utent tagħna.
Tista' toħloq folders f'postijiet oħra u tispeċifika t-triq għalihom permezz tal-parametri tad-demon ipfs -mount -mount-ipfs /ipfs_path -mount-ipns /ipns_path
Issa l-qari minn dan il-folder huwa kemmxejn mhux tas-soltu.
ls -la /ipfs
ls: reading directory '/ipfs': Operation not permitted
total 0
Jiġifieri, m'hemm l-ebda aċċess dirett għall-għerq ta 'dan il-folder. Imma tista 'tikseb il-kontenut, taf il-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
Fl-istess ħin, anke l-awto-tlestija taħdem ġewwa l-folder meta l-mogħdija tkun speċifikata.
Kif għedt hawn fuq, hemm irqaq b'tali immuntar: b'mod awtomatiku, folders FUSE immuntati huma disponibbli biss għall-utent attwali (anke l-għeruq mhux se jkunu jistgħu jaqraw minn tali folder, biex ma nsemmux utenti oħra fis-sistema). Jekk trid tagħmel dawn il-folders disponibbli għal utenti oħra, imbagħad fil-konfigurazzjoni trid tibdel "FuseAllowOther": false għal "FuseAllowOther": vera. Imma dan mhux kollox. Jekk tmexxi IPFS bħala għerq, allura kollox huwa OK. U jekk f'isem utent regolari (anke sudo), allura ikollok żball
mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
F'dan il-każ, trid teditja /etc/fuse.conf billi tneħħi l-kumment tal-linja #user_allow_other.
Wara dan, ibda mill-ġdid ipfs.
Kwistjonijiet magħrufa bil-FUSE
Il-problema ġiet innutata aktar minn darba li wara li terġa' tibda l-ipfs bl-immuntar (u forsi f'każijiet oħra), il-punti tal-muntaġġ /ipfs u /ipns ma jkunux disponibbli. M'hemm l-ebda aċċess għalihom, u ls -la / ipfs juri ???? fil-lista tad-drittijiet.
Sibt din is-soluzzjoni:
fusermount -z -u /ipfs
fusermount -z -u /ipns
Imbagħad ibda mill-ġdid ipfs.
Żieda ta' servizz
Naturalment, it-tħaddim fit-terminal huwa adattat biss għat-testijiet inizjali. Fil-modalità ta 'ġlieda, id-daemon għandu jibda awtomatikament mal-istartjar tas-sistema.
F'isem sudo, oħloq il-fajl /etc/systemd/system/ipfs.service u ikteblu:
USERNAME, ovvjament, għandu jiġi sostitwit bl-utent tiegħek (u forsi l-mogħdija sħiħa għall-programm ipfs tkun differenti għalik (trid tispeċifika t-triq sħiħa)).
Nattivaw is-servizz.
sudo systemctl enable ipfs.service
Nibdew is-servizz.
sudo service ipfs start
Iċċekkja l-istatus tas-servizz.
sudo service ipfs status
Għall-purità tal-esperiment, se jkun possibbli li terġa 'tibda s-server fil-futur biex tiċċekkja li l-ipfs jibda b'suċċess awtomatikament.
Inżidu magħrufa magħna festi
Ikkunsidra sitwazzjoni fejn għandna nodi IPFS installati kemm fuq server estern kif ukoll lokalment. Fuq server estern, inżidu xi fajl u nippruvaw niksbuh permezz tal-IPFS lokalment permezz tas-CID. X'se jiġri? Naturalment, is-server lokali x'aktarx ma jaf xejn dwar is-server estern tagħna u sempliċement jipprova jsib il-fajl permezz tas-CID billi "jistaqsi" lill-pari kollha tal-IPFS disponibbli għalih (li diġà rnexxielu "jagħmel familjari"). Dawk min-naħa tagħhom se jistaqsu lill-oħrajn. U hekk, sakemm jinstab il-fajl. Fil-fatt, l-istess ħaġa jiġri meta nippruvaw niksbu l-fajl mill-portal uffiċjali ipfs.io. Jekk int xortik tajba, il-fajl jinstab fi ftit sekondi. U jekk le, mhux se jinstab anki fi ftit minuti, li jaffettwa ħafna l-kumdità tax-xogħol. Imma nafu fejn dan il-fajl se jidher l-ewwel. Allura għaliex ma ngħidux immedjatament lis-server lokali tagħna "Fittex hemm l-ewwel"? Apparentement, dan jista 'jsir.
1. Immorru fis-server remot u nħarsu fil-~/.ipfs/config config
2. Mexxi l-istatus ipfs tas-servizz sudo u fittex l-iskrizzjonijiet ta' Swarm fih, pereżempju:
Swarm announcing /ip4/ip_вашего_сервера/tcp/4001
3. Aħna nżidu minn dan l-indirizz ġenerali tal-formola "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID".
4. Għall-affidabbiltà, aħna nippruvaw inżidu dan l-indirizz lill-pari permezz tal-webui lokali tagħna.
5. Jekk kollox huwa OK, iftaħ il-konfigurazzjoni lokali ~ / .ipfs / config, sib "Bootstrap" fiha: [...
u żid l-indirizz riċevut l-ewwel mal-firxa.
Ibda mill-ġdid l-IPFS.
Issa ejja nżidu l-fajl mas-server estern u nippruvaw nitolbuh fuq dak lokali. Għandu jtir malajr.
Iżda din il-funzjonalità għadha mhix stabbli. Sa fejn nifhem jien, anke jekk nispeċifikaw l-indirizz ta 'peer f'Bootstrap, ipfs jibdel il-lista ta' konnessjonijiet attivi ma 'pari waqt it-tħaddim. Fi kwalunkwe każ, għaddejja d-diskussjoni dwar dan u x-xewqat dwar il-possibbiltà li jiġu speċifikati festi permanenti hawn u jidher qisu suppost żid xi funzjonalità għal [protett bl-email]+
Il-lista tal-pari attwali tista 'tara kemm fil-webui kif ukoll fit-terminal.
ipfs swarm peers
U hawn u hemm tista’ żżid il-festa tiegħek manwalment.
Sakemm din il-funzjonalità tkun ġiet imtejba, tista 'tikteb għodda biex tiċċekkja għal konnessjoni mal-peer mixtieq u, jekk le, biex iżżid konnessjoni.
Raġunament
Fost dawk li diġà huma familjari mal-IPFS, hemm kemm argumenti favur kif ukoll kontra l-IPFS. Bażikament, ilbieraħ diskussjoni u wassalni biex nerġa’ nħaffer fl-IPFS. U fir-rigward tad-diskussjoni msemmija hawn fuq: ma nistax ngħid li nopponi bil-qawwa kull argument ta’ dawk li tkellmu (ma naqbilx biss mal-fatt li programmatur wieħed u nofs juża l-IPFS). B'mod ġenerali, it-tnejn għandhom raġun bil-mod tagħhom (speċjalment jikkummentaw dwar kontrolli jġiegħlek taħseb). Imma jekk inwarrbu l-valutazzjoni morali u legali, min se jagħti valutazzjoni teknika ta 'din it-teknoloġija? Personalment, għandi xi tip ta 'sensazzjoni interna li "dan għandu jsir mingħajr ekwivoku, għandu ċerti prospetti." Imma għaliex eżattament, m'hemm l-ebda formulazzjoni ċara. Bħal, jekk tħares lejn l-għodod ċentralizzati eżistenti, allura f'ħafna aspetti huma 'l quddiem (stabbiltà, veloċità, ġestjoni, eċċ.). Madankollu, għandi ħsieb wieħed li jidher li jagħmel sens u li ma tantx jista' jiġi implimentat mingħajr sistemi deċentralizzati bħal dawn. Ovvjament, qed nitbandal wisq, imma nifformulaha b'dan il-mod: il-prinċipju tat-tixrid tal-informazzjoni fuq l-Internet għandu jinbidel.
Ħa nispjega. Jekk taħseb dwarha, issa għandna informazzjoni mqassma skont il-prinċipju “Nittama li dak li tajtha jipproteġiha u ma tintilifx jew ma tiġix riċevuta minn dawk li għalihom ma kinitx maħsuba.” Bħala eżempju, huwa faċli li tikkunsidra diversi servizzi tal-posta, ħażniet sħab, eċċ. U bix nispiċċaw? Fuq Habré hub Sigurtà tal-Informazzjoni jinsab fuq l-ewwel linja u kważi kuljum nirċievu aħbarijiet dwar leak globali ieħor. Fil-prinċipju, l-aktar affarijiet interessanti kollha huma elenkati f'<irony> mill-isbaħ artikolu Is-sajf kważi spiċċa. M'hemm kważi l-ebda data mhux leaked fadal. Jiġifieri, il-ġganti ewlenin tal-Internet qed isiru akbar, qed jakkumulaw aktar u aktar informazzjoni, u tnixxijiet bħal dawn huma tip ta 'splużjonijiet atomiċi ta' informazzjoni. Dan qatt ma ġara qabel, u hawn reġa’. Fl-istess ħin, għalkemm ħafna jifhmu li hemm riskji, se jkomplu jafdaw id-dejta tagħhom lil kumpaniji terzi. L-ewwelnett, m'hemmx wisq alternattiva, u t-tieni, huma jwiegħdu li jkunu patch up it-toqob kollha u dan qatt ma jerġa 'jiġri.
Liema għażla nara? Jidhirli li d-data għandha inizjalment titqassam b'mod miftuħ. Iżda l-ftuħ f'dan il-każ ma jfissirx li kollox għandu jkun faċli biex jinqara. Qed nitkellem dwar il-ftuħ tal-ħażna u d-distribuzzjoni, iżda mhux il-ftuħ totali fil-qari. Nassumi li l-informazzjoni għandha titqassam b'ċwievet pubbliċi. Wara kollox, il-prinċipju ta 'ċwievet pubbliċi / privati huwa diġà antik, kważi bħall-Internet. Jekk l-informazzjoni mhix kunfidenzjali u hija maħsuba għal ċirku wiesa ', allura hija mqiegħda immedjatament b'ċavetta pubblika (iżda xorta f'forma kriptata, kulħadd jista' jiddeċifraha biċ-ċavetta disponibbli). U jekk le, allura hija stabbilita mingħajr ċavetta pubblika, u ċ-ċavetta nnifisha tiġi trasferita għal dak li għandu jkollu aċċess għal din l-informazzjoni. Fl-istess ħin, dak li għandu jaqraha għandu jkollu biss ċavetta, u minn fejn tikseb din l-informazzjoni, m'għandux verament jispara - huwa biss jiġbedha min-netwerk (dan huwa l-prinċipju ġdid ta 'distribuzzjoni skond il-kontenut, mhux billi indirizz).
Għalhekk, għal attakk tal-massa, l-attakkanti se jkollhom bżonn jiksbu numru kbir ta 'ċwievet privati, u dan mhux probabbli li jsir f'post wieħed. Dan il-kompitu, kif narah jien, huwa aktar diffiċli milli hacking servizz partikolari.
U hawn problema oħra hija magħluqa: konferma ta 'l-awtur. Issa fuq l-Internet tista’ ssib ħafna kwotazzjonijiet miktuba minn sħabna. Imma fejn hi l-garanzija li kienu huma li kitbuhom? Issa, kieku kull rekord bħal dan kien akkumpanjat minn firma diġitali, ikun ħafna aktar faċli. U ma jimpurtax fejn tinsab din l-informazzjoni, il-ħaġa prinċipali hija l-firma, li, ovvjament, hija diffiċli biex tinstab.
U hawn x'inhu interessanti hawn: IPFS diġà jġorr għodod ta 'encryption (wara kollox, huwa mibni fuq teknoloġija blockchain). Iċ-ċavetta privata hija speċifikata immedjatament fil-konfigurazzjoni.
M'iniex speċjalista tas-sigurtà u ma nistax naf eżattament kif nużaha b'mod korrett, iżda jidhirli li dawn iċ-ċwievet jintużaw fil-livell ta 'skambju bejn in-nodi IPFS. U wkoll js-ipfs u proġetti eżempju bħal orbita-dbli fuqha taħdem orbit.chat. Jiġifieri, teoretikament, kull apparat (mobbli u mhux biss) jista 'jiġi mgħammar faċilment bil-magni tiegħu stess ta' encryption-decryption. F'dan il-każ, jibqa 'biss għal kulħadd biex jieħu ħsieb li jsalva ċ-ċwievet privati tagħhom, u kulħadd ikun responsabbli għas-sigurtà tiegħu stess, u mhux ikun ostaġġ ta' fattur uman ieħor fuq xi ġgant super-popolari tal-Internet.
Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.
Smajt dwar l-IPFS qabel?
Qatt ma smajt bl-IPFS, iżda jidher interessanti
Ma smajtx u ma tridx tisma
Jinstemgħu imma mhux interessati
Smajt, imma ma fehimx, imma issa jidher interessanti