నొప్పి లేకుండా IPFS (కానీ ఇది ఖచ్చితమైనది కాదు)

నొప్పి లేకుండా IPFS (కానీ ఇది ఖచ్చితమైనది కాదు)

Habré ఇప్పటికే వాస్తవం ఉన్నప్పటికీ IPFS గురించి ఒకటి కంటే ఎక్కువ కథనాలు.

నేను ఈ ప్రాంతంలో నిపుణుడిని కాదని నేను వెంటనే స్పష్టం చేస్తాను, కానీ నేను ఈ సాంకేతికతపై ఒకటి కంటే ఎక్కువసార్లు ఆసక్తిని కనబరిచాను, కానీ దానితో ఆడుకోవడానికి ప్రయత్నించడం తరచుగా కొంత నొప్పిని కలిగిస్తుంది. ఈ రోజు నేను మళ్లీ ప్రయోగాలు చేయడం ప్రారంభించాను మరియు నేను భాగస్వామ్యం చేయాలనుకుంటున్న కొన్ని ఫలితాలను పొందాను. సంక్షిప్తంగా, IPFS ఇన్‌స్టాలేషన్ ప్రక్రియ మరియు కొన్ని లక్షణాలు వివరించబడతాయి (ప్రతిదీ ఉబుంటులో జరిగింది, నేను ఇతర ప్లాట్‌ఫారమ్‌లలో ప్రయత్నించలేదు).

మీరు IPFS అంటే ఏమిటో మిస్ అయినట్లయితే, అది ఇక్కడ కొంత వివరంగా వ్రాయబడింది: habr.com/en/post/314768

సెట్టింగ్

ప్రయోగం యొక్క స్వచ్ఛత కోసం, నేను దీన్ని వెంటనే కొన్ని బాహ్య సర్వర్‌లో ఇన్‌స్టాల్ చేయమని సూచిస్తున్నాను, ఎందుకంటే మేము లోకల్ మోడ్ మరియు రిమోట్‌లో పని చేయడంలో కొన్ని ఆపదలను పరిశీలిస్తాము. అప్పుడు, కావాలనుకుంటే, అది చాలా కాలం పాటు పడగొట్టబడదు, చాలా లేదు.

గో ఇన్‌స్టాల్ చేయండి

అధికారిక డాక్యుమెంటేషన్
వద్ద ప్రస్తుత వెర్షన్ చూడండి 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 version

IPFSని ఇన్‌స్టాల్ చేయండి

నేను ఇన్‌స్టాలేషన్ పద్ధతిని ఎక్కువగా ఇష్టపడ్డాను ipfs నవీకరణ.

కమాండ్‌తో దీన్ని ఇన్‌స్టాల్ చేయండి

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

ఆ తరువాత, మీరు క్రింది ఆదేశాలను అమలు చేయవచ్చు:

ipfs-నవీకరణ సంస్కరణలు - డౌన్‌లోడ్ కోసం అందుబాటులో ఉన్న అన్ని వెర్షన్‌లను చూడటానికి.
ipfs-అప్‌డేట్ వెర్షన్ - ప్రస్తుతం ఇన్‌స్టాల్ చేయబడిన సంస్కరణను చూడటానికి (మేము IPFS ఇన్‌స్టాల్ చేసే వరకు, అది ఏదీ కాదు).
ipfs-update ఇన్‌స్టాల్ తాజాది - 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 ఇంటర్‌ఫేస్‌లను యాక్సెస్ చేస్తారు మరియు ప్రతిదీ మీకు అందుబాటులో ఉంటుంది (ఉదాహరణకు, localhost: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 మీకు బాగా పని చేస్తుంది, మీరు మాత్రమే స్థానిక IPFSతో పని చేస్తారు మరియు బాహ్యంగా కాదు, అయితే మీరు బాహ్య సర్వర్‌లో వెబ్‌యూని తెరిచారు. అప్పుడు మీరు ఫైల్‌లను అప్‌లోడ్ చేస్తారు, కానీ కొన్ని కారణాల వల్ల మీరు వాటిని బాహ్య సర్వర్‌లో చూడలేరు…

మరియు అది స్థానికంగా అమలు కానట్లయితే, మనకు కనెక్షన్ లోపం వస్తుంది. మా విషయంలో, కాన్ఫిగరేషన్‌ని జోడించమని సూచిస్తూ వెబ్‌యూ ద్వారా కూడా సూచించబడిన CORS వల్ల లోపం సంభవించవచ్చు.

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 ఫోల్డర్లు ప్రస్తుత వినియోగదారుకు మాత్రమే అందుబాటులో ఉంటాయి (రూట్ కూడా అటువంటి ఫోల్డర్ నుండి చదవలేరు, సిస్టమ్లోని ఇతర వినియోగదారుల గురించి చెప్పనవసరం లేదు). మీరు ఈ ఫోల్డర్‌లను ఇతర వినియోగదారులకు అందుబాటులో ఉంచాలనుకుంటే, కాన్ఫిగరేషన్‌లో మీరు "FuseAllowOther"ని మార్చాలి: తప్పుని "FuseAllowOther"కి మార్చాలి: నిజం. అయితే అంతే కాదు. మీరు IPFSని రూట్‌గా అమలు చేస్తే, అప్పుడు అంతా సరే. మరియు సాధారణ వినియోగదారు (సూడో కూడా) తరపున ఉంటే, మీరు ఎర్రర్‌ను పొందుతారు

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 config లో చూస్తాము

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

2. sudo సర్వీస్ ipfs స్థితిని అమలు చేయండి మరియు అందులో స్వార్మ్ ఎంట్రీల కోసం చూడండి, ఉదాహరణకు:

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

3. మేము దీని నుండి "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID" ఫారమ్ యొక్క సాధారణ చిరునామాను జోడిస్తాము.

4. విశ్వసనీయత కోసం, మేము ఈ చిరునామాను మా స్థానిక వెబ్‌యూ ద్వారా పీర్‌లకు జోడించడానికి ప్రయత్నిస్తాము.

నొప్పి లేకుండా IPFS (కానీ ఇది ఖచ్చితమైనది కాదు)

5. ప్రతిదీ సరిగ్గా ఉంటే, స్థానిక కాన్ఫిగరేషన్ ~ / .ipfs / config తెరవండి, దానిలో “బూట్‌స్ట్రాప్”ని కనుగొనండి: [...
మరియు స్వీకరించిన చిరునామాను ముందుగా శ్రేణికి జోడించండి.

IPFSని పునఃప్రారంభించండి.

ఇప్పుడు ఫైల్‌ను బాహ్య సర్వర్‌కి జోడించి, స్థానికంగా అభ్యర్థించడానికి ప్రయత్నించండి. వేగంగా ఎగరాలి.

కానీ ఈ కార్యాచరణ ఇంకా స్థిరంగా లేదు. నేను అర్థం చేసుకున్నంత వరకు, మేము బూట్‌స్ట్రాప్‌లో పీర్ చిరునామాను పేర్కొన్నప్పటికీ, ఆపరేషన్ సమయంలో పీర్‌లతో క్రియాశీల కనెక్షన్‌ల జాబితాను 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 మరియు వంటి ఉదాహరణ ప్రాజెక్టులు కక్ష్య-dbఇది పని చేస్తుంది orbit.chat. అంటే, సిద్ధాంతపరంగా, ప్రతి పరికరం (మొబైల్ మరియు మాత్రమే కాదు) దాని స్వంత ఎన్‌క్రిప్షన్-డిక్రిప్షన్ మెషీన్‌లతో సులభంగా అమర్చవచ్చు. ఈ సందర్భంలో, ప్రతి ఒక్కరూ తమ ప్రైవేట్ కీలను సేవ్ చేయడంలో శ్రద్ధ వహించడం మాత్రమే మిగిలి ఉంది మరియు ప్రతి ఒక్కరూ వారి స్వంత భద్రతకు బాధ్యత వహిస్తారు మరియు కొన్ని సూపర్-పాపులర్ ఇంటర్నెట్ దిగ్గజంలో మరొక మానవ కారకం యొక్క బందీగా ఉండకూడదు.

నమోదు చేసుకున్న వినియోగదారులు మాత్రమే సర్వేలో పాల్గొనగలరు. సైన్ ఇన్ చేయండిదయచేసి.

మీరు ఇంతకు ముందు IPFS గురించి విన్నారా?

  • నేను IPFS గురించి ఎప్పుడూ వినలేదు, కానీ ఇది ఆసక్తికరంగా ఉంది

  • వినలేదు మరియు వినాలనుకోలేదు

  • విన్నాను కానీ ఆసక్తి లేదు

  • విన్నాను కానీ అర్ధం కాలేదు కానీ ఇప్పుడు ఇంట్రెస్టింగ్ గా అనిపిస్తోంది

  • నేను చాలా కాలంగా IPFSని చురుకుగా ఉపయోగిస్తున్నాను.

69 మంది వినియోగదారులు ఓటు వేశారు. 13 మంది వినియోగదారులు దూరంగా ఉన్నారు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి