๊ธ€๋กœ๋ฒŒ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ IPFS 0.8 ์ถœ์‹œ

๋ถ„์‚ฐํ˜• ํŒŒ์ผ ์‹œ์Šคํ…œ IPFS 0.8(InterPlanetary File System)์˜ ์ถœ์‹œ๊ฐ€ ๋ฐœํ‘œ๋˜์–ด ์ฐธ๊ฐ€์ž ์‹œ์Šคํ…œ์—์„œ ํ˜•์„ฑ๋œ P2P ๋„คํŠธ์›Œํฌ ํ˜•ํƒœ๋กœ ๋ฐฐํฌ๋œ ๊ธ€๋กœ๋ฒŒ ๋ฒ„์ „ ํŒŒ์ผ ์ €์žฅ์†Œ๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. IPFS๋Š” Git, BitTorrent, Kademlia, SFS ๋ฐ Web๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ ์ด์ „์— ๊ตฌํ˜„๋œ ์•„์ด๋””์–ด๋ฅผ ๊ฒฐํ•ฉํ•˜๋ฉฐ Git ๊ฐœ์ฒด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋‹จ์ผ BitTorrent "๊ตฐ์ง‘"(๋ฐฐํฌ์— ์ฐธ์—ฌํ•˜๋Š” ํ”ผ์–ด)๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. IPFS๋Š” ์œ„์น˜๋‚˜ ์ž„์˜์˜ ์ด๋ฆ„์ด ์•„๋‹Œ ๋‚ด์šฉ์„ ๊ธฐ์ค€์œผ๋กœ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌ๋ณ„๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ๊ตฌํ˜„ ์ฝ”๋“œ๋Š” Go๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ฐ MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—์„œ:

  • ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ณ ์ •์„ ์œ„ํ•œ ์™ธ๋ถ€ ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ณ ์ • - ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ๋“œ์— ๋ฐ”์ธ๋”ฉ). ์„œ๋น„์Šค์— ํ• ๋‹น๋œ ๋ฐ์ดํ„ฐ์—๋Š” ์ฝ˜ํ…์ธ  ์‹๋ณ„์ž(CID)์™€ ๋‹ค๋ฅธ ๋ณ„๋„์˜ ์ด๋ฆ„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ CID๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ณ ์ • ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด go-ipfs์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IPFS Pinning Service API๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์—์„œ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด "ipfs pin remote" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata โ€”service= mysrv โ€”์ด๋ฆ„= myfile ipfs pin ์›๊ฒฉ ls โ€”service=mysrv โ€”name=myfile ipfs ํ•€ ์›๊ฒฉ rm โ€”service=mysrv โ€”name=myfile
  • ๋กœ์ปฌ ๋…ธ๋“œ์—์„œ์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ(pinning) ๋ฐ ์–ธํ•€(unpinning) ์ž‘์—…์ด ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ธ๋”ฉ ์ˆ˜๊ฐ€ ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ์ถ”๋ก  ๋˜๋Š” ์ˆ˜์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ์ด ํŠนํžˆ ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค.
  • ๊ฒŒ์ดํŠธ์›จ์ด์— ๋Œ€ํ•œ "https://" ๋งํฌ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ DNSLink ์ด๋ฆ„์„ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ „์— ์ง€์›๋˜์—ˆ๋˜ ๋งํฌ "https://dweb.link/ipns/en.wikipedia-on-ipfs.org" ์™ธ์— "ipns://en.wikipedia-on-ipfs.org"๋ผ๋Š” ์ด๋ฆ„์„ ๋กœ๋“œํ•˜๋ ค๋ฉด ", ์ด์ œ " https://en-wikipediaโ€”onโ€”ipfs-org.ipns.dweb.link" ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์›๋ž˜ ์ด๋ฆ„์˜ ์ ์€ "-" ๋ฌธ์ž๋กœ ๋ฐ”๋€Œ๊ณ  ๊ธฐ์กด " -โ€ ๋ฌธ์ž๋Š” ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ๋ฌธ์ž๋กœ ์ด์Šค์ผ€์ดํ”„๋ฉ๋‹ˆ๋‹ค.
  • QUIC ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด UDP์— ๋Œ€ํ•œ ์ˆ˜์‹  ๋ฒ„ํผ๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IPFS์—์„œ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ๋งํฌ๋Š” ํ•ด๋‹น ์ฝ˜ํ…์ธ ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜๋ฉฐ ์ฝ˜ํ…์ธ ์˜ ์•”ํ˜ธํ™” ํ•ด์‹œ๋ฅผ ํฌํ•จํ•œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์„ธ์š”. ํŒŒ์ผ ์ฃผ์†Œ๋Š” ์ž„์˜๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์œผ๋ฉฐ, ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•œ ํ›„์—๋งŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(์ด์ „ ๋ฒ„์ „์€ ๋™์ผํ•œ ์ฃผ์†Œ์— ์œ ์ง€๋˜๊ณ  ์ƒˆ ๋ฒ„์ „์€ ํŒŒ์ผ ๋‚ด์šฉ์˜ ํ•ด์‹œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ์‹๋ณ„์ž๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜์—ฌ ๋งค๋ฒˆ ์ƒˆ ๋งํฌ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฒ„์ „์˜ ํŒŒ์ผ(IPNS)์„ ๊ณ ๋ คํ•œ ์˜๊ตฌ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ ๋˜๋Š” ๊ธฐ์กด FS ๋ฐ ์œ ์ถ”์— ๋”ฐ๋ฅธ ๋ณ„์นญ ํ• ๋‹น ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. DNS(MFS(๋ณ€๊ฒฝ ๊ฐ€๋Šฅ ํŒŒ์ผ ์‹œ์Šคํ…œ) ๋ฐ DNSLink).

BitTorrent์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋Š” ์ค‘์•™ ๋…ธ๋“œ์— ๋ฌถ์ด์ง€ ์•Š๊ณ  P2P ๋ชจ๋“œ์—์„œ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ฐธ๊ฐ€์ž์˜ ์‹œ์Šคํ…œ์— ์ง์ ‘ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ฝ˜ํ…์ธ ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์€ ์ด ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฐธ๊ฐ€์ž๋ฅผ ์ฐพ์•„ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์˜ ์ผ๋ถ€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ž์‹ ์˜ ์‹œ์Šคํ…œ์— ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ ์ฐธ๊ฐ€์ž๋Š” ์ž๋™์œผ๋กœ ๋ฐฐํฌ ํฌ์ธํŠธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ์˜ ๋„คํŠธ์›Œํฌ ์ฐธ๊ฐ€์ž๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ถ„์‚ฐ ํ•ด์‹œ ํ…Œ์ด๋ธ”(DHT)์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ IPFS FS์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ FUSE ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ FS /ipfs๋ฅผ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ธ€๋กœ๋ฒŒ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ IPFS 0.8 ์ถœ์‹œ


์ถœ์ฒ˜ : opennet.ru

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