![[ããŒãããããŒã]](https://habrastorage.org/getpro/habr/post_images/590/ffa/1d9/590ffa1d92f892c50c2c05afc343009c.png)
IPFSã¯ãŸã ããç¥ãããæè¡ã«ãªã£ãŠããªã;ã·ãªã³ã³ãã¬ãŒã§ãããå€ãã¯ãŸã ãããèªèããŠããªãããããã«ã€ããŠã®ãã¥ãŒã¹ã¯ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®å£ã³ãããããã«åãããŸã ã ãŸãããã¡ã€ã«è»¢éãæ¹åããã€ã³ã¿ãŒãããäžã§ã®ã¹ããªãŒãã³ã°ãé«éåããIPFSã®æœåšçãªæ©èœã«å€ãã®äººãåãã§ããŸãã
ããããç§ã®å人çãªèŠ³ç¹ããèŠããšãIPFSã¯å®éã«ã¯ãããã®æ©èœãããã¯ããã«éèŠã§ãã IPFSã¯ããµã€ããäžå€®ã®ãœãŒã¹ãµãŒããŒã䜿çšããå¿ èŠæ§ãæé€ããŸãããããã£ãŠãããã¯ãããããã€ã³ã¿ãŒãããã®ã¢ãŒããã¯ãã£ãå éšã®ççŸããå€ããåã«å®å šã«å€æŽããæè¯ã®ãã£ã³ã¹ã§ãã
ã©ã®ããã«ããªãã§ããïŒ ãã®è³ªåã«çããã«ã¯ã詳现ã«é²ãå¿ èŠããããŸãã
World Wide Webãé ããå£ãããããå¿ãã£ãœãã®ã¯ãªãã§ãã
IPFSã¯æ°ããp2pãã€ããŒã¡ãã£ã¢ãããã³ã«ã§ãããã®ç®çã¯ãçŸåšWWWãæ¯é ããŠããHypertext Transfer ProtocolïŒHTTPïŒãè£å®ïŒãŸãã¯å Žåã«ãã£ãŠã¯çœ®ãæãïŒããããšã§ãã ããã¯HTTPã®åé¡ã§ããä»æ¥ããµã€ãã«ã¢ã¯ã»ã¹ãããšãããã©ãŠã¶ã¯ãã®ãµã€ããåäœãããµãŒããŒãšçŽæ¥éä¿¡ããå¿ èŠããããŸãããããã®ãµãŒããŒãé ãé¢ããŠããŠãã転éããã»ã¹ã«ã¯ããªãã®åž¯åå¹ ãå¿ èŠã§ãã
ãããã¯ãŒã¯éã§ãã¢ããŒãã¢å¥çŽãç· çµãããããããããã€ããŒã¯è²»çšãè² æ ããŸãããã®ããããããã¯ãŒã¯ãããããã¯ãŒã¯ãžããŒã¿ãéä¿¡ãããšããããã€ããŒã«è²»çšããããããã£ãã«åž¯åå¹ ãæ¶è²»ããŸãã ããã«æªãããšã«ãHTTPãã¡ã€ã«ã¯ãç°ãªãã³ã³ãã¥ãŒã¿ãŒãããã¡ã€ã«ã®äžéšãåæã«åä¿¡ããã®ã§ã¯ãªãã1å°ã®ã³ã³ãã¥ãŒã¿ãŒããã®ã¿ããŠã³ããŒããããŸãã
ãã®ãããããã§ç«ã¡åŸçããŠããŸãããã©ã¹ããã€ã«ããããã€ããŒïŒå°ãªããšãç±³åœã§ã¯ïŒã®ç¥å¥ªã«ãã£ãŠäŸ¡æ ŒãåŒãç¶ãäžæããã¢ãã€ã«ããã€ã¹ããã®æ¥ç¶èŠæ±ã®å¢å ãå éããŠãããäœéã§é«äŸ¡ãªã€ã³ã¿ãŒãããã§ãã äœéã§é«äŸ¡ãªã ãã§ãªããä¿¡é Œæ§ããããŸããã äœããã®çç±ã§
IPFSãéããŠã€ã³ã¿ãŒããããäœãçŽã
IPFSïŒInterPlanetary File SystemïŒ 2013幎ã«Yahoo!ã«ãã£ãŠè²·åãããäŒç€Ÿãèšç«ããæšå¹ŽY CombinatorãéããŠProtocol Labsãèšç«ããŸãããçŸåšãIPFSãããžã§ã¯ãã«åŸäºããŠãããéå»20幎éã«ããã£ãŠæ¥åžžçã«çºçããŠãããããã³ã«ãå°ãå€æŽããäºå®ã§ãã
IPFSã¯ããã¹ãŠã®ã³ã³ãã¥ãŒãã£ã³ã°ããã€ã¹ã1ã€ã®å ±éãã¡ã€ã«ã·ã¹ãã ã«æ¥ç¶ããããšããP2Påæ£ãã¡ã€ã«ã·ã¹ãã ã§ãã ãã®ãããããã€ãã®æ¹æ³ã§HTTPæ©èœãäžåãããšãã§ããŸãã ãããã®ãã¡ã2ã€ïŒãã¢ã³ãæè¿ã®äŒè©±ã§ç§ã«èšã£ãããã«ïŒãéèŠã§ãã
ãã³ã³ãã³ãã®ã¢ãã¬ã¹æå®ã䜿çšããŠãããããã³ã³ãã³ãã¯ãœãŒã¹ãµãŒããŒããç¬ç«ããåå¥ã«é·æéä¿åã§ããŸãã ããã¯ãã³ã³ãã³ããæ¶è²»è ã®éåžžã«è¿ãã«ä¿åããé ä¿¡ã§ããããšãæå³ããŸããããããåãéšå±ã®ã³ã³ãã¥ãŒã¿ãŒã§ãã£ãŠãã§ãã ã³ã³ãã³ãã®ã¢ãã¬ã¹æå®ã«ãããå ã®ãœãŒã¹ã§ã¯ãªããä»ã®ïŒä¿¡é Œã§ããªãïŒãã¹ãããåä¿¡ããããŒã¿ã確èªããããšãã§ããŸãã ãããŠãã³ã³ãã³ãããŠãŒã¶ãŒã®ããã€ã¹ã«ããããããšã奜ããªã ããã£ãã·ã¥ããããšãã§ããŸãã
IPFSã¯ãHTTPããŒã¹ã®ã€ã³ã¿ãŒããããæ©ãŸãã»ãã¥ãªãã£åé¡ã®ããã€ãã«ã察åŠããŸããã³ã³ãã³ãããŒã¹ã®ã¢ãã¬ã¹æå®ïŒããã³ãã®åŸã®æ€èšŒïŒã¯IPFSããŒã¹ã®ãµã€ããä¿è·ããIPFSã®é åžã¯
IPFSã®äž»ãªå©ç¹ã¯ãã³ã³ãã³ãã®åæ£é ä¿¡ã§ããããã«ãããã€ã³ã¿ãŒããããžã®äžèŠåãªã¢ã¯ã»ã¹ã®ç¶æ³ã§ãã€ã³ã¿ãŒãããããã®ã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ãããªãã©ã€ã³ãã£ãã·ã¥ããååŸããããšããã§ããŸãã ãäžå€®ã®
æšå¹Ž2æã«IPFSã®ã¢ã«ãã¡çãç»å Žããããšã«ããããã§ã«IPFSã®æ©æå°å ¥è ïŒæ©æå°å ¥è ïŒã®éã§å€ãã®å®éšãè¡ãããŸããã ããšãã°ã9æ8æ¥ã Neocitiesãã¹ãã£ã³ã°ã¯ãã³ã³ãã³ããä¿åããããã«IPFSã䜿çšããæåã®å€§èŠæš¡ãµã€ãã«ãªããŸãã ãã€ãŸããåæ£WWWã®å¿ èŠæ§ã«é¢ããã€ã³ã¿ãŒãããã¢ãŒã«ã€ãã®åŒã³åºãã«ç¶ããŸãã çŸåšãç§ãã¡å šå¡ããŸããŸãå€ãã®æ°ãããµã€ãã絶ãã倱ããäœæè ã«ãã£ãŠå¹Žã æŸæ£ããééãããŠããŸããç§ãã¡ã®éåçãªã€ã³ã¿ãŒãããã¡ã¢ãªã®ãã®å¢å€§ããå±æ©ã§ã¯ãæ°žç¶çãªWebãžã®å°ããªäžæ©ã§ããç§ãã¡ã«ãšã£ãŠéèŠã§ãã
ãããŠã倧äŒæ¥ãææãããµã€ãã¯Neocitiesã®äŸã«åŸããŸããããŸã å®å šã«ãã¹ããããŠããªããããã³ã«ã®å®è£ ãéå§ããŸã-ç¹ã«P2Pã«ã€ããŠã®ç°¡åãªèšåã§ãããæããããšãã§ããŸããïŒ ãããŠãããã§ç§ã¯èšäºã®æåŸã®æ®µèœã«æ¥ãŸãã
IPFSãå°æ¥ã®ãªã³ã©ã€ã³ããžãã¹ ã«ãšã£ãŠéèŠãªçç±
ç§ã®æ°ããæ¬ ïŒãŸã åºçãããŠããªãïŒã§èª¬æããŠããããã«ãã³ã³ãã³ãã®é ä¿¡ã³ã¹ããå®çšæ§ãšçµæžçå©çãäžåããã€ã³ãã«ããã«è¿ã¥ããŠããŸãã æ倧ã®ã€ã³ã¿ãŒãããäŒæ¥ã¯ãã§ã«ã³ã³ãã³ãã«å¯ŸããéèŠã«è¿œãã€ãã®ã«èŠåŽããŠããããšã³ãžãã¢ã®å šè»ãã¢ã«ãã€ãã°ãŒã°ã«ãã¢ããŸã³ã§åç¬ã§ãã®ã¿ã¹ã¯ã«åŸäºããŠããŸãã
ããã«åœŒãã®ç¶æ³ã¯æªåããŸãã ä»åŸ10幎éã®å®äŸ¡ãªã¹ããŒããã©ã³ã®è¿ éãªè²©å£²ã®ãããã§ãæ°ããæ¶è²»è ã®å€§éžå šäœããªã³ã©ã€ã³ã«ãªããŸãã ã¢ãã®ã€ã³ã¿ãŒãããããã®åé¡ãæªåãããããšãçŽæããŸããäœååãã®ããã€ã¹ãç¬èªã®ãªã¯ãšã¹ããæã£ãŠãããããéä¿¡ãã£ãã«ã®æ¥éã«æžå°ããŠããæ©èœã«é¢é£ããããã§ãã
ç§ããã€ã¯ãç¹ç°æ§ãšåŒã¶å¹æãæ¬åœã«å¶éããå¿ èŠããããŸããåãã€ãã³ãã«å¯Ÿããæ°åå人ã®ã€ã³ã¿ãŒããããŠãŒã¶ãŒã®æ¥éãªããŠã€ã«ã¹ã泚æã¯ãã·ã¹ãã å šäœãçµã殺ãæãããããŸãã ïŒãããã¯ãŒã¯ã®äžæã¯ãåãçš®é¡ã®å€§çœå®³ãäºæ ããŸãã¯ä»ã®çŸè±¡ã埮å°ç¹ç°æ§ã«ãªããšãçè«çã«ã¯çåœãè ãããïŒ
Netflixã¯æè¿ã倧èŠæš¡ãª
IPFSã¯ãæ¥ç¶æ§ãæ¹åããããšã§ãã€ã³ã¿ãŒããããçæ³åã§åžžã«æ±ããŠããã·ã¹ãã ã«ããã®ã«åœ¹ç«ã¡ãŸãããçŸåšã®ãããã³ã«ã§ã¯å®çŸã§ããŸããã§ããïŒäžçäžã®ãã¹ãŠã®äººïŒãªãã©ã€ã³ã§ãïŒãæ°žç¶çãã€çµ¶ããé²åããè¡šçŸã§çã«æ¥ç¶ã§ããŸãç§ãã¡ã¯èª°ã§ãããç§ãã¡ã¯äœã®ããã«åªåããŠããŸããã
翻蚳è ããã®ããšãã
Habrahabrã¯ã·ãªã³ã³ãã¬ãŒã§ããªãããã2015幎10æã®åããŸã§ã«ãèªè ãIPFSã«ã€ããŠååãªèããæã£ãŠããªãã£ããšæããããããããŸããã ãããã£ãŠãTechCrunchã®èšäºã®ç¿»èš³ãçµããããããã«èª¬æçãªåŸæžããä»ãå ããªããã°ãªããŸããã ãããŠããã質åãšåçã®åœ¢ã§å ãã§å²ã¿ãŸãã
-IPFSãšã¯äœã§ããïŒ
-ã³ã³ãã³ãã¢ãã¬ãã·ã³ã°ãåããåæ£ãã¡ã€ã«ã·ã¹ãã ã
-IPFSã·ã¹ãã ã¯ã©ã®ãããªæå³ã§é åžãããŠããŸããïŒ
-P2Pãã¡ã€ã«å ±æã«é¢ããŠã ãã¡ã€ã«ãããŠã³ããŒãããåŸããŠãŒã¶ãŒã¯ä»ã®ããŠã³ããŒãã®ãœãŒã¹ã«ãªããŸãã
-IPFSã·ã¹ãã ã¯ã©ã®ãããªæå³ã§ãã¡ã€ã«ã·ã¹ãã ã§ããïŒ
-ç°¡åã«èšããšããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãUnixã©ã€ã¯ã§ããå Žåã FUSEã䜿çšãããšããã¡ã€ã«ã·ã¹ãã ã®ã¢ãã¬ã¹
ãIPFSã¯ã©ã®ãããªæå³ã§ã³ã³ãã³ãã«å¯Ÿå¿ããŠããŸããïŒã
-ãã¡ã€ã«ã®ããã·ã¥ã¯ããã¡ã€ã«ã®å 容ã®ã¿ã«äŸåããŸãã ãã¡ã€ã«ã®ååãç°ãªãããå¥ã®ãµããã£ã¬ã¯ããªã«ããå Žåãããã¯åããã¡ã€ã«ã§ãã ïŒããã¯ãããšãã°ããã¡ã€ã«ã®ååãšçžå¯Ÿäœçœ®ã«ãã£ãŠç°ãªãBTIH bittorrentããã·ã¥ãšæ¯èŒãããšæå©ã§ããïŒåããã¡ã€ã«ãç°ãªãååã§ããŸãã¯ç°ãªããµããã£ã¬ã¯ããªã®äžéšãšããŠé åžãããå Žåãé åžã¯èªåçã«ããŒãžãããåŽåããã©ãã£ãã¯ããã£ã¹ã¯å®¹éã
-IPFSãã¡ã€ã«ã·ã¹ãã ã«ãµããã£ã¬ã¯ããªã¯ãããŸããïŒ
-ãããŸã; ãããã¯ããã¡ã€ã«ãšãµããã£ã¬ã¯ããªã®ååïŒããã³ããã·ã¥ïŒã®ãªã¹ãã§ãã ããšãã°ãã¢ãã¬ã¹
-IPFSãã¹ãã¯ãã©ã®ãã¹ãã«ç®çã®ãã¡ã€ã«ãããããã©ã®ããã«ããŠç¥ãã®ã§ããïŒ
-DHTã«ãã£ãŠäœ¿çšãããŸãïŒ Kademliaãšåæ§ã§ããã
-çŸåšã®World Wide Webã®ãµã€ãã¯ãåæ£IPFSãã¡ã€ã«ã·ã¹ãã ã«ãããã¡ã€ã«ã«ã©ã®ããã«ãªã³ã¯ã§ããŸããïŒ
-ãµã€ãã®äœæè ã¯IPFSãèšå®ãããã¡ã€ã«ãIPFSã«é 眮ããŸãã 次ã«ã
-IPFSãµããŒããã€ã³ã¹ããŒã«ãããŠããèªè ã¯ïŒ
-ãŸããIPFSããã®ããŒãœãã«ã²ãŒããŠã§ã€ããããŸãã ãã®ãããªURLã«ãipfs.ioãã®ä»£ããã«ã127.0.0.1:8080ããèªåçã«çœ®æãããFirefoxã®ã¢ããªã³ãŸãã¯Chromeã®æ¡åŒµæ©èœãé 眮ããã ãã§ãã
-ãããã¯ãŒã¯ãåæ¢ããå ŽåãIPFSã¯ã©ã®ããã«ããªããæããŸããïŒ
-æåããã€ã©ã¹ãïŒããã³ãã®ä»ã®ãã¡ã€ã«ïŒãWebãµã€ãã®ã¢ãã¬ã¹ã§ã¯ãªãIPFSã§å ¬éãããŠããå Žåããµã€ããã¯ã©ãã·ã¥ããŠãããªãŒããŒã¯IPFS Webãµã€ãã®ãã£ãã·ã¥ã§ã¯ãªããã£ãã·ã¥ããæ¢ç¥ã®ã¢ãã¬ã¹ã§ãã¡ã€ã«ãåä¿¡ã§ããŸãé£äººã ïŒãŸãããã¡ã€ã«ã¯ããã·ã¥ã«å¯ŸããŠãã§ãã¯ãããããããã€ããŒã¯ãã¡ã€ã«ã眮ãæããããšãã§ããŸãããïŒ
-ãµã€ãããã©ãã£ãã¯ãç¯çŽããã®ã«IPFSã¯ã©ã®ããã«åœ¹ç«ã¡ãŸããïŒ
-æåããã€ã©ã¹ãïŒããã³ãã®ä»ã®ãã¡ã€ã«ïŒãWebãµã€ãã®ã¢ãã¬ã¹ã§ã¯ãªãIPFSã§å ¬éãããå Žåããã€ã¯ãç¹ç°ç¹ãçªç¶çºçãã10å人ã®èŠèŽè ãéåžžã«ãã°ãããµã€ãã«ã¢ã¯ã»ã¹ãããšããŠãããšã«ããIPFSçµç±ã§ãµã€ãã®ã»ãšãã©ãããã¯ãªããããŸãããããŠååã®é£äººãžã®ãã£ãã·ã¥ã§ã圌ãã¯å°ãåã«æéããããŸããã ãããã£ãŠããµã€ãã¯æšªã«ãªããŸããã ïŒãã¡ããããã®ããã«ã¯ããŸãIPFS modãèŠèŽè ã«é åžããå¿ èŠããããŸããããããªããšããµã€ãã§ã¯ãªã
-ãã£ã¹ã¯æ倱ãçºçããå ŽåãIPFSã¯ãµã€ããã©ã®ããã«æ¯æŽããŸããïŒ
-æåããã€ã©ã¹ãããã®ä»ã®éçãã¡ã€ã«ãWebãµã€ãã®ã¢ãã¬ã¹ã§ã¯ãªãIPFSã§å ¬éãããŠããå ŽåãIPFSã䜿çšããŠãµã€ãã®ãªãŒããŒã®ãã£ãã·ã¥ããäžè¶³ããŠããåçïŒããã³ãã®ä»ã®ãã¡ã€ã«ïŒãããŠã³ããŒãããããšãã§ããŸãã
-å·æ€é²ã®å ŽåãIPFSã¯èªè ãã©ã®ããã«æ¯æŽããŸããïŒ
-æåããã€ã©ã¹ãããã®ä»ã®éçãã¡ã€ã«ãWebãµã€ãã®ã¢ãã¬ã¹ã§ã¯ãªãIPFSã§å ¬éãããŠããå ŽåãçŠæ¢ãããã€ã©ã¹ãïŒããšãã°ã 粟éã®äœ¿çšãã®å£èã®æŽèµ°ã®ã€ã©ã¹ãïŒã䜿çšããŠããããã¯ããã€ãã¹ããŠä»ã®çŠæ¢ããããã¡ã€ã«ãåãåãããšãã§ããŸãïŒæ€é²ãæå¹ã«ãªãåã«ãã¡ã€ã«ãååŸã§ãããµã€ããªãŒããŒã®ãã£ãã·ã¥ããïŒã
-ãµã€ãããã£ã¹ã¯ã¹ããŒã¹ãç¯çŽããã®ã«IPFSã¯ã©ã®ããã«åœ¹ç«ã¡ãŸããïŒ
-æåããã®ã€ã©ã¹ããWebãµã€ãã®ã¢ãã¬ã¹ã§ã¯ãªãIPFSã§å ¬éãããå ŽåãããçšåºŠã®æéã®åŸãIPFSãã£ãã·ã¥ããããããåé€ããã¹ããŒã¹ã解æŸããèªè ãåŒãç¶ãã¢ã¯ã»ã¹ã§ããããã«ãã€ã©ã¹ããåŒãç¶ãã¢ã¯ã»ã¹ã§ããããšãæåŸ ã§ããŸããããã¯äºãã®IPFSãã£ãã·ã¥ããã
-ã€ãŸããããã¯ãçŸåšã§ã¯å°é£ã§ãããäžå®ã®æéãéãããšãã¡ã€ã«ãå®å šã«æ¶å»ããã€ã¡ãŒãžãã¹ãã£ã³ã°ããã³ã€ã¡ãŒãžããŒãã®æ¬åœã®ä»£æ¿æ段ã§ããïŒ
-ããã§ãã ïŒããšãã°ãå®æã§ãã®ä»£æ¿æ¡ãææ¡ããŸãã ãïŒ
-çŸåšãIPFSã§ç»åãã¹ã¿ãã¯ãããããªç»åã®ãã¹ãã£ã³ã°ã®äŸã¯ãããŸããïŒ
-ã¯ãã ipfs.pics ã
-çŸåšãIPFSã§ã¹ã¿ãã¯ããä»»æã®ãã¡ã€ã«ã®ãã¹ãã®äŸã¯ãããŸããïŒ
-
-ã³ã³ãã³ãã®ã¢ãã¬ã¹æå®ã¯ãéçïŒäžå€ïŒã³ã³ãã³ãã®ã¿ãIPFSã«ä¿åã§ããããšãæå³ããŸããïŒ
-äžè¬ã«ãã¯ãã ãã ããåIPNSåãç¬èªã®IPFSãã£ã¬ã¯ããªããã·ã¥ã«ãããããå¿ èŠã«å¿ããŠãã®å¯Ÿå¿ãå€æŽã§ãããµã€ãçšã®IPNSããŒã ã·ã¹ãã ããããŸãã ã€ãŸãããã®ãããªãµã€ãã«éçã³ã³ãã³ããè¿œå ããŸãããæ°ãããã®ã§ãã
ãIPFSçšã®æ°ããURLã¹ããŒã ãèãåºããããããŸãããïŒã ããã«ãããããã·ã¥ã®åã«é·ã
-ç§ãã¡ã¯2é±éè°è«ãã
-ãªããipfsïŒããšãipnsïŒãã®2ã€ã®ã¹ããŒã ãäœæããªãã£ãã®ã§ããïŒ
-Unixã©ã€ã¯ãªã·ã¹ãã ã®ãŠãŒã¶ãŒã®äŸ¿å®ã®ããã«ããã¹ãååŸããããã«
-ã¢ãã¬ã¹ãfsïŒãã¯ãã€ããŒããã¹ãFidonetã§ãµããŒããããŸããïŒ
-圌ãã¯ããŸã; ããã«ã¯ ECMAScript 6ã®3è¡ã§ååã§ãã ãæåã«IPFSããã€ã©ã¹ããæäŸãã次ã«LiveJournalã§RSSçµç±ã§ãããŒããã£ã¹ããã Fidonetããã°æçš¿ã®äŸã瀺ããŸãã
次ã®ããšãã§ããŸãã
GroupURL IPFS URLEngine PCRE URLScheme /ipfs/[1-9A-HJ-NP-Za-km-z]+ URLHandler start "" "https://ipfs.io@url" EndGroupURL
-IPFSã¯Windowsã§åäœããŸããïŒ
çŸåšã®Windowsã®ã¢ã«ãã¡çã¯ããªãæªãåäœãããŸãããåã®ãã®ã¯ãŸã£ããåäœããªããªã£ãã®ã§ãå°æ¥ããã«æ¹åããããšãæåŸ ã§ããŸãã