IPFS ืœืœื ื›ืื‘ (ืื‘ืœ ื–ื” ืœื ืžื“ื•ื™ืง)

IPFS ืœืœื ื›ืื‘ (ืื‘ืœ ื–ื” ืœื ืžื“ื•ื™ืง)

ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื”ื‘ืจื” ื›ื‘ืจ ื”ื™ื” ื™ื•ืชืจ ืžืžืืžืจ ืื—ื“ ืขืœ IPFS.

ืžื™ื“ ืื‘ื”ื™ืจ ืฉืื ื™ ืœื ืžื•ืžื—ื” ื‘ืชื—ื•ื ื”ื–ื”, ืื‘ืœ ื’ื™ืœื™ืชื™ ืขื ื™ื™ืŸ ื‘ื˜ื›ื ื•ืœื•ื’ื™ื” ื”ื–ื• ื™ื•ืชืจ ืžืคืขื ืื—ืช, ืื‘ืœ ื”ื ื™ืกื™ื•ืŸ ืœืฉื—ืง ืื™ืชื” ื’ืจื ืœื ืคืขื ืœื›ืื‘. ื”ื™ื•ื ื”ืชื—ืœืชื™ ืฉื•ื‘ ืœื”ืชื ืกื•ืช ื•ืงื™ื‘ืœืชื™ ื›ืžื” ืชื•ืฆืื•ืช ืฉื”ื™ื™ืชื™ ืจื•ืฆื” ืœืฉืชืฃ. ื‘ืงื™ืฆื•ืจ, ืชื”ืœื™ืš ื”ื”ืชืงื ื” ืฉืœ IPFS ื•ื›ืžื” ืชื›ื•ื ื•ืช ื™ืชื•ืืจื• (ื”ื›ืœ ื ืขืฉื” ื‘-ubuntu, ืœื ื ื™ืกื™ืชื™ ืืช ื–ื” ื‘ืคืœื˜ืคื•ืจืžื•ืช ืื—ืจื•ืช).

ืื ืคืกืคืกืช ืžื” ื–ื” IPFS, ื–ื” ื›ืชื•ื‘ ื‘ืคื™ืจื•ื˜ ืžืกื•ื™ื ื›ืืŸ: habr.com/en/post/314768

ื”ืชืงื ื”

ืœืžืขืŸ ื˜ื•ื”ืจ ื”ื ื™ืกื•ื™, ืื ื™ ืžืฆื™ืข ืœื”ืชืงื™ืŸ ืื•ืชื• ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ืขืœ ืฉืจืช ื—ื™ืฆื•ื ื™ ื›ืœืฉื”ื•, โ€‹โ€‹ืฉื›ืŸ ื ืฉืงื•ืœ ื›ืžื” ืžืœื›ื•ื“ื•ืช ืขื ืขื‘ื•ื“ื” ื‘ืžืฆื‘ ืžืงื•ืžื™ ื•ืžืจื•ื—ืง. ื•ืื–, ืื ืจื•ืฆื™ื, ื–ื” ืœื ื™ื™ื”ืจืก ื‘ืžืฉืš ื–ืžืŸ ืจื‘, ืื™ืŸ ื”ืจื‘ื”.

ื”ืชืงืŸ go

ืชื™ืขื•ื“ ืจืฉืžื™
ืจืื” ืืช ื”ื’ืจืกื” ื”ื ื•ื›ื—ื™ืช ื‘ golang.org/dl

ื”ืขืจื”: ืขื“ื™ืฃ ืœื”ืชืงื™ืŸ IPFS ื‘ืฉื ื”ืžืฉืชืžืฉ ืฉืืžื•ืจ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืชื“ื™ืจื•ืช ื”ื’ื‘ื•ื”ื” ื‘ื™ื•ืชืจ. ื”ืขื•ื‘ื“ื” ื”ื™ื ื›ื™ ืœื”ืœืŸ ื ืฉืงื•ืœ ืืช ื”ืืคืฉืจื•ืช ืฉืœ ื”ืจื›ื‘ื” ื‘ืืžืฆืขื•ืช FUSE ื•ื™ืฉ ื“ืงื•ื™ื•ืช.

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 ืžื•ืชืงืŸ

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

ื›ืืŸ, ืœื“ืขืชื™, ื”ืžืขื ื™ื™ืŸ ืžืชื—ื™ืœ. ื”ื—ื‘ืจ'ื” ื‘ืฉืœื‘ ื”ื”ืชืงื ื” ื›ื‘ืจ ืžืชื—ื™ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืžืฉืœื”ื. ื”-hash ื”ืžื•ืฆืข QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv ืœื ื ื•ืฆืจ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจืš, ืืœื ืชืคื•ืจ ื‘ืžื”ื“ื•ืจื”. ื›ืœื•ืžืจ, ืœืคื ื™ ื”ืฉื—ืจื•ืจ ื”ื›ื™ื ื• ื˜ืงืกื˜ ื‘ืจื•ื›ื™ื ื”ื‘ืื™ื, ืฉืคื›ื• ืื•ืชื• ืœ-IPFS ื•ื”ื•ืกื™ืคื• ืืช ื”ื›ืชื•ื‘ืช ืœืžืชืงื™ืŸ. ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ืžืื•ื“ ืžื’ื ื™ื‘. ื•ืืช ื”ืงื•ื‘ืฅ ื”ื–ื” (ืœื™ืชืจ ื“ื™ื•ืง, ื”ืชื™ืงื™ื” ื›ื•ืœื”) ื ื™ืชืŸ ืœืฆืคื•ืช ื›ืขืช ืœื ืจืง ื‘ืื•ืคืŸ ืžืงื•ืžื™, ืืœื ื’ื ื‘ืฉืขืจ ื”ืจืฉืžื™ ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. ื™ื—ื“ ืขื ื–ืืช, ืืชื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ื˜ื•ื— ืฉืชื•ื›ืŸ ื”ืชื™ืงื™ื” ืœื ื”ืฉืชื ื” ื‘ืฉื•ื ืฆื•ืจื”, ื›ื™ ืื ื–ื” ื”ื™ื” ืžืฉืชื ื”, ืื– ื’ื ื”-hash ื”ื™ื” ืžืฉืชื ื”.

ืื’ื‘, ื‘ืžืงืจื” ื–ื”, ืœ-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 admin (GitHub) ื‘ื™ืฆื™ืื” 5001.
  2. API ื—ื™ืฆื•ื ื™ ื‘ื™ืฆื™ืื” 8080 (ืœืงืจื™ืื” ื‘ืœื‘ื“).

ืขื“ ื›ื”, ื ื™ืชืŸ ืœืคืชื•ื— ืืช ืฉืชื™ ื”ื™ืฆื™ืื•ืช (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 ืœืœื ื›ืื‘ (ืื‘ืœ ื–ื” ืœื ืžื“ื•ื™ืง)

ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉ-webui, ืœื“ืขืชื™, ืขื•ื‘ื“ ื‘ืฆื•ืจื” ืžืื•ื“ ืžืขื•ืจืคืœืช. ืจืืฉื™ืช, ื”ื•ื ืžื ืกื” ืœื”ืชื—ื‘ืจ ืœ-API ืฉืœ ื”ืฉืจืช ืฉื‘ื• ื”ืžืžืฉืง ืคืชื•ื— (ื‘ื”ืชื‘ืกืก ืขืœ ื”ื›ืชื•ื‘ืช ื‘ื“ืคื“ืคืŸ, ื›ืžื•ื‘ืŸ). ื•ืื ื–ื” ืœื ืขื•ื‘ื“ ืฉื, ื”ื•ื ืžื ืกื” ืœื”ืชื—ื‘ืจ ืœืฉืขืจ ื”ืžืงื•ืžื™. ื•ืื ื™ืฉ ืœืš IPFS ืฉืคื•ืขืœ ื‘ืื•ืคืŸ ืžืงื•ืžื™, ืื– webui ื™ืขื‘ื•ื“ ืœืš ืžืฆื•ื™ืŸ, ืจืง ืืชื” ืชืขื‘ื•ื“ ืขื IPFS ืžืงื•ืžื™, ื•ืœื ื—ื™ืฆื•ื ื™, ืœืžืจื•ืช ืฉืคืชื—ืช webui ื‘ืฉืจืช ื—ื™ืฆื•ื ื™. ื•ืื– ืืชื” ืžืขืœื” ืืช ื”ืงื‘ืฆื™ื, ืื‘ืœ ืžืฉื•ื ืžื” ืืชื” ืœื ืจื•ืื” ืื•ืชื ืกืชื ื›ืš ื‘ืฉืจืช ื—ื™ืฆื•ื ื™...

ื•ืื ื”ื•ื ืœื ืคื•ืขืœ ื‘ืื•ืคืŸ ืžืงื•ืžื™, ืื ื• ืžืงื‘ืœื™ื ืฉื’ื™ืืช ื—ื™ื‘ื•ืจ. ื‘ืžืงืจื” ืฉืœื ื•, ื”ืฉื’ื™ืื” ื ื•ื‘ืขืช ื›ื›ืœ ื”ื ืจืื” ืž-CORS, ืฉืžืฆื•ื™ืŸ ื’ื ืขืœ ื™ื“ื™ webui, ื”ืžืฆื™ืข ื”ื•ืกืคืช ืชืฆื•ืจื”.

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

ื”-hash ื”ืื—ืจื•ืŸ ื”ื•ื ื”-hash ืฉืœ ืชื™ืงื™ื™ืช ื”ืฉื•ืจืฉ.

ื‘ืืžืฆืขื•ืช ื”-hash ื”ื–ื”, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืคืชื•ื— ืชื™ืงื™ื” ื‘ื›ืœ ืฆื•ืžืช ipfs (ืฉื™ื›ื•ืœื” ืœืžืฆื•ื ืืช ื”ืฆื•ืžืช ืฉืœื ื• ื•ืœืงื‘ืœ ืืช ื”ืชื•ื›ืŸ), ืื ื—ื ื• ื™ื›ื•ืœื™ื ื‘ืžืžืฉืง ื”ืื™ื ื˜ืจื ื˜ ื‘ืคื•ืจื˜ 5001 ืื• 8080, ืื• ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ื‘ืื•ืคืŸ ืžืงื•ืžื™ ื“ืจืš ipfs.

ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt

ืื‘ืœ ืืชื” ืขื“ื™ื™ืŸ ื™ื›ื•ืœ ืœืคืชื•ื— ืื•ืชื• ื›ืžื• ืชื™ืงื™ื” ืจื’ื™ืœื”.

ื‘ื•ืื• ื ื™ืฆื•ืจ ืฉืชื™ ืชื™ืงื™ื•ืช ื‘ืฉื•ืจืฉ ื•ื ืขื ื™ืง ื–ื›ื•ื™ื•ืช ืขืœื™ื”ืŸ ืœืžืฉืชืžืฉ ืฉืœื ื•.

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

ื•ื”ืคืขืœ ืžื—ื“ืฉ ืืช ipfs ืขื ื“ื’ืœ --mount

ipfs daemon --mount

ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืชื™ืงื™ื•ืช ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ื•ืœืฆื™ื™ืŸ ืืช ื”ื ืชื™ื‘ ืืœื™ื”ืŸ ื“ืจืš ื”ืคืจืžื˜ืจื™ื ืฉืœ ipfs daemon -mount -mount-ipfs /ipfs_path -mount-ipns /ipns_path

ืขื›ืฉื™ื• ื”ืงืจื™ืื” ืžื”ืชื™ืงื™ื™ื” ื”ื–ื• ื”ื™ื ืงืฆืช ื™ื•ืฆืืช ื“ื•ืคืŸ.

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

ื›ืœื•ืžืจ, ืื™ืŸ ื’ื™ืฉื” ื™ืฉื™ืจื” ืœืฉื•ืจืฉ ื”ืชื™ืงื™ื” ื”ื–ื•. ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ื”ืชื•ื›ืŸ, ืœื“ืขืช ืืช ื”-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

ื‘ืžืงื‘ื™ืœ, ืืคื™ืœื• ื”ืฉืœืžื” ืื•ื˜ื•ืžื˜ื™ืช ืคื•ืขืœืช ื‘ืชื•ืš ื”ืชื™ืงื™ื” ื›ืืฉืจ ื”ื ืชื™ื‘ ืžืฆื•ื™ืŸ.

ื›ืคื™ ืฉืืžืจืชื™ ืœืžืขืœื”, ื™ืฉื ืŸ ื“ืงื•ื™ื•ืช ื‘ื”ืจื›ื‘ื” ื›ื–ื•: ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืชื™ืงื™ื•ืช FUSE ืจื›ื•ื‘ื•ืช ื–ืžื™ื ื•ืช ืจืง ืœืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™ (ืืคื™ืœื• root ืœื ื™ื•ื›ืœ ืœืงืจื•ื ืžืชื™ืงื™ื” ื›ื–ื•, ืฉืœื ืœื“ื‘ืจ ืขืœ ืžืฉืชืžืฉื™ื ืื—ืจื™ื ื‘ืžืขืจื›ืช). ืื ืืชื” ืจื•ืฆื” ืœื”ืคื•ืš ืืช ื”ืชื™ืงื™ื•ืช ื”ืืœื” ืœื–ืžื™ื ื•ืช ืœืžืฉืชืžืฉื™ื ืื—ืจื™ื, ืื– ื‘ืชืฆื•ืจื” ืืชื” ืฆืจื™ืš ืœืฉื ื•ืช ืืช "FuseAllowOther": false ืœ-"FuseAllowOther": true. ืื‘ืœ ื–ื” ืœื ื”ื›ืœ. ืื ืืชื” ืžืคืขื™ืœ IPFS ื›ืฉื•ืจืฉ, ื”ื›ืœ ื‘ืกื“ืจ. ื•ืื ืžื˜ืขื ืžืฉืชืžืฉ ืจื’ื™ืœ (ืืคื™ืœื• sudo), ืื– ืชืงื‘ืœ ืฉื’ื™ืื”

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

ื‘ืžืงืจื” ื–ื”, ืขืœื™ืš ืœืขืจื•ืš ืืช /etc/fuse.conf ืขืœ ื™ื“ื™ ื‘ื™ื˜ื•ืœ ื”ื”ืขืจื” ืฉืœ ืฉื•ืจืช #user_allow_other.

ืœืื—ืจ ืžื›ืŸ, ื”ืคืขืœ ืžื—ื“ืฉ ืืช 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 ืžื•ืชืงื ื™ื ื”ืŸ ื‘ืฉืจืช ื—ื™ืฆื•ื ื™ ื•ื”ืŸ ื‘ืื•ืคืŸ ืžืงื•ืžื™. ื‘ืฉืจืช ื—ื™ืฆื•ื ื™, ืื ื• ืžื•ืกื™ืคื™ื ืงื•ื‘ืฅ ื›ืœืฉื”ื• ื•ืžื ืกื™ื ืœืงื‘ืœ ืื•ืชื• ื“ืจืš IPFS ื‘ืื•ืคืŸ ืžืงื•ืžื™ ืขืœ ื™ื“ื™ CID. ืžื” ื™ืงืจื”? ื›ืžื•ื‘ืŸ ืฉืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื”ืฉืจืช ื”ืžืงื•ืžื™ ืœื ื™ื•ื“ืข ื›ืœื•ื ืขืœ ื”ืฉืจืช ื”ื—ื™ืฆื•ื ื™ ืฉืœื ื• ื•ืคืฉื•ื˜ ื™ื ืกื” ืœืžืฆื•ื ืืช ื”ืงื•ื‘ืฅ ืขืœ ื™ื“ื™ CID ืขืœ ื™ื“ื™ "ืฉืื™ืœืช" ื›ืœ ืขืžื™ืชื™ ื”-IPFS ื”ื–ืžื™ื ื™ื ืœื• (ืฉืืชื ื”ื•ื ื›ื‘ืจ ื”ืกืคื™ืง "ืœื”ื›ื™ืจ"). ืืœื” ื‘ืชื•ืจื ื™ืฉืืœื• ืื—ืจื™ื. ื•ื›ืŸ ื”ืœืื”, ืขื“ ืฉื™ื™ืžืฆื ื”ืงื•ื‘ืฅ. ืœืžืขืฉื”, ืื•ืชื• ื“ื‘ืจ ืงื•ืจื” ื›ืืฉืจ ืื ื• ืžื ืกื™ื ืœื”ืขื‘ื™ืจ ืืช ื”ืงื•ื‘ืฅ ื“ืจืš ื”ืฉืขืจ ื”ืจืฉืžื™ ipfs.io. ืื ื™ืชืžื–ืœ ืžื–ืœื›ื, ื”ืงื•ื‘ืฅ ื™ื™ืžืฆื ืชื•ืš ืžืกืคืจ ืฉื ื™ื•ืช. ื•ืื ืœื, ื–ื” ืœื ื™ื™ืžืฆื ืืคื™ืœื• ืชื•ืš ื“ืงื•ืช ืกืคื•ืจื•ืช, ืžื” ืฉืžืฉืคื™ืข ืžืื•ื“ ืขืœ ื ื•ื—ื•ืช ื”ืขื‘ื•ื“ื”. ืื‘ืœ ืื ื—ื ื• ื™ื•ื“ืขื™ื ื”ื™ื›ืŸ ื”ืงื•ื‘ืฅ ื”ื–ื” ื™ื•ืคื™ืข ืœืจืืฉื•ื ื”. ืื– ืœืžื” ืฉืœื ื ื’ื™ื“ ืžื™ื“ ืœืฉืจืช ื”ืžืงื•ืžื™ ืฉืœื ื• "ื—ืคืฉ ืฉื ืงื•ื“ื"? ื›ื›ืœ ื”ื ืจืื”, ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช.

1. ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœืฉืจืช ื”ืžืจื•ื—ืง ื•ืžื—ืคืฉื™ื ื‘ืชืฆื•ืจื” ~/.ipfs/config

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

2. ื”ืคืขืœ ืืช ื”ืกื˜ื˜ื•ืก ืฉืœ sudo service ipfs ื•ื—ืคืฉ ื‘ื• ืขืจื›ื™ Swarm, ืœืžืฉืœ:

Swarm announcing /ip4/ip_ะฒะฐัˆะตะณะพ_ัะตั€ะฒะตั€ะฐ/tcp/4001

3. ืื ื• ืžื•ืกื™ืคื™ื ืžื›ืืŸ ืืช ื”ื›ืชื•ื‘ืช ื”ื›ืœืœื™ืช ืฉืœ ื”ื˜ื•ืคืก "/ip4/ip_your_server/tcp/4001/ipfs/$PeerID".

4. ืœืฆื•ืจืš ืืžื™ื ื•ืช, ื ื ืกื” ืœื”ื•ืกื™ืฃ ื›ืชื•ื‘ืช ื–ื• ืœืขืžื™ืชื™ื ื“ืจืš ื”-webui ื”ืžืงื•ืžื™ ืฉืœื ื•.

IPFS ืœืœื ื›ืื‘ (ืื‘ืœ ื–ื” ืœื ืžื“ื•ื™ืง)

5. ืื ื”ื›ืœ ืชืงื™ืŸ, ืคืชื— ืืช ื”ืชืฆื•ืจื” ื”ืžืงื•ืžื™ืช ~ / .ipfs / config, ืžืฆื ื‘ื• "Bootstrap": [...
ื•ืœื”ื•ืกื™ืฃ ืืช ื”ื›ืชื•ื‘ืช ืฉื”ืชืงื‘ืœื” ืชื—ื™ืœื” ืœืžืขืจืš.

ื”ืคืขืœ ืžื—ื“ืฉ ืืช IPFS.

ื›ืขืช ื ื•ืกื™ืฃ ืืช ื”ืงื•ื‘ืฅ ืœืฉืจืช ื”ื—ื™ืฆื•ื ื™ ื•ื ื ืกื” ืœื‘ืงืฉ ืื•ืชื• ืขืœ ื”ืฉืจืช ื”ืžืงื•ืžื™. ืฆืจื™ืš ืœืขื•ืฃ ืžื”ืจ.

ืื‘ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื–ื• ืขื“ื™ื™ืŸ ืœื ื™ืฆื™ื‘ื”. ืœืžื™ื˜ื‘ ื”ื‘ื ืชื™, ื’ื ืื ื ืฆื™ื™ืŸ ื›ืชื•ื‘ืช ืฉืœ ืขืžื™ืช ื‘-Bootstrap, ipfs ืžืฉื ื” ืืช ืจืฉื™ืžืช ื”ื—ื™ื‘ื•ืจื™ื ื”ืคืขื™ืœื™ื ืขื ืขืžื™ืชื™ื ื‘ืžื”ืœืš ื”ืคืขื•ืœื”. ื‘ื›ืœ ืžืงืจื”, ื”ื“ื™ื•ืŸ ื‘ื›ืš ื•ื‘ืจืฆื•ื ื•ืช ืœื’ื‘ื™ ืืคืฉืจื•ืช ืฆื™ื•ืŸ ืกืขื•ื“ื•ืช ืงื‘ืข ื‘ืขื™ืฆื•ืžื• ื›ืืŸ ื•ื–ื” ื ืจืื” ื›ืžื• ืืžื•ืจ ืœื”ื•ืกื™ืฃ ืงืฆืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช [ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]+

ื ื™ืชืŸ ืœืจืื•ืช ืืช ืจืฉื™ืžืช ื”ืขืžื™ืชื™ื ื”ื ื•ื›ื—ื™ื™ื ื”ืŸ ื‘-webui ื•ื”ืŸ ื‘ืžืกื•ืฃ.

ipfs swarm peers

ื•ืคื” ื•ืฉื ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืืช ื”ื—ื’ื™ื’ื” ืฉืœืš ื‘ืื•ืคืŸ ื™ื“ื ื™.

ipfs swarm connect "/ip4/ip_ะฒะฐัˆะตะณะพ_ัะตั€ะฒะตั€ะฐ/tcp/4001/ipfs/$PeerID"

ืขื“ ืฉืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื• ืชืฉื•ืคืจ, ืชื•ื›ืœ ืœื›ืชื•ื‘ ื›ืœื™ ืœื‘ื“ื™ืงืช ื—ื™ื‘ื•ืจ ืœืขืžื™ืช ื”ืจืฆื•ื™ื” ื•ืื ืœื, ืœื”ื•ืกื™ืฃ ื—ื™ื‘ื•ืจ.

ื ื™ืžื•ืง

ื‘ื™ืŸ ืืœื” ืฉื›ื‘ืจ ืžื›ื™ืจื™ื ืืช IPFS, ื™ืฉ ื’ื ื˜ื™ืขื•ื ื™ื ื‘ืขื“ ื•ื’ื ื ื’ื“ IPFS. ื‘ืขื™ืงืจื•ืŸ, ืืชืžื•ืœ ืืช ื”ื“ื™ื•ืŸ ื•ื”ื ื™ืข ืื•ืชื™ ืœื—ืคื•ืจ ืฉื•ื‘ ื‘-IPFS. ื•ืœื’ื‘ื™ ื”ื“ื™ื•ืŸ ืฉื”ื•ื–ื›ืจ ืœืขื™ืœ: ืื ื™ ืœื ื™ื›ื•ืœ ืœื”ื’ื™ื“ ืฉืื ื™ ืžืชื ื’ื“ ื ื—ืจืฆื•ืช ืœื›ืœ ื˜ื™ืขื•ืŸ ืฉืœ ืืœื” ืฉื“ื™ื‘ืจื• (ืื ื™ ืœื ืžืกื›ื™ื ืจืง ืขื ื”ืขื•ื‘ื“ื” ืฉืžืชื›ื ืชื™ื ื•ื—ืฆื™ ืžืฉืชืžืฉื™ื ื‘-IPFS). ื‘ืื•ืคืŸ ื›ืœืœื™, ืฉื ื™ื”ื ืฆื•ื“ืงื™ื ื‘ื“ืจื›ื ืฉืœื”ื (ื‘ืžื™ื•ื—ื“ ื”ืขืจื” ืœื’ื‘ื™ ืฆ'ืงื™ื ื’ื•ืจื ืœืš ืœื—ืฉื•ื‘). ืื‘ืœ ืื ื ื–ืจื•ืง ืืช ื”ื”ืขืจื›ื” ื”ืžื•ืกืจื™ืช ื•ื”ืžืฉืคื˜ื™ืช, ืžื™ ื™ื™ืชืŸ ื”ืขืจื›ื” ื˜ื›ื ื™ืช ืฉืœ ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ื”ื–ื•? ื‘ืื•ืคืŸ ืื™ืฉื™ ื™ืฉ ืœื™ ืื™ื–ื•ืฉื”ื™ ืชื—ื•ืฉื” ืคื ื™ืžื™ืช ืฉ"ื–ื” ื—ื™ื™ื‘ ืœื”ื™ืขืฉื•ืช ื—ื“ ืžืฉืžืขื™ืช, ื™ืฉ ืœื–ื” ืกื™ื›ื•ื™ื™ื ืžืกื•ื™ืžื™ื". ืื‘ืœ ืœืžื” ื‘ื“ื™ื•ืง, ืื™ืŸ ื ื™ืกื•ื— ื‘ืจื•ืจ. ื›ืื™ืœื•, ืื ืžืกืชื›ืœื™ื ืขืœ ื”ื›ืœื™ื ื”ืจื™ื›ื•ื–ื™ื™ื ื”ืงื™ื™ืžื™ื, ืื– ืžื‘ื—ื™ื ื•ืช ืจื‘ื•ืช ื”ื ืจื—ื•ืงื™ื (ื™ืฆื™ื‘ื•ืช, ืžื”ื™ืจื•ืช, ื™ื›ื•ืœืช ื ื™ื”ื•ืœ ื•ื›ื•'). ืขื ื–ืืช, ื™ืฉ ืœื™ ืžื—ืฉื‘ื” ืื—ืช ืฉื ืจืื™ืช ื”ื’ื™ื•ื ื™ืช ื•ืืฉืจ ื‘ืงื•ืฉื™ ื ื™ืชืŸ ืœื™ื™ืฉื ืœืœื ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช ื›ืืœื”. ืื ื™ ื›ืžื•ื‘ืŸ ืžืชื ื“ื ื“ ื—ื–ืง ืžื“ื™, ืื‘ืœ ื”ื™ื™ืชื™ ืžื ืกื— ืืช ื–ื” ื›ืš: ื™ืฉ ืœืฉื ื•ืช ืืช ืขืงืจื•ืŸ ื”ืคืฆืช ื”ืžื™ื“ืข ื‘ืื™ื ื˜ืจื ื˜.

ื”ืจืฉื” ืœื™ ืœื”ืกื‘ื™ืจ. ืื ืชื—ืฉื•ื‘ ืขืœ ื–ื”, ืขื›ืฉื™ื• ื™ืฉ ืœื ื• ืžื™ื“ืข ืฉืžื•ืคืฅ ืขืœ ืคื™ ื”ืขื™ืงืจื•ืŸ "ืื ื™ ืžืงื•ื•ื” ืฉืžื™ ืฉื ืชืชื™ ืื•ืชื• ื™ื’ืŸ ืขืœื™ื• ื•ื”ื•ื ืœื ื™ืื‘ื“ ืื• ื™ืชืงื‘ืœ ืขืœ ื™ื“ื™ ืžื™ ืฉืœื ื ื•ืขื“ ืœื•". ื›ื“ื•ื’ืžื”, ืงืœ ืœืฉืงื•ืœ ืฉื™ืจื•ืชื™ ื“ื•ืืจ ืฉื•ื ื™ื, ืื—ืกื•ืŸ ืขื ืŸ ื•ื›ื•'. ื•ื‘ืžื” ืื ื—ื ื• ืžืกื™ื™ืžื™ื? ื‘ืจื›ื–ืช Habrรฉ ืื‘ื˜ื—ืช ืžื™ื“ืข ื ืžืฆื ืขืœ ื”ืงื• ื”ืจืืฉื•ืŸ ื•ื›ืžืขื˜ ื›ืœ ื™ื•ื ืื ื• ืžืงื‘ืœื™ื ื—ื“ืฉื•ืช ืขืœ ื“ืœื™ืคื” ืขื•ืœืžื™ืช ื ื•ืกืคืช. ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ื›ืœ ื”ื“ื‘ืจื™ื ื”ืžืขื ื™ื™ื ื™ื ื‘ื™ื•ืชืจ ืžืคื•ืจื˜ื™ื ื‘<ืื™ืจื•ื ื™ื”> ื ืคืœืื” ืžืืžืจ ื”ืงื™ืฅ ื›ืžืขื˜ ื ื’ืžืจ. ื›ืžืขื˜ ื•ืœื ื ื•ืชืจื• ื ืชื•ื ื™ื ืฉื“ืœืคื•. ื›ืœื•ืžืจ, ืขื ืงื™ื•ืช ื”ืื™ื ื˜ืจื ื˜ ื”ืขื™ืงืจื™ื•ืช ื ื”ื™ื•ืช ื’ื“ื•ืœื•ืช ื™ื•ืชืจ, ื”ืŸ ืฆื•ื‘ืจื•ืช ืขื•ื“ ื•ืขื•ื“ ืžื™ื“ืข, ื•ื”ื“ืœืคื•ืช ื›ืืœื” ื”ืŸ ืžืขื™ืŸ ืคื™ืฆื•ืฆื™ ืžื™ื“ืข ืื˜ื•ืžื™ื™ื. ื–ื” ืžืขื•ืœื ืœื ืงืจื” ื‘ืขื‘ืจ, ื•ื”ื ื” ื–ื” ืฉื•ื‘. ื™ื—ื“ ืขื ื–ืืช, ืœืžืจื•ืช ืฉืจื‘ื™ื ืžื‘ื™ื ื™ื ืฉื™ืฉ ืกื™ื›ื•ื ื™ื, ื”ื ื™ืžืฉื™ื›ื• ืœืชืช ืืžื•ืŸ ื‘ื ืชื•ื ื™ื ืฉืœื”ื ืœื—ื‘ืจื•ืช ืฆื“ ืฉืœื™ืฉื™. ืจืืฉื™ืช, ืื™ืŸ ื”ืจื‘ื” ืืœื˜ืจื ื˜ื™ื‘ื•ืช, ื•ืฉื ื™ืช, ื”ื ืžื‘ื˜ื™ื—ื™ื ืฉืกื™ื“ืจื• ืืช ื›ืœ ื”ื—ื•ืจื™ื ื•ื–ื” ืœื ื™ืงืจื” ืฉื•ื‘.

ืื™ื–ื• ืืคืฉืจื•ืช ืื ื™ ืจื•ืื”? ื ืจืื” ืœื™ ืฉื‘ื”ืชื—ืœื” ืฆืจื™ืš ืœื”ืคื™ืฅ ื ืชื•ื ื™ื ื‘ื’ืœื•ื™. ืื‘ืœ ืคืชื™ื—ื•ืช ื‘ืžืงืจื” ื”ื–ื” ืœื ืื•ืžืจืช ืฉื”ื›ืœ ืฆืจื™ืš ืœื”ื™ื•ืช ืงืœ ืœืงืจื™ืื”. ืื ื™ ืžื“ื‘ืจ ืขืœ ื”ืคืชื™ื—ื•ืช ืฉืœ ื”ืื—ืกื•ืŸ ื•ื”ื”ืคืฆื”, ืื‘ืœ ืœื ืขืœ ืคืชื™ื—ื•ืช ืžื•ื—ืœื˜ืช ื‘ืงืจื™ืื”. ืื ื™ ืžื ื™ื— ืฉืžื™ื“ืข ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ืคืฅ ืขื ืžืคืชื—ื•ืช ืฆื™ื‘ื•ืจื™ื™ื. ืื—ืจื™ ื”ื›ืœ, ื”ืขื™ืงืจื•ืŸ ืฉืœ ืžืคืชื—ื•ืช ืฆื™ื‘ื•ืจื™ื™ื/ืคืจื˜ื™ื™ื ื›ื‘ืจ ื™ืฉืŸ, ื›ืžืขื˜ ื›ืžื• ื”ืื™ื ื˜ืจื ื˜. ืื ื”ืžื™ื“ืข ืื™ื ื• ืกื•ื“ื™ ื•ืžื™ื•ืขื“ ืœืžืขื’ืœ ืจื—ื‘, ืื– ื”ื•ื ืžื•ื ื— ืžื™ื“ ืขื ืžืคืชื— ืฆื™ื‘ื•ืจื™ (ืื‘ืœ ืขื“ื™ื™ืŸ ื‘ืฆื•ืจื” ืžื•ืฆืคื ืช, ื›ืœ ืื—ื“ ื™ื›ื•ืœ ืœืคืขื ื— ืื•ืชื• ืขื ื”ืžืคืชื— ื”ื–ืžื™ืŸ). ื•ืื ืœื, ืื– ื”ื•ื ืžื•ื ื— ืœืœื ืžืคืชื— ืฆื™ื‘ื•ืจื™, ื•ื”ืžืคืชื— ืขืฆืžื• ืžื•ืขื‘ืจ ืœืžื” ืฉืืžื•ืจ ืœืงื‘ืœ ื’ื™ืฉื” ืœืžื™ื“ืข ื”ื–ื”. ื™ื—ื“ ืขื ื–ืืช, ืžื™ ืฉืฆืจื™ืš ืœืงืจื•ื ืื•ืชื• ืฆืจื™ืš ืฉื™ื”ื™ื” ืœื• ืจืง ืžืคืชื—, ื•ื”ื™ื›ืŸ ืœื”ืฉื™ื’ ืืช ื”ืžื™ื“ืข ื”ื–ื”, ื”ื•ื ืœื ื‘ืืžืช ืฆืจื™ืš ืœื”ืžืจื™ื - ื”ื•ื ืคืฉื•ื˜ ืฉื•ืœืฃ ืื•ืชื• ืžื”ืจืฉืช (ื–ื” ื”ืขื™ืงืจื•ืŸ ื”ื—ื“ืฉ ืฉืœ ื”ืคืฆื” ืœืคื™ ืชื•ื›ืŸ, ืœื ืœืคื™ ื›ืชื•ื‘ืช).

ืœืคื™ื›ืš, ืขื‘ื•ืจ ื”ืชืงืคื” ื”ืžื•ื ื™ืช, ื”ืชื•ืงืคื™ื ื™ืฆื˜ืจื›ื• ืœื”ืฉื™ื’ ืžืกืคืจ ืขืฆื•ื ืฉืœ ืžืคืชื—ื•ืช ืคืจื˜ื™ื™ื, ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื–ื” ืœื ื™ื™ืขืฉื” ื‘ืžืงื•ื ืื—ื“. ื”ืžืฉื™ืžื” ื”ื–ื•, ื›ืคื™ ืฉืื ื™ ืจื•ืื” ืื•ืชื”, ืงืฉื” ื™ื•ืชืจ ืžืคืจื™ืฆื” ืœืฉื™ืจื•ืช ืžืกื•ื™ื.

ื•ื”ื ื” ื‘ืขื™ื” ื ื•ืกืคืช ืกื’ื•ืจื”: ืื™ืฉื•ืจ ืžื—ื‘ืจ. ืขื›ืฉื™ื• ื‘ืื™ื ื˜ืจื ื˜ ืืชื” ื™ื›ื•ืœ ืœืžืฆื•ื ืฆื™ื˜ื•ื˜ื™ื ืจื‘ื™ื ืฉื ื›ืชื‘ื• ืขืœ ื™ื“ื™ ื”ื—ื‘ืจื™ื ืฉืœื ื•. ืื‘ืœ ืื™ืคื” ื”ืขืจื•ื‘ื” ืฉื”ื ื”ื ืฉื›ืชื‘ื• ืื•ืชื? ืขื›ืฉื™ื•, ืื ื›ืœ ืจืฉื•ืžื” ื›ื–ื• ื”ื™ื™ืชื” ืžืœื•ื•ื” ื‘ื—ืชื™ืžื” ื“ื™ื’ื™ื˜ืœื™ืช, ื–ื” ื™ื”ื™ื” ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ. ื•ื–ื” ืœื ืžืฉื ื” ื”ื™ื›ืŸ ื ืžืฆื ื”ืžื™ื“ืข ื”ื–ื”, ื”ืขื™ืงืจ ื”ื•ื ื”ื—ืชื™ืžื”, ืฉื›ืžื•ื‘ืŸ ืงืฉื” ืœื–ื™ื™ืฃ.

ื•ื”ื ื” ืžื” ืฉืžืขื ื™ื™ืŸ ื›ืืŸ: 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 ื•ืคืจื•ื™ืงื˜ื™ื ืœื“ื•ื’ืžื” ื›ื’ื•ืŸ orbit-dbืฉืขืœื™ื• ื–ื” ืขื•ื‘ื“ orbit.chat. ื›ืœื•ืžืจ, ืชื™ืื•ืจื˜ื™ืช, ื›ืœ ืžื›ืฉื™ืจ (ื ื™ื™ื“ ื•ืœื ืจืง) ื™ื›ื•ืœ ืœื”ืฆื˜ื™ื™ื“ ื‘ืงืœื•ืช ื‘ืžื›ื•ื ื•ืช ื”ืฆืคื ื”-ืคืขื ื•ื— ืžืฉืœื•. ื‘ืžืงืจื” ื”ื–ื”, ื ื•ืชืจ ืจืง ืœื›ื•ืœื ืœื“ืื•ื’ ืœืฉืžื•ืจ ืืช ื”ืžืคืชื—ื•ืช ื”ืคืจื˜ื™ื™ื ืฉืœื•, ื•ื›ืœ ืื—ื“ ื™ื”ื™ื” ืื—ืจืื™ ืขืœ ื”ืื‘ื˜ื—ื” ืฉืœื•, ื•ืœื ื™ื”ื™ื” ื‘ืŸ ืขืจื•ื‘ื” ืฉืœ ื’ื•ืจื ืื ื•ืฉื™ ืื—ืจ ื‘ืื™ื–ื• ืขื ืงื™ืช ืื™ื ื˜ืจื ื˜ ืกื•ืคืจ-ืคื•ืคื•ืœืจื™ืช.

ืจืง ืžืฉืชืžืฉื™ื ืจืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืชืฃ ื‘ืกืงืจ. ืœื”ืชื—ื‘ืจื‘ื‘ืงืฉื”.

ืขืœ IPFS ืฉืžืขืชื ื‘ืขื‘ืจ?

  • ืžืขื•ืœื ืœื ืฉืžืขืชื™ ืขืœ IPFS, ืื‘ืœ ื–ื” ื ืจืื” ืžืขื ื™ื™ืŸ

  • ืœื ืฉืžืขืชื™ ื•ืœื ืจื•ืฆื” ืœืฉืžื•ืข

  • ืฉืžืข ืื‘ืœ ืœื ืžืขื•ื ื™ื™ืŸ

  • ืฉืžืข, ืื‘ืœ ืœื ื”ื‘ื™ืŸ, ืื‘ืœ ืขื›ืฉื™ื• ื–ื” ื ืจืื” ืžืขื ื™ื™ืŸ

  • ืื ื™ ืžืฉืชืžืฉ ื‘-IPFS ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘ืžืฉืš ื–ืžืŸ ืจื‘.

69 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 13 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”