๋ถ์ฐํ ํ์ผ ์์คํ 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๋ ์๋ฒ์ ์ฐ๊ฒฐ๋์ง ์์ ์ฌ์ดํธ์ ์ด์์ ๊ตฌ์ฑํ๊ฑฐ๋ ๋ถ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฑ ์๋ก์ด ์๋น์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru