๊ณ ํ†ต ์—†๋Š” IPFS(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ •ํ™•ํ•˜์ง€ ์•Š์Œ)

๊ณ ํ†ต ์—†๋Š” IPFS(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ •ํ™•ํ•˜์ง€ ์•Š์Œ)

Habrรฉ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  IPFS์— ๊ด€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ธฐ์‚ฌ.

์ œ๊ฐ€ ์ด ๋ถ„์•ผ์˜ ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๋ฐ”๋กœ ๋ฐํžˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ์ด ๊ธฐ์ˆ ์— ์—ฌ๋Ÿฌ ๋ฒˆ ๊ด€์‹ฌ์„ ๋ณด์˜€์ง€๋งŒ, ์ด ๊ธฐ์ˆ ์„ ๊ฐ€์ง€๊ณ  ๋†€๋ ค๊ณ  ํ•˜๋ฉด ์ข…์ข… ์•ฝ๊ฐ„์˜ ๊ณ ํ†ต์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ €๋Š” ๋‹ค์‹œ ์‹คํ—˜์„ ์‹œ์ž‘ํ–ˆ๊ณ  ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ๋ช‡ ๊ฐ€์ง€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ IPFS ์„ค์น˜ ํ”„๋กœ์„ธ์Šค์™€ ์ผ๋ถ€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“  ๊ฒƒ์€ ์šฐ๋ถ„ํˆฌ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ๋Š” ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

IPFS๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋†“์น˜์…จ๋‹ค๋ฉด ์—ฌ๊ธฐ์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. habr.com/en/post/314768

์„ค์น˜

์‹คํ—˜์˜ ์ˆœ์ˆ˜์„ฑ์„ ์œ„ํ•ด ์™ธ๋ถ€ ์„œ๋ฒ„์— ์ฆ‰์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ชจ๋“œ์™€ ์›๊ฒฉ ์ž‘์—… ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•จ์ •์„ ๊ณ ๋ คํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์›ํ•œ๋‹ค๋ฉด ์˜ค๋žซ๋™์•ˆ ์ฒ ๊ฑฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ์ด๋™

๊ณต์‹ ๋ฌธ์„œ
ํ˜„์žฌ ๋ฒ„์ „์„ ํ™•์ธํ•˜์„ธ์š”. golang.org/dl

์ฐธ๊ณ : IPFS๋ฅผ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ 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๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ

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 ์ธํ„ฐํŽ˜์ด์Šค์— ์•ก์„ธ์Šคํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ:5001/webui/). ๊ทธ๋Ÿฌ๋‚˜ ์™ธ๋ถ€ ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ธํ„ฐ๋„ท์— ๋‹ซํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ดํŠธ์›จ์ด XNUMX:

  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

์œ„์˜ ์ถ”๊ฐ€ ์ •๋ณด ํŒŒ์ผ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

http://ะดะพะผะตะฝ_ะธะปะธ_ip_ัะตั€ะฒะตั€ะฐ:5001/webui/

์›น ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ด๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

webui๋ฅผ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ํ†ต๊ณ„ ๋ณด๊ธฐ๋ฅผ ํฌํ•จํ•˜์—ฌ IPFS ์„ค์ •์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์•„๋ž˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•ด ์ง์ ‘ ๊ตฌ์„ฑ ์˜ต์…˜์„ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์ด ์ •ํ™•ํžˆ ์–ด๋””์— ์žˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์›น ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๋” ์–ด๋ ค์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์›น ์ธํ„ฐํŽ˜์ด์Šค ์„ค์ •

์—ฌ๊ธฐ์— ์•ฝ XNUMX์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ ์ฒซ ๋ฒˆ์งธ ํ•จ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์™ธ๋ถ€ ์„œ๋ฒ„์— IPFS๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ IPFS๋ฅผ ๋กœ์ปฌ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ /webui๋กœ ์ด๋™ํ•˜๋ฉด ์—ฐ๊ฒฐ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ณ ํ†ต ์—†๋Š” IPFS(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ •ํ™•ํ•˜์ง€ ์•Š์Œ)

์‚ฌ์‹ค webui๋Š” ๋งค์šฐ ๋ชจํ˜ธํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ์„œ๋ฒ„์˜ API์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ก  ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ). ๊ฑฐ๊ธฐ์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๋กœ์ปฌ ๊ฒŒ์ดํŠธ์›จ์ด์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. IPFS๋ฅผ ๋กœ์ปฌ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ webui๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์„œ๋ฒ„์—์„œ webui๋ฅผ ์—ด๋”๋ผ๋„ ์™ธ๋ถ€๊ฐ€ ์•„๋‹Œ ๋กœ์ปฌ IPFS๋กœ๋งŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ–ˆ์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ์™ธ๋ถ€ ์„œ๋ฒ„์—์„œ ๊ทธ ํŒŒ์ผ์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹คโ€ฆ

๋กœ์ปฌ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด ์—ฐ๊ฒฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๋Š” webui์—์„œ๋„ ํ‘œ์‹œ๋˜๋Š” 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": false๋ฅผ "FuseAllowOther": true๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์ „๋ถ€๋Š” ์•„๋‹™๋‹ˆ๋‹ค. IPFS๋ฅผ ๋ฃจํŠธ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž(Sudo๋„ ํฌํ•จ)๋ฅผ ๋Œ€์‹ ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ? ๋ฌผ๋ก  ๋กœ์ปฌ ์„œ๋ฒ„๋Š” ์™ธ๋ถ€ ์„œ๋ฒ„์— ๋Œ€ํ•ด ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  IPFS ํ”ผ์–ด(์ด๋ฏธ "์•Œ๊ฒŒ ๋œ")์—๊ฒŒ "์งˆ๋ฌธ"ํ•˜์—ฌ CID๋กœ ํŒŒ์ผ์„ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ฐจ๋ก€๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฌผ์–ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ณต์‹ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ ์–ป์œผ๋ ค๊ณ  ํ•  ๋•Œ๋„ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค ipfs.io. ์šด์ด ์ข‹์œผ๋ฉด ๋ช‡ ์ดˆ ์•ˆ์— ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ช‡ ๋ถ„ ํ›„์—๋„ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•„ ์ž‘์—… ํŽธ์˜์„ฑ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด ํŒŒ์ผ์ด ์ฒ˜์Œ์œผ๋กœ ๋‚˜ํƒ€๋‚  ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋กœ์ปฌ ์„œ๋ฒ„์— "๋จผ์ € ๊ฒ€์ƒ‰ํ•˜์„ธ์š”"๋ผ๊ณ  ์ฆ‰์‹œ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด ์–ด๋–จ๊นŒ์š”? ๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

1. ์›๊ฒฉ ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜์—ฌ ๊ตฌ์„ฑ์—์„œ ~/.ipfs/config๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

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

2. sudo service ipfs status๋ฅผ ์‹คํ–‰ํ•˜๊ณ  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๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์—๋งŒ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘˜ ๋‹ค ๋‚˜๋ฆ„๋Œ€๋กœ ์˜ณ์Šต๋‹ˆ๋‹ค (ํŠนํžˆ ์ˆ˜ํ‘œ์— ๋Œ€ํ•œ ์˜๊ฒฌ ์ƒ๊ฐํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค). ํ•˜์ง€๋งŒ ๋„๋•์ , ๋ฒ•์  ํ‰๊ฐ€๋ฅผ ๋ฒ„๋ฆฌ๋ฉด ๋ˆ„๊ฐ€ ์ด ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๊ธฐ์ˆ ์  ํ‰๊ฐ€๋ฅผ ํ•˜๊ฒŒ ๋ ๊นŒ์š”? ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” "์ด๊ฒƒ์€ ๋ถ„๋ช…ํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋ฉฐ ํ™•์‹คํ•œ ์ „๋ง์ด ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ผ์ข…์˜ ๋‚ด๋ฉด์ ์ธ ๋Š๋‚Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™œ ์ •ํ™•ํžˆ ๋ช…ํ™•ํ•œ ๊ณต์‹์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ธฐ์กด ์ค‘์•™ ์ง‘์ค‘์‹ ๋„๊ตฌ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์—ฌ๋Ÿฌ ์ธก๋ฉด(์•ˆ์ •์„ฑ, ์†๋„, ๊ด€๋ฆฌ ํšจ์œจ์„ฑ ๋“ฑ)์—์„œ ํ›จ์”ฌ ์•ž์„œ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋ถ„์‚ฐํ˜• ์‹œ์Šคํ…œ ์—†์ด๋Š” ๊ฑฐ์˜ ๊ตฌํ˜„๋  ์ˆ˜ ์—†๊ณ  ํƒ€๋‹นํ•ด ๋ณด์ด๋Š” ํ•œ ๊ฐ€์ง€ ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋„ˆ๋ฌด ์„ธ๊ฒŒ ํœ˜๋‘๋ฅด๊ณ  ์žˆ์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๊ณต์‹ํ™”ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—์„œ ์ •๋ณด๋ฅผ ์ „ํŒŒํ•˜๋Š” ์›์น™์ด ๋ฐ”๋€Œ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” โ€œ๋‚ด๊ฐ€ ์ค€ ์‚ฌ๋žŒ์ด ์ง€์ผœ์ฃผ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ, ์˜๋„ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์ด ์žƒ์–ด๋ฒ„๋ฆฌ๊ฑฐ๋‚˜ ๋ฐ›์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹คโ€๋Š” ์›์น™์— ๋”ฐ๋ผ ์ •๋ณด๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์–‘ํ•œ ์ด๋ฉ”์ผ ์„œ๋น„์Šค, ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ์„ ๊ณ ๋ คํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? ํ—ˆ๋ธŒ ์˜จ ํ•˜๋ธŒ๋ ˆ ์ •๋ณด ๋ณด์•ˆ ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ผ์ธ์— ์žˆ์œผ๋ฉฐ ๊ฑฐ์˜ โ€‹โ€‹๋งค์ผ ์šฐ๋ฆฌ๋Š” ๋˜ ๋‹ค๋ฅธ ๊ธ€๋กœ๋ฒŒ ์œ ์ถœ์— ๋Œ€ํ•œ ๋‰ด์Šค๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ๋“ค์€ ๋ชจ๋‘ <์•„์ด๋Ÿฌ๋‹ˆํ•˜๊ฒŒ๋„> ๋ฉ‹์ง„ ํ•ญ๋ชฉ์— ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ ์—ฌ๋ฆ„์ด ๊ฑฐ์˜ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์œ ์ถœ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฑฐ์˜ ๋‚จ์•„ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ์ฆ‰, ์ฃผ์š” ์ธํ„ฐ๋„ท ๊ฑฐ๋Œ€ ๊ธฐ์—…์€ ์ ์  ๋” ์ปค์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ ์  ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ถ•์ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ์œ ์ถœ์€ ์ผ์ข…์˜ ์ •๋ณด ์›์ž ํญ๋ฐœ์ž…๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ด๋Ÿฐ ์ผ์ด ์—†์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์—๋„ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์œ„ํ—˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ณ„์†ํ•ด์„œ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œXNUMX์ž ํšŒ์‚ฌ์— ๋งก๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒซ์งธ, ๋Œ€์•ˆ์ด ๋งŽ์ง€ ์•Š๊ณ , ๋‘˜์งธ, ๋ชจ๋“  ๊ตฌ๋ฉ์„ ๋ฉ”์› ์œผ๋ฉฐ ์ด๋Ÿฐ ์ผ์ด ๋‹ค์‹œ๋Š” ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์•ฝ์†ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์˜ต์…˜์ด ํ‘œ์‹œ๋˜๋‚˜์š”? ์ฒ˜์Œ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ฐฐํฌ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฒฝ์šฐ ๊ฐœ๋ฐฉ์„ฑ์ด ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ฝ๊ธฐ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ €์žฅ๊ณผ ์œ ํ†ต์˜ ๊ฐœ๋ฐฉ์„ฑ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด์ง€ ๋…์„œ์˜ ์™„์ „ํ•œ ๊ฐœ๋ฐฉ์„ฑ์„ ๋งํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ •๋ณด๊ฐ€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๊ณต๊ฐœ/๊ฐœ์ธ ํ‚ค์˜ ์›์น™์€ ์ด๋ฏธ ์ธํ„ฐ๋„ท๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ณด๊ฐ€ ๊ธฐ๋ฐ€์ด ์•„๋‹ˆ๋ฉฐ ํญ๋„“์€ ๋ฒ”์œ„๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฆ‰์‹œ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ์•”ํ˜ธํ™”๋œ ํ˜•์‹์ด๋ฏ€๋กœ ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ณต๊ฐœ ํ‚ค ์—†์ด ๋ฐฐ์น˜๋˜๊ณ  ํ‚ค ์ž์ฒด๋Š” ์ด ์ •๋ณด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์—, ๊ทธ๊ฒƒ์„ ์ฝ์–ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ์€ ํ‚ค๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด ์ •๋ณด๋ฅผ ์–ด๋””์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ์‹ค์ œ๋กœ ๊ธ‰๋“ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋‹จ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค(์ด๊ฒƒ์€ ์ฝ˜ํ…์ธ ๋ณ„ ๋ฐฐํฌ์˜ ์ƒˆ๋กœ์šด ์›์น™์ž…๋‹ˆ๋‹ค. ์ฃผ์†Œ).

๋”ฐ๋ผ์„œ ๋Œ€๊ทœ๋ชจ ๊ณต๊ฒฉ์˜ ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ž๋Š” ์—„์ฒญ๋‚œ ์ˆ˜์˜ ๊ฐœ์ธ ํ‚ค๋ฅผ ํ™•๋ณดํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ํ•œ ๊ณณ์—์„œ ์™„๋ฃŒ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ณด๊ธฐ์— ์ด ์ž‘์—…์€ ํŠน์ • ์„œ๋น„์Šค๋ฅผ ํ•ดํ‚นํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ €์ž ํ™•์ธ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ธํ„ฐ๋„ท์—์„œ ์šฐ๋ฆฌ ์นœ๊ตฌ๋“ค์ด ์“ด ๋งŽ์€ ์ธ์šฉ๋ฌธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์„ ์“ด ์‚ฌ๋žŒ์ด ๋ฐ”๋กœ ๊ทธ๋“ค์ด๋ผ๋Š” ๋ณด์žฅ์€ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ? ์ด์ œ ๊ทธ๋Ÿฌํ•œ ๊ฐ ๊ธฐ๋ก์— ๋””์ง€ํ„ธ ์„œ๋ช…์ด ์ˆ˜๋ฐ˜๋œ๋‹ค๋ฉด ํ›จ์”ฌ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ •๋ณด๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์„œ๋ช…์ด๋ฉฐ, ๋ฌผ๋ก  ์œ„์กฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํฅ๋ฏธ๋กœ์šด ์ ์€ 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๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๊ณณ ๊ถค๋„.์ฑ„ํŒ…. ์ฆ‰, ์ด๋ก ์ ์œผ๋กœ ๊ฐ ์žฅ์น˜(๋ชจ๋ฐ”์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ)์—๋Š” ์ž์ฒด ์•”ํ˜ธํ™”-๋ณตํ˜ธํ™” ์‹œ์Šคํ…œ์„ ์‰ฝ๊ฒŒ ์žฅ์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐœ์ธ ํ‚ค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ๋งŒ ๋‚จ์•„ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์‚ฌ๋žŒ์€ ์ž์‹ ์˜ ๋ณด์•ˆ์— ๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ์Šˆํผ ์ธ๊ธฐ ์ธํ„ฐ๋„ท ๊ฑฐ๋Œ€ ๊ธฐ์—…์—์„œ ๋‹ค๋ฅธ ์ธ์  ์š”์†Œ์˜ ์ธ์งˆ์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

IPFS์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์žˆ๋‚˜์š”?

  • IPFS์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์—†์ง€๋งŒ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋“ค์–ด๋ณธ ์ ๋„ ์—†๊ณ  ๋“ฃ๊ณ  ์‹ถ์ง€๋„ ์•Š์€

  • ๋“ค์—ˆ์ง€๋งŒ ๊ด€์‹ฌ์ด ์—†์Œ

  • ๋“ค์—ˆ์ง€๋งŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ํฅ๋ฏธ๋กœ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค.

  • ์ €๋Š” ์˜ค๋žซ๋™์•ˆ IPFS๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ด ์™”์Šต๋‹ˆ๋‹ค.

69๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 13๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€