Mwen pral klarifye touswit ke mwen pa yon ekspè nan domèn sa a, men mwen te montre enterè nan teknoloji sa a plis pase yon fwa, men eseye jwe otou ak li souvan lakòz kèk doulè. Jodi a mwen te kòmanse fè eksperyans ankò e mwen te jwenn kèk rezilta ke mwen ta renmen pataje. Nan ti bout tan, pwosesis enstalasyon IPFS la ak kèk karakteristik yo pral dekri (tout bagay te fè sou ubuntu, mwen pa te eseye li sou lòt platfòm). Si ou rate sa IPFS ye, li ekri nan kèk detay isit la: habr.com/en/post/314768
Enstalasyon
Pou pite eksperyans la, mwen sijere imedyatman enstale li sou kèk sèvè ekstèn, paske nou pral konsidere kèk enkonvenyans ak travay nan mòd lokal ak aleka. Lè sa a, si ou vle, li pa pral demoli pou yon tan long, pa gen anpil.
Remak: li pi bon enstale IPFS sou non itilizatè a ki sipoze itilize li pi souvan. Reyalite a se ke anba a nou pral konsidere opsyon nan aliye via Fuse epi gen sibtilite.
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
ipfs-update vèsyon yo - pou wè tout vèsyon ki disponib pou telechaje. ipfs-update vèsyon - pou wè vèsyon ki enstale kounye a (jouk nou gen IPFS enstale, li p ap okenn). ipfs-update enstale dènye - enstale dènye vèsyon IPFS la. Olye pou yo dènye, respektivman, ou ka presize nenpòt vèsyon vle nan lis la ki disponib.
Enstale ipfs
ipfs-update install latest
Tcheke
ipfs --version
Dirèkteman ak enstalasyon an an tèm jeneral tout bagay.
Kòmanse IPFS
Inisyalizasyon
Premye ou bezwen fè inisyalizasyon.
ipfs init
Kòm repons, ou pral resevwa yon bagay tankou sa a:
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
Isit la, nan opinyon mwen, enteresan an kòmanse. Mesye yo nan etap enstalasyon yo deja kòmanse sèvi ak teknoloji pwòp yo. Hash pwopoze a QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv pa pwodwi espesyalman pou ou, men koud nan lage a. Sa vle di, anvan liberasyon an, yo te prepare yon tèks akeyi, vide l nan IPFS epi ajoute adrès la nan enstale a. Mwen panse ke li trè fre. Ak dosye sa a (plis jisteman, katab la tout antye) kounye a ka wè pa sèlman lokalman, men tou sou pòtay ofisyèl la. ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. An menm tan an, ou ka asire w ke sa ki nan katab la pa chanje nan okenn fason, paske si li te chanje, Lè sa a, hash la ta tou chanje.
By wout la, nan ka sa a, IPFS gen kèk resanblans ak sèvè kontwòl vèsyon an. Si ou fè chanjman nan dosye sous yo nan katab la epi ankò vide katab la nan IPFS, Lè sa a, li pral resevwa yon nouvo adrès. An menm tan an, katab la fin vye granmoun pa pral ale nenpòt kote jis tankou sa epi yo pral disponib nan adrès anvan li yo.
Lansman dirèk
ipfs daemon
Ou ta dwe resevwa yon repons tankou sa a:
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
Louvri pòt yo sou entènèt la
Peye atansyon sou de liy sa yo:
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Koulye a, si ou enstale IPFS lokalman, Lè sa a, ou pral jwenn aksè nan koòdone IPFS nan adrès lokal yo ak tout bagay ap disponib pou ou (Pa egzanp, lokalost:5001/webui/). Men, lè enstale sou yon sèvè ekstèn, pa default, pòtay yo fèmen sou entènèt la. Gateways de:
Se konsa, lwen, tou de pò (5001 ak 8080) ka louvri pou eksperyans, men sou yon sèvè konba, nan kou, pò 5001 yo ta dwe fèmen ak yon firewall. Genyen tou pò 4001, ki nesesè pou lòt kanmarad ka jwenn ou. Li ta dwe kite ouvè a demann deyò.
Louvri ~/.ipfs/config pou koreksyon epi jwenn liy sa yo ladan l:
Si webui travay pou ou, Lè sa a, anviwònman IPFS yo ka chanje dirèkteman nan li, ki gen ladan gade estatistik, men anba a mwen pral konsidere opsyon konfigirasyon dirèkteman nan fichye a konfigirasyon, ki se jeneralman yo pa kritik. Li jis pi bon sonje egzakteman ki kote konfigirasyon an ye ak sa pou w fè ak li, otreman si figi entènèt la pa travay, li pral pi difisil.
Mete kanpe yon koòdone entènèt pou travay avèk sèvè w la
Isit la se premye pyèj la, ki te pran apeprè twa èdtan.
Si ou enstale IPFS sou yon sèvè ekstèn, men ou pa enstale oswa kouri IPFS lokalman, Lè sa a, lè ou ale nan /webui nan koòdone entènèt la, ou ta dwe wè yon erè koneksyon:
Reyalite a se ke webui, nan opinyon mwen, travay trè anbigwi. Premyèman, li eseye konekte ak API a nan sèvè a kote koòdone a louvri (ki baze sou adrès la nan navigatè a, nan kou). epi si li pa travay la, li eseye konekte ak pòtay lokal la. Men, si ou gen IPFS kouri lokalman, Lè sa a, webui ap travay byen pou ou, sèlman ou pral travay ak IPFS lokal yo, epi yo pa ekstèn, byenke ou louvri webui sou yon sèvè ekstèn. Lè sa a, ou telechaje dosye yo, men pou kèk rezon ou pa wè yo jis konsa sou yon sèvè ekstèn ...
Men, si li pa kouri lokalman, Lè sa a, nou jwenn yon erè koneksyon. Nan ka nou an, erè a gen plis chans akòz CORS, ki se tou endike pa webui, sijere ajoute yon konfigirasyon.
Nou rekòmanse ipfs epi nou wè ke webui te konekte avèk siksè (nan nenpòt ka, li ta dwe, si ou louvri pòtay yo pou demann soti deyò, jan sa dekri pi wo a).
Koulye a, ou ka Upload dosye ak dosye dirèkteman nan koòdone entènèt la, osi byen ke kreye dosye pwòp ou yo.
Monte sistèm fichye FUSE la
Isit la se yon karakteristik trè enteresan.
Fichye (kòm byen ke dosye), nou ka ajoute pa sèlman atravè koòdone entènèt la, men tou dirèkteman nan tèminal la, pou egzanp.
ipfs add test -r
added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt
added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test
Dènye hash la se hash la nan katab la rasin.
Sèvi ak hash sa a, nou ka louvri yon katab sou nenpòt nœud ipfs (ki ka jwenn ne nou an epi jwenn sa ki ladan), nou ka nan koòdone entènèt la sou pò 5001 oswa 8080, oswa nou ka lokalman atravè ipfs.
ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt
Men, ou ka toujou louvri li tankou yon katab regilye.
Ann kreye de dosye nan rasin lan epi bay itilizatè nou an dwa pou yo.
Ou ka kreye dosye nan lòt kote epi presize chemen ki mennen nan yo atravè paramèt demon ipfs -mount -mount-ipfs /ipfs_path -mount-ipns /ipns_path.
Koulye a, lekti nan katab sa a se yon ti jan etranj.
ls -la /ipfs
ls: reading directory '/ipfs': Operation not permitted
total 0
Sa vle di, pa gen aksè dirèk nan rasin nan katab sa a. Men, ou ka jwenn kontni an, konnen hash la.
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
An menm tan an, menm oto-konpletman travay andedan katab la lè yo espesifye chemen an.
Kòm mwen te di pi wo a, gen sibtilite ak aliye sa yo: pa default, monte dosye FUSE yo disponib sèlman nan itilizatè aktyèl la (menm rasin yo pa pral kapab li nan yon katab sa yo, nou pa mansyone lòt itilizatè nan sistèm nan). Si ou vle fè dosye sa yo disponib pou lòt itilizatè, Lè sa a, nan konfigirasyon an ou bezwen chanje "FuseAllowOther": fo nan "FuseAllowOther": vre. Men, sa a se pa tout. Si ou kouri IPFS kòm rasin, Lè sa a, tout bagay se OK. Men, si sou non yon itilizatè regilye (menm sudo), Lè sa a, ou pral jwenn yon erè
mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Nan ka sa a, ou bezwen edite /etc/fuse.conf lè w retire liy #user_allow_other la.
Apre sa, rekòmanse ipfs.
Pwoblèm li te ye ak FUSE
Pwoblèm nan te remake plis pase yon fwa ke apre rekòmanse ipfs ak aliye (e petèt nan lòt ka), / ipfs ak / ipns pwen mòn yo vin pa disponib. Pa gen aksè a yo, ak ls -la /ipfs montre ???? nan lis dwa yo.
Jwenn solisyon sa a:
fusermount -z -u /ipfs
fusermount -z -u /ipns
Lè sa a, rekòmanse ipfs.
Ajoute yon sèvis
Natirèlman, kouri nan tèminal la se sèlman apwopriye pou premye tès yo. Nan mòd konba, demon an ta dwe kòmanse otomatikman nan demaraj sistèm lan.
Nan non sudo, kreye fichye /etc/systemd/system/ipfs.service epi ekri li:
USERNAME, nan kou, dwe ranplase ak itilizatè ou a (e petèt chemen an konplè nan pwogram ipfs la pral diferan pou ou (ou dwe presize chemen an konplè)).
Nou aktive sèvis la.
sudo systemctl enable ipfs.service
Nou kòmanse sèvis la.
sudo service ipfs start
Tcheke estati sèvis la.
sudo service ipfs status
Pou pite eksperyans lan, li pral posib pou rdemare sèvè a nan lavni pou tcheke ke ipfs kòmanse avèk siksè otomatikman.
Ajoute nou konnen fèt
Konsidere yon sitiyasyon kote nou gen nœuds IPFS enstale tou de sou yon sèvè ekstèn ak lokalman. Sou yon sèvè ekstèn, nou ajoute kèk dosye epi eseye jwenn li atravè IPFS lokalman pa CID. Kisa ki pral rive? Natirèlman, sèvè lokal la gen plis chans pa konnen anyen sou sèvè ekstèn nou an epi li pral tou senpleman eseye jwenn dosye a pa CID pa "mande" tout parèy IPFS ki disponib pou li (ak ki li te deja jere yo "fè konesans"). Moun ki nan vire pral mande lòt moun. Ak sou sa, jiskaske yo jwenn dosye a. Aktyèlman, menm bagay la rive lè nou eseye jwenn dosye a atravè pòtay ofisyèl la ipfs.io. Si w gen chans, yo pral jwenn dosye a nan kèk segonn. Men, si ou pa, li pa pral jwenn menm nan kèk minit, ki anpil afekte konfò nan travay. Men, nou konnen ki kote dosye sa a pral premye parèt. Se konsa, poukisa nou pa imedyatman di sèvè lokal nou an "Rechèch la an premye"? Aparamman, sa a ka fè.
1. Nou ale nan sèvè a aleka epi gade nan ~/.ipfs/config konfigirasyon an
3. Nou ajoute nan sa a adrès jeneral fòm "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID".
4. Pou fyab, nou pral eseye ajoute adrès sa a bay kanmarad atravè webui lokal nou an.
5. Si tout bagay bon, louvri konfigirasyon lokal ~ / .ipfs / konfigirasyon an, jwenn "Bootstrap" ladan l: [...
epi ajoute adrès ou resevwa a an premye nan etalaj la.
Rekòmanse IPFS.
Koulye a, kite a ajoute dosye a nan sèvè ekstèn lan epi eseye mande li sou yon sèl lokal la. Ta dwe vole vit.
Men, fonksyonalite sa a poko estab. Dapre mwen konprann, menm si nou presize adrès yon kanmarad nan Bootstrap, ipfs chanje lis koneksyon aktif ak kanmarad pandan operasyon an. Nan nenpòt ka, diskisyon an sou sa a ak volonte konsènan posibilite pou espesifye fèt pèmanan se sou pye isit la epi li sanble tankou sipoze ajoute kèk fonksyonalite nan [imèl pwoteje]+
Lis kanmarad aktyèl yo ka wè tou de nan webui a ak nan tèminal la.
Jiskaske fonksyonalite sa a te amelyore, ou ka ekri yon zouti pou tcheke pou yon koneksyon ak parèy ou vle a epi, si se pa, ajoute yon koneksyon.
Rezònman
Pami moun ki deja abitye ak IPFS, gen tou de agiman pou ak kont IPFS. Fondamantalman, yè diskisyon ak pouse m 'pou fouye nan IPFS ankò. Ak konsènan diskisyon ki mansyone pi wo a: Mwen pa ka di ke mwen fòtman opoze nenpòt agiman nan moun ki te pale (mwen pa dakò sèlman ak lefèt ke yon sèl ak yon pwogramasyon mwatye itilize IPFS). An jeneral, tou de gen rezon nan pwòp fason yo (sitou kòmantè sou chèk yo fè w panse). Men, si nou jete evalyasyon an moral ak legal, ki moun ki pral bay yon evalyasyon teknik nan teknoloji sa a? Pèsonèlman, mwen gen kèk kalite bò/pa anndan santi ke "sa a dwe fè sans, li gen sèten perspectives." Men, poukisa egzakteman, pa gen okenn fòmilasyon klè. Tankou, si ou gade nan zouti yo ki deja egziste santralize, Lè sa a, nan anpil respè yo byen lwen devan (estabilite, vitès, jere, elatriye). Men, mwen gen yon panse ki sanble gen sans epi ki diman ka aplike san sistèm desantralize sa yo. Natirèlman, mwen balanse twò difisil, men mwen ta fòmile li nan fason sa a: prensip la nan difize enfòmasyon sou entènèt la dwe chanje.
Kite m eksplike. Si w reflechi sou sa, kounye a nou gen enfòmasyon distribye dapre prensip sa a: “Mwen espere ke moun mwen te bay li a ap pwoteje l epi li pap pèdi oswa resevwa l pa moun ki pa te fèt pou yo.” Kòm yon egzanp, li fasil pou konsidere divès kalite sèvis lapòs, depo nwaj, elatriye. Ak kisa nou fini? Sou hub Habré Sekirite Enfòmasyon se sou premye liy lan ak prèske chak jou nou resevwa nouvèl sou yon lòt koule mondyal. Nan prensip, tout bagay ki pi enteresan yo ki nan lis nan <ironi> bèl bagay atik Ete a prèske fini. Gen prèske pa gen okenn done ki pa kite. Sa vle di, gran prensipal entènèt yo ap vin pi gwo, yo akimile pi plis ak plis enfòmasyon, ak fwit sa yo se yon kalite eksplozyon atomik enfòmasyon. Sa a pa janm rive anvan, epi isit la li se ankò. An menm tan an, byenke anpil moun konprann ke gen risk, yo pral kontinye fè konfyans done yo bay konpayi twazyèm pati. Premyèman, pa gen anpil altènatif, ak dezyèmman, yo pwomèt ke yo te patched moute tout twou yo ak sa a pa janm pral rive ankò.
Ki opsyon mwen wè? Li sanble m 'ke done yo ta dwe okòmansman dwe distribye ouvètman. Men, ouvèti nan ka sa a pa vle di ke tout bagay ta dwe fasil pou li. M ap pale de ouvèti nan depo ak distribisyon, men se pa total ouvèti nan lekti. Mwen sipoze ke enfòmasyon yo ta dwe distribye ak kle piblik. Apre yo tout, prensip la nan kle piblik / prive deja fin vye granmoun, prèske tankou entènèt la. Si enfòmasyon an pa konfidansyèl epi li gen entansyon pou yon sèk lajè, Lè sa a, li mete deyò imedyatman ak yon kle piblik (men yo toujou nan fòm chiffres, jis nenpòt moun ka dechifre li ak kle ki disponib). Men, si ou pa, Lè sa a, li mete deyò san yo pa yon kle piblik, ak kle nan tèt li transfere nan sa ki ta dwe gen aksè a enfòmasyon sa a. An menm tan an, moun ki ta dwe li li ta dwe sèlman gen yon kle, ak ki kote yo ka resevwa enfòmasyon sa a, li pa ta dwe reyèlman transande - li jis rale li nan rezo a (sa a se nouvo prensip distribisyon pa kontni, pa pa adrès).
Kidonk, pou yon atak mas, atakè yo pral bezwen jwenn yon gwo kantite kle prive, e li pa fasil pou fè nan yon sèl kote. Travay sa a, jan mwen wè li, se pi difisil pase Hacking yon sèvis patikilye.
Ak isit la se yon lòt pwoblèm fèmen: konfimasyon patènite. Koulye a, sou entènèt la ou ka jwenn anpil quotes ekri pa zanmi nou yo. Men, ki kote garanti ke se yo ki te ekri yo? Koulye a, si chak dosye sa yo te akonpaye pa yon siyati dijital, li ta pi fasil. Epi li pa enpòtan kote enfòmasyon sa a manti, bagay prensipal la se siyati a, ki, nan kou, se difisil a fòje.
Ak isit la nan sa ki enteresan isit la: IPFS deja pote zouti chifreman (apre tout, li se bati sou teknoloji blockchain). Se kle prive a imedyatman espesifye nan konfigirasyon an.
Mwen pa yon espesyalis sekirite epi mwen pa ka konnen egzakteman ki jan yo sèvi ak li kòrèkteman, men li sanble ke kle sa yo yo te itilize nan nivo echanj ant nœuds IPFS. Epi tou js-ipfs ak pwojè egzanp tankou òbit-dbsou ki li travay òbit.chat. Sa vle di, teyorikman, chak aparèy (mobil epi li pa sèlman) ka fasil ekipe ak pwòp machin chifreman-dekripte li yo. Nan ka sa a, li rete sèlman pou tout moun pran swen nan sove kle prive yo, epi tout moun pral responsab pou pwòp sekirite yo, epi yo pa dwe yon otaj nan yon lòt faktè imen sou kèk jeyan super-popilè entènèt.
Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.
Èske w te tande pale de IPFS anvan?
Mwen pa janm tande pale de IPFS, men li sanble enteresan
Pa tande e pa vle tande
Tande men pa enterese
Tande, men pa t 'konprann, men kounye a li sanble enteresan