å
容
- ç®æšãšçµæã«ã€ããŠç°¡åã«
- ç 究ãããžã§ã¯ãã®ã¿ã¹ã¯
- ãã©ãããã©ãŒã ã®äžè¬çãªã¹ããŒã ãšãã®èŠçŽ ã®çžäºäœçš
- ä¿¡çšç¶ã®ã¹ããŒãå¥çŽã®å®æœ
- ãã©ãããã©ãŒã ã³ã³ããŒãã³ãã®éžæ
- ã€ã³ãã©
- ã³ã³ããŒãã³ãçµ±å
- ã¯ãšãªãããã€ããŒã®å®è£
ã®è©³çŽ°ãªèª¬æ
- ã³ãã¥ããã£ã®å©çã®ããã«
- ãµãŒãããŒãã£ã®ã³ã³ããŒãã³ããçµ±åããçµéšã«é¢ããããã€ãã®ã¡ã¢
- 調æ»çµæ
2017幎6æ22æ¥ã ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããBlockchainïŒBitcoin Conference㧠ããããã¯ãã§ãŒã³ã¢ããªã¹ãã®Marina Smantserããã¹ããŒãã³ã³ãã©ã¯ãã«åºã¥ã貿æéèååŒã®çµ±åãã©ãããã©ãŒã ãäœæããããã®ç 究ãããžã§ã¯ãã®çµæã«ã€ããŠå ±åããŸããã
ã¬ããŒãã®20å圢åŒã§ã¯ãæè¡çãªåŽé¢ã詳现ã«èª¬æããŠããŸããã§ããã ãããã£ãŠãRaiffeisenbankã®habrahabrãžã®ã¢ã¯ã»ã¹ã¯ãçµæã«ã€ããŠè©³çŽ°ã«èª¬æãã絶奜ã®æ©äŒã§ãã
ãã®èšäºã¯ãèªè ããããã¯ãã§ãŒã³æè¡ã®äž»èŠãªåŽé¢ãšã¹ããŒãã³ã³ãã©ã¯ãã®ååãç解ã§ããããã«èšèšãããŠããããšã«æ³šæããŠãã ããã åãããã¯ã®ã¬ãã¥ãŒã¯å¥ã®èšäºã®å·»ã§ãããããhabrasocietyãç解ããããšã楜ãã¿ã«ããŠããŸãã
æåã®éšåã§ã¯ãç§ãã¡ã䜿çšããä¿¡çšç¶ã®ããã±ãŒã¹ãšããããã¯ãã§ãŒã³äžã§ãã©ãããã©ãŒã ãã©ã®ããã«èšèšããããã«ã€ããŠèª¬æããŸãã
2çªç®ã®éšåã¯ãæè¡çãªè©³çŽ°ã§æã飜åããŠããŸãããã©ãããã©ãŒã ã®å®è£ ïŒã³ã³ããŒãã³ãã®éžæãšçµ±åïŒãšä¿¡çšç¶ã®ã¹ããŒãã³ã³ãã©ã¯ãã詳现ã«æ€èšãããŸãã ãŸããã¹ããŒãã³ã³ãã©ã¯ãã«ããä¿¡çšç¶ã®äžã§ã®æ±ºæžããã»ã¹ã段éçã«èª¬æããŸãã
3çªç®ã®éšåã«ã¯ãå€æ°ã®ã³ãŒãããããŸããã¹ããŒãã³ã³ãã©ã¯ãã®åå¥ã®ã¡ãœãããå€éšãªã¯ãšã¹ãã®ç¬èªã®ãããã€ããŒïŒoracleïŒã®ä»æ§ãããã³ã³ãã¥ããã£ã®ããŒãã¹ïŒãã¹ãçšã®ãªãŒãã³APIã§ãã ãã®ã»ã¯ã·ã§ã³ã®çµæããŸãšãããšãå æããªããã°ãªããªãã£ããã©ãããã©ãŒã ã³ã³ããŒãã³ãã®åé¡ã«ã€ããŠèª¬æããŸãã
æåŸã«ãä¿¡çšç¶ã§ãããžã§ã¯ãã®çµæãšãåæ£æè¡ã®éçºã®ç 究ãéè¡æ¥ãžã®å¿çšã«é¢ããŠç€ºããããšã«ã€ããŠèª¬æããŸãã
ãããã¯ãã§ãŒã³ã®çµéšãã§ããéã詳现ã«ã«ããŒããããšã«ããŸããã ãããã¯ãã§ãŒã³ã¯ãçžäºäœçšãšååã«ã€ããŠã®ç©èªã§ãã æ奜家ã®åªåã®ãããã§ãå€ãã®ãããžã§ã¯ããç»å Žããçºå±ããŠããŸãã ãã¹ãŠã®ãã¯ãããžãŒã¯æ°ãããã®ã§ããããããã䜿çšããéã«ã¯ååãªå°é£ããããŸãã ç§ãã¡ã®ç©èªãæçãªç¥èæºã«ãªãã°å¬ããã§ãã
Gelbplanetenã¯ãèšäºã®æºåã«ç©æ¥µçã«åå ããŸãã
ç®æšãšçµæã«ã€ããŠç°¡åã«
2016幎ã®çµããã«ããããã¯ãã§ãŒã³ã¯RïŒDéšéã®é¢å¿é åã«èœã¡ãŸããã çè«äžã®æ²¡å ¥ã«ã¯æéããããããã®åŸãå®çšçãªå®è£ ãè¡ãããšãçã«ããªã£ãŠãããšå€æããŸããã
éè¡æ¥åã®ããã€ãã®é åãæœåšçãªãªãã·ã§ã³ãšèããŠããŸããå éšããžãã¹ããã»ã¹ã®æé©åãããååŒã®æ ä¿ç®¡çãŸã§ã 貿æéèã®åéã§ã¯ãäŒæ¥ã顧客ããããã«é¢å¿ãå¯ãããããããæ£ç¢ºã«è§£æ±ºããããšã決å®ãããŸããã
å ·äœçã«ã¯ãä¿¡çšç¶ã«ãšã©ãŸãããšã«ããŸããã æãåçŽãªåœ¢åŒã§ã¯ãéžæããé åããã®ãã©ã³ã¶ã¯ã·ã§ã³ã®å€ãã®åŽé¢ãã«ããŒããªãããç解ããããã®ããªãåçŽãªããžãã¯ãå®è£ ããŸãã
ä¿¡çšç¶ïŒçè«ãšããžãã¹ããã»ã¹
貿æéèã®æ¡ä»¶ãç¡èŠããå Žåãä¿¡çšç¶ã¯éçŸéæ¯æããã©ãŒã ã®äžçš®ã§ãã éè¡ã¯ãååŒæ¡ä»¶ã®åœŒã®éšåã®å®è¡ã«é¢ããææžãæåºããå Žåã売ãæã«æå©ãªæ¯æããè¡ãããšãçŽæããŸãã
ä¿¡çšç¶ã¯ãè²·ãæãšå£²ãæã®éã®ä¿¡é Œã®æ¬ åŠã®åé¡ã解決ããããã€ãã®ãªã¹ã¯ã軜æžããŸããããšãã°ã決æžæã®è²·ãæã®è²¡æ¿ç¶æ ã«é¢é£ããŸãã
ç°¡ç¥åããã圢åŒã§ã¯ãèšç®ã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«è¡šãããšãã§ããŸãã
ãã®èª¬æã§ã¯ãå€ãã®ç¹ãç°¡ç¥åãããŠããŸãã
ä¿¡çšç¶ã¯ãè²·ãæãšå£²ãæã®éã®ä¿¡é Œã®æ¬ åŠã®åé¡ã解決ããããã€ãã®ãªã¹ã¯ã軜æžããŸããããšãã°ã決æžæã®è²·ãæã®è²¡æ¿ç¶æ ã«é¢é£ããŸãã
ç°¡ç¥åããã圢åŒã§ã¯ãèšç®ã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«è¡šãããšãã§ããŸãã
- åœäºè ã¯ãèšç®ã®æ¹æ³ãšããŠä¿¡çšç¶ã瀺ãååã®äŸçµŠã«é¢ããå¥çŽãç· çµããŸãã
- ãã€ã€ãŒã¯èªåã®éè¡ã«ä¿¡çšç¶ãéãããã®ç³è«æžãæåºããŸãã
éè¡ã¯ãå éšç£æ»ïŒå£åº§ã®è³éã®å¯çšæ§ãªã©ïŒãå®è¡ããŸãã çµæãæ£ã®å Žåãäžéã¯ä¿¡çšç¶ãçºè¡ããŸãã - ä¿¡çšç¶ãçºè¡ããåŸãéè¡ã¯ç¹å®ã®æ¡ä»¶äžã§ä¿¡çšç¶ã®éèšã売ãæã«éç¥ããŸãã 売ãæã¯ä¿¡çšç¶ãæåŠããæš©å©ãæããŸãã
- ååãé éããããšã売ãæã¯ä¿¡çšç¶ã®æ¡ä»¶ã§æå®ãããæžé¡ïŒè«æ±æžãè¹è·èšŒåžãªã©ïŒãéè¡ã«ããæ€èšã®ããã«éä¿¡ããŸãã
- éè¡ã¯æžé¡ã確èªããæåããå Žåã¯æ¯æããè¡ããŸãã
ãã®èª¬æã§ã¯ãå€ãã®ç¹ãç°¡ç¥åãããŠããŸãã
ãã®ãããžã§ã¯ãã®ç®æšã¯ã貿æéèã®åéã®å®éã®ããžãã¹ã±ãŒã¹ã§ãããã¯ãã§ãŒã³ãã©ã®çšåºŠæè¡çã«é²æ©ããŠãããã調æ»ããããšã§ãã ããã¯ãæãçŽç²ãªåœ¢ã®ãã¯ãããžãŒã®æç床ãããã³è€éãã®ã¬ãã«ãç¶æããªãããããã¯ãã§ãŒã³ããã»ã¹ãäŒæ¥ããžãã¹ããã·ããããæ©èœã«ãé©çšãããŸãã 2çªç®ã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããã®æ³çã³ã³ããŒãã³ããšãã·ã¹ãã ã®ä¿¡é Œæ§ãšã»ãã¥ãªãã£ã®èŠä»¶ã®äž¡æ¹ãå«ãŸããŸãã
ãªãŒãã³ãœãªã¥ãŒã·ã§ã³ã«çŠç¹ãåœãŠãŸãããç¹ã«ããããªãã¯ã€ãŒãµãªã¢ã ããããã¯ãã§ãŒã³ãšããŠéžæãããŸããã ä»ã®æè¡ã«ã€ããŠã¯ããã®èšäºã®åŸåã§è©³ãã説æããŸãã
ãã®çµæããããã¯ãã§ãŒã³ãåæ£ã¹ãã¬ãŒãžãå€éšããŒã¿ãœãŒã¹ãããã³éè¡ã®å éšã·ã¹ãã ã«å¯ŸããAPIã¬ãã«ãçµã¿åãããŠå æ¬çãªãœãªã¥ãŒã·ã§ã³ãæäŸãããœãããŠã§ã¢ãã©ãããã©ãŒã ãéçºããŸããã ãããžã§ã¯ãã®éå§åã«å®æœãããéè¡å ã®ãããã¯ãã§ãŒã³ã®ããŸããŸãªé©çšåéã®è©³çŽ°ãªåæã¯ãã¢ãžã¥ãŒã«åŒã§ç°¡åã«é©å¿å¯èœãªã·ã¹ãã ã®èšèšã«åœ¹ç«ã¡ãŸããã ãããŠãéåžžã«ç¹å®ã®ããžãã¹ã±ãŒã¹ïŒä¿¡çšç¶ïŒã«çŠç¹ãåœãŠãŠéçºãå®æœããŸãããããã©ãããã©ãŒã ã®ã¢ãžã¥ãŒã«æ§ã«ãããæšæºåãããååŒæ¡ä»¶ïŒæ ªåŒãåµåžãæ ä¿ã®ç»é²ãäžå Žããªããã£ãïŒã䜿çšããä»ã®ããžãã¹ãœãªã¥ãŒã·ã§ã³ã«äœ¿çšã§ããŸãã
ç 究ãããžã§ã¯ãã®ã¿ã¹ã¯
æ¢ã«è¿°ã¹ãããã«ããã®ç 究ã¯ãæ¢åã®ãããã¯ãã§ãŒã³ãšã³ã·ã¹ãã ã§è²¿æéèååŒãå®æœããå¯èœæ§ãå€æããããšã課é¡ãšããŸããã ãšã³ã·ã¹ãã ãšã¯ããããã¯ãã§ãŒã³èªäœã®å®è£ ãšããããžã®ããããçš®é¡ã®ã¢ããªã³ã®äž¡æ¹ãããŒã¹ãšããŠå«ãäžé£ã®ãã¯ãããžãŒãæå³ããŸãïŒçžäºäœçšããã³ãã¡ã€ã«äº€æãããã³ã«ãã©ã€ãã©ãªãåæ£ã¹ãã¬ãŒãžãªã©
åæã«ãå®å®ããããŒãžã§ã³ã§ãªãªãŒã¹ããããœãªã¥ãŒã·ã§ã³ããŸãã¯å®è£ ã«è¿ãæºå段éã«ãããœãªã¥ãŒã·ã§ã³ã䜿çšããããšãæ³å®ãããŠããŸããã ãã®èª¿æ»ã¯ãéè¡ã®äŒèšã·ã¹ãã ãšäžç·ã«åäžã®ãã©ãããã©ãŒã ã§éžæãããæè¡ãããŸãçµ±åããããã®æ¡ä»¶ã決å®ãããã®ãããªçµ±åã®æçœã§é ããåé¡ãç¹å®ããããšã«ãªã£ãŠããŸãã
ãã©ãããã©ãŒã ã®å®è£ ã«å¿ èŠãªæ©èœã決å®ããããã«ã次ã®åææ¡ä»¶ãèšå®ãããŸããã
- ååŒã®å®è¡ã«ã¯ãåœäºè éã®ææžã®äº€æã䌎ããŸã
- ãã©ã³ã¶ã¯ã·ã§ã³ã®äž»ãªæ±ºæžã¯ãéåžžã®ïŒãã£ã¢ããïŒæ±ºæžãã£ãã«ãä»ããŠè¡ãããŸã
- ãã¹ãŠã®ååŒãã©ã³ã¶ã¯ã·ã§ã³ã¯ãçŸè¡ã®èŠå¶ææžããã³èŠå¶ã«åºã¥ããŠãå¯èœãªéãæ³çã«ç¢ºèªããå¿ èŠããããŸãïŒãä»ãããåžæ³æ £è¡ã確ä¿ããããïŒ
- ãã¹ãŠã®æäœãšæäœéã®ç§»è¡ä¿¡å·ã¯ãå¯èœãªéãèªååããå¿ èŠããããŸãã
ãã©ãããã©ãŒã ã®äžè¬çãªã¹ããŒã ãšãã®èŠçŽ ã®çžäºäœçš
ãã©ãããã©ãŒã ã³ã³ããŒãã³ãã®ã¢ãŒããã¯ãã£ãšçžäºéçšæ§
åææ¡ä»¶ã®åæããã次ã®æ©èœã³ã³ããŒãã³ãã䜿çšããå¿ èŠãããããšã瀺åãããŸãã
- ãããã¯ãã§ãŒã³-ãã©ã³ã¶ã¯ã·ã§ã³æäœã®ä¿¡é Œã§ããã¬ãžã¹ã¿ãŒããã³ãã©ã³ã¶ã¯ã·ã§ã³ãæäŸããã¹ããŒãã³ã³ãã©ã¯ãã®å®è¡ç°å¢
- åæ£ãã¡ã€ã«ã¹ãã¬ãŒãžïŒDFSïŒ-ãã©ã³ã¶ã¯ã·ã§ã³é¢é£ã®ãã¡ã€ã«ãä¿åããã³äº€æããããã®åªäœãšããŠ
- èªèšŒãããæå·æ å ±ä¿è·èšŒææž-è¿œå ã®æå·åãæ³çã«éèŠãªé»å眲åãããã³å®å šãªã¿ã€ã ã¹ã¿ã³ããæäŸããæ段ãšããŠã ããã«ãDFSããã«ããŠãŒã¶ãŒã¢ã¯ã»ã¹ã¡ã«ããºã ããµããŒãããŠããªãå Žåããã¡ã€ã«ã¢ã¯ã»ã¹åæ£ã®è¿œå ã®ä»®æ³ã¬ã€ã€ãŒãç·šæããããã«äœ¿çšã§ããŸãã
- ãªã©ã¯ã«ããã³å€éšãªã¯ãšã¹ãã®ãããã€ããŒ-éè¡ã®äŒèšã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ããã³å€éšäžçã®ã€ãã³ãã®ãœãŒã¹ïŒã¬ãžã¹ããªãªã©ïŒ
- ææžã¢ãã©ã€ã¶ãŒ-ååŒæ¡ä»¶ã確èªããããã«åœäºè ãæåºããææžã®èªååæçšã
çŸåšã®çŸå®ã®ããã¥ã¡ã³ãã®äž»èŠãªèšç®ãšåæã¯ã¹ããŒãã³ã³ãã©ã¯ãã®å€éšã§å®è¡ããããããåŠçã§ããããŒã¿ã®ã¿ãã¹ããŒãã³ã³ãã©ã¯ãã«çŽæ¥è»¢éãããŸãã æ®ãã®æ å ±ïŒå®èšŒããã³ç®¡çææžïŒã¯ãæ³çéèŠæ§ã確ä¿ããããã«ã匷åãããé©æ Œãªããžã¿ã«çœ²åã«ãã£ãŠçœ²åãããéåžžã®ïŒæååŠççšïŒãŸãã¯æ£åŒãªïŒèªååŠççšïŒææžã®åœ¢åŒã§æ·»ä»ãããŸãã
åæã«ã次ã®ã¿ã¹ã¯ãã¹ããŒãã³ã³ãã©ã¯ãã®å éšããžãã¯ã«å²ãåœãŠãããšãã§ããŸãã
- ã¹ããŒã¿ã¹ãããªãã¯ã¹ãçŸåšã®ã¹ããŒã¿ã¹ãšã¹ã€ããã³ã°ãã©ã³ã¶ã¯ã·ã§ã³ã®ã€ãã·ãšãŒã¿ãŒã«åŸãããã«ãã
- ææžãæåºã§ããæéãå¶éããæ¥ä»ç®¡ç
- å€éšèŠæ±ãããã€ããŒããã®åç §ã€ãã³ãã®çºçã®åŠç
次ã®ç»é²æ å ±ã¯ãåãã©ãããã©ãŒã ãŠãŒã¶ãŒã«é¢é£ä»ããããŸããã
- ã·ã¹ãã å ã®äžæã®èå¥å
- ãŠãŒã¶ãŒããã©ã³ã¶ã¯ã·ã§ã³ãéä¿¡ããã€ãŒãµãªã¢ã ã¢ãã¬ã¹
- ææãŸãã¯ãŠãŒã¶ãŒã«éä¿¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®ç»é²ãç¶æããããã«äœ¿çšãããã¹ããŒãã³ã³ãã©ã¯ãã®ã¢ãã¬ã¹ïŒä»¥éãã¡ãŒã«ããã¯ã¹ãšåŒã³ãŸãïŒ
- æ¡åŒµä¿®é£Ÿããžã¿ã«çœ²åã®èšŒææžèå¥åãšãã®å ¬éããŒ
Oracleã³ã³ã»ããã®æãç°¡åãªèª¬æïŒ blockchainhub.net/blockchain-oracles
DFSã«é¢ããè¯ãèšäºã¯ãããŸãã ã§ãããSwarmã® ããã¥ã¡ã³ããžã®ãªã³ã¯ãæ®ããŸãïŒ swarm-guide.readthedocs.io/en/latest/introduction.html
ãããŠStorjïŒ storj.io
å®çšçãªå®è£
次ã®å³ã¯ããã©ãããã©ãŒã ã®äžè¬çãªå³ãšãæ©èœã³ã³ããŒãã³ãéã®äž»ãªããŒã¿äº€æãããŒã瀺ããŠããŸãïŒãã®å Žåãããšã€ãªã¢ã³ãã³ã³ããŒãã³ãã¯ç·è²ã§ãèªå®æžã¿-玫è²ã§ãéè¡ãœãããŠã§ã¢ã¯çœè²ã§åŒ·èª¿è¡šç€ºãããŠããŸãïŒã
ãã©ã³ã¶ã¯ã·ã§ã³ãæºåããã³å®è¡ããããã»ã¹ã§ã¯ããã©ãããã©ãŒã ã®ã³ã³ããŒãã³ãã¯æ¬¡ã®ããã«å¯Ÿè©±ããŸãã
- ã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ïŒã¯ã©ã€ã¢ã³ããã³ã¯ãã¢ãã€ã«ãã³ã¯ãªã©ïŒã ãã©ã³ã¶ã¯ã·ã§ã³ã®åææ
å ±ãå
¥åããå¿
èŠãªã¹ããŒãã³ã³ãã©ã¯ããäœæããããžãã¹ããã»ã¹ã®æå段éã§ã¹ããŒãã³ã³ãã©ã¯ãã®ã¹ããŒã¿ã¹ã管çããããã«äœ¿çšãããŸãã ããžãã¹ããã»ã¹ã®æå段éã¯ãå®éã®ãå人çãªããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãå¿
èŠãšãã段éãšããŠç解ã§ããããšã«æ³šæããŠãã ãããããšãã°ãããã¥ã¡ã³ããã¹ããŒãã³ã³ãã©ã¯ãã«æ·»ä»ããéåžžãã¹ããŒãã³ã³ãã©ã¯ãã®ã¹ããŒã¿ã¹ãå
éšããžãã¯ã®äœ¿çšã¯ãããã¯ãã§ãŒã³ãè¶
ããŠããŸãã åŸè
ã®ã±ãŒã¹ã«ã¯ãéè¡ã®äŒèšã·ã¹ãã ã®ã¹ããŒãå¥çŽã«æ·»ä»ãããããã¥ã¡ã³ãã®æ€èšŒãå«ãŸããŸããããã¯ãèªåçã«è¡ãããŸããããããã¯ãã§ãŒã³ã®å€éšã§è¡ãããŸãã
- ã¹ããŒãã³ã³ãã©ã¯ãã«æ·»ä»ããããã¡ã€ã«ã¯ãäœæè
ã®ïŒäœæè
ïŒã®æ³çã«éèŠãªæ確ãªèå¥ã®ããã®äœæè
ã®åŒ·åãããããžã¿ã«çœ²åã«ãã£ãŠçœ²åãããŸãã 次ã«ããã¡ã€ã«ã¯æå·åããã±ãŒãžã®åœ¢æã§æå·åããããã©ã³ã¶ã¯ã·ã§ã³ã®åå è
ã®ã¿ã埩å·åã«äœ¿çšã§ããŸãã çµæã®æå·åããã±ãŒãžã¯DFSã«é
眮ããããœãŒã¹ãã¡ã€ã«ã®ããã·ã¥ãšDFSã«æå®ãããã¹ãã¬ãŒãžãªããžã§ã¯ãã®ã¢ãã¬ã¹ïŒãªã³ã¯ããããã§ã¹ãïŒã¯ã¹ããŒãã³ã³ãã©ã¯ãã®ã³ã³ããã¹ãã«ä¿åãããŸãã ã¹ãã¬ãŒãžãªããžã§ã¯ãã®ã¢ãã¬ã¹ã䜿çšãããšãDFSããæå·åããã±ãŒãžãæœåºããïŒãã©ã³ã¶ã¯ã·ã§ã³ã®åå è
ã«å¯ŸããŠïŒè§£èªããŠé©åã«åŠçã§ããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ãåŠçãããšããã¹ããŒãã³ã³ãã©ã¯ãã¯ãããŒããã£ã¹ããªã©ã¯ã«ããã®æ
å ±ã䜿çšã§ããŸããããšãã°ãã«ã¬ã³ããŒã§ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®åä¿¡æ¥ãå¶åŸ¡ããããçºæ¿ã¬ãŒãã䜿çšãããã§ããŸãã
- ç¹å®ã®ã¹ããŒã¿ã¹ã«ç§»è¡ãããšãã¹ããŒãã³ã³ãã©ã¯ãã¯ãäºæãããå€éšã€ãã³ãã«å¯Ÿããç¹å®ã®ãªã¯ãšã¹ãããŸãã¯å€éšãªã¯ãšã¹ãã®ãããã€ããŒã«ããå®è¡ã®ããã®å€éšã¢ã¯ã·ã§ã³ã®å®è¡åœä»€ãéä¿¡ããå ŽåããããŸãã ã¹ããŒãã³ã³ãã©ã¯ãã«ãã£ãŠãé åºä»ãããããå€éšã€ãã³ããçºçãããšããããã€ããŒã¯ã€ãã³ãã«é¢ããæ
å ±ãå«ããã©ã³ã¶ã¯ã·ã§ã³ãéä¿¡ããŸãã ãã®ãã©ã³ã¶ã¯ã·ã§ã³ã®åŠççµæã«åºã¥ããŠãã¹ããŒãã³ã³ãã©ã¯ãã¯æ°ããç¶æ
ã«åãæ¿ãããããŸãã¯åŸç¶ã®ã€ãã³ãã®çºçãåŸ
æ©ããŠåãç¶æ
ã®ãŸãŸã«ãªãå ŽåããããŸãã
- å€éšãªã¯ãšã¹ããšåæ§ã«ãç¹å®ã®æ£åŒãªããã¥ã¡ã³ããã¹ããŒãã³ã³ãã©ã¯ãã«æ·»ä»ããããšãã¹ããŒãã³ã³ãã©ã¯ãã¯ããããããã¥ã¡ã³ãã¢ãã©ã€ã¶ãŒã«åæçšã«éä¿¡ããåæçµæã䌎ããã©ã³ã¶ã¯ã·ã§ã³ãåŸ æ©ã§ããŸãã
ä¿¡çšç¶ã®ã¹ããŒãå¥çŽã®å®æœ
ãã©ãããã©ãŒã èšèšã§ã¯ãå®è£ ã®ããã®ããžãã¹ã±ãŒã¹ã®éçºãšäžŠè¡ããŠéå§ããããšã決å®ãããŸããã
ãããã¯ãã§ãŒã³ã®ããã»ã¹ã®ç°¡ç¥å³ãå³ã«ç€ºããããã»ã¹ã®è©³çŽ°ãªèª¬æã以äžã«ç€ºããŸãã
ååŒã®åœäºè ã¯ãè²·ãæã売ãæãéè¡ã§ãã è²·ãæãšå£²ãæã¯ãç¹å®ã®ãµãŒãã¹ãŸãã¯ååã®æäŸã«é¢ããå¥çŽãç· çµãããããã®æäŸã®äºå®ã¯èªåçã«èå¥ã§ããŸãã ããšãã°ãäžåç£ãæ ªåŒãæ ªåŒãªã©ã®æææš©ãè²æž¡ããéã«æ±ºæžã®ããã«ä¿¡çšç¶ãéãããŠããå Žåãæåºãããææžã®æ å ±ã¯ãå€éšãœãŒã¹ã®æ å ±ïŒããšãã°ãäžåç£ã®çµ±äžãããå·ã®ç»é²ç°¿ïŒã«å¯ŸããŠããã«ãã§ãã¯ãããŸãã ãã©ãããã©ãŒã ãéããŠããããªããã©ã³ã¶ã¯ã·ã§ã³ãµããŒããæäŸãããŸãã
- è²·ãæã¯ãã¹ããŒãã³ã³ãã©ã¯ããä¿¡çšç¶ç³è«æžãïŒä»¥äžãç³è«æžãïŒãäœæãã æ°èŠå¥çŽã®ã¹ããŒã¿ã¹ãåãåããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãã¬ã¹ã¯ããã€ã€ãŒããã³éè¡ã®ã¡ãŒã«ããã¯ã¹ã«é 眮ãããŸãã
- 賌å
¥è
ã¯ãæ£åŒãªEDãã¢ããªã±ãŒã·ã§ã³ã«æ·»ä»ããååŒã®è©³çŽ°ã®èª¬æãšå¿
èŠãªéå
¬åŒææžãããšãã°ä¿¡çšç¶ãéãããŠããå¥çŽã®ã¹ãã£ã³ã³ããŒãæ·»ä»ããŸãã
å¿ èŠãªæžé¡ããã¹ãŠæ·»ä»ããåŸããã€ã€ãŒã¯ã¢ããªã±ãŒã·ã§ã³ãInBankã¹ããŒã¿ã¹ã«ç§»è¡ããŸãã
- éè¡ã¯èªåçã«ïŒæ£åŒãªEDã®å ŽåïŒãŸãã¯å°é家ã䜿çšããŠïŒæ£åŒãªEDã®å ŽåïŒååŒã確èªããŸãã ããšãã°ãéè¡ã®ã·ã¹ãã ã«ãªã¯ãšã¹ããéä¿¡ãããã¯ã©ã€ã¢ã³ãããŒã¿ã«ã¿ãã°å
ã®ã¯ã©ã€ã¢ã³ãã®è©³çŽ°ã確èªãããã®ä»ã®ãã§ãã¯ïŒã³ã³ãã©ã€ã¢ã³ã¹ã®ãã§ãã¯ãé貚管çãªã©ïŒã®ããã«å£åº§æ®é«ãšæºåéã確èªããŸãã
éè¡ã¯ãååŒã®å 容ãŸãã¯æ·»ä»æžé¡ã«é¢ããè«æ±ãããå Žåãç³è«ã®åçãæåŠãã æåŠã¹ããŒã¿ã¹ã«èšå®ããŸãã
éè¡ã¯ãç³è«ãå®è¡ããããšã«åæããå Žåã 確èªæžã¿ã¹ããŒã¿ã¹ãå²ãåœãŠãããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ã説æããæ£åŒãªEDã«åºã¥ããŠãéè¡ã¯éè¡ã®äŒèšã·ã¹ãã ã§å¿
èŠãªæäœãå®è¡ããŸãïŒä¿¡çšç¶ã®éé¡ãã¯ã©ã€ã¢ã³ãã¢ã«ãŠã³ããããã«ãã¬ããžã¢ã«ãŠã³ããã«è»¢éãããææ°æãååŽãããªã©ïŒ
éè¡ã¯ãã¹ããŒãã³ã³ãã©ã¯ããä¿¡çšç¶ãïŒä»¥äžãä¿¡çšç¶ïŒãçºè¡ãã Newã®ã¹ããŒã¿ã¹ãåãåããŸãã
ä¿¡çšç¶ã¯ãéè¡ãšå£²ãæã®ã¡ãŒã«ããã¯ã¹ã«çœ®ãããŸãã
ä¿¡çšç¶ã¯ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãã¬ã¹ãä¿æããŸããããã«ããããã€ã€ãŒããã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ããŒã¿ã¹ãç£èŠã§ããããã«ãã¢ããªã±ãŒã·ã§ã³ã®ä¿¡çšç¶ã®äž»èŠãªã¹ããŒã¿ã¹ãèªåçã«ããã©ãŒãã§ããŸãã
- éè¡ã¯æ£åŒãªEDãä¿¡çšç¶ïŒç³è«æžã®æ¡ä»¶ããèªåçã«äœæãããŸãïŒã«æ·»ä»ããååŒã®è©³çŽ°ããã®ä»ã®å¿
èŠãªææžã®èª¬æãããã³ãªãªãŒã¹æžã¿ã¹ããŒã¿ã¹ãèšå®ããŸãã
ä¿¡çšç¶ã«é¢é£ããä¿¡çšç¶ã®ã¹ããŒã¿ã¹ããªãªãŒã¹æžã¿ã«åãæ¿ãããŸãã
ãªãªãŒã¹æžã¿ã¹ããŒã¿ã¹ã«ç§»è¡ãããšãä¿¡çšç¶ã¯èªåçã«2ã€ã®ãªã¯ãšã¹ããå€éšãªã¯ãšã¹ããããã€ããŒã®ãã¥ãŒã«å ¥ããŸãã
- ä¿¡çšç¶ã®æå¹æéã®å¶åŸ¡ã®èŠæ±ïŒçŸåšã®æ¥ä»ãä¿¡çšç¶ã®æå¹æéãè¶ ãããšãã«ããªã¬ãŒãããŸãïŒ
- å¥çŽã®å®è¡ãåŸ æ©ããããã®èŠæ±ïŒç¹å®ã®èŠæ±ãã³ãã¬ãŒãã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ã³ã³ãã³ãã«ãã£ãŠæ±ºå®ãããŸãïŒ
- çºè¡ãããä¿¡çšç¶ã調ã¹ãåŸã売ãæã¯ãããåãå
¥ããããšãæåŠããå ŽåããããŸãããã®å Žåã圌ã¯ãããç¡å¹ã¹ããŒã¿ã¹ã«ç§»è¡ããä¿¡çšç¶ã¯ãã£ã³ã»ã«ããããã以äžã®æäœã¯äžå¯èœã«ãªããŸãã
ä¿¡çšç¶ã«é¢é£ããä¿¡çšç¶ã®ã¹ããŒã¿ã¹ãç¡å¹ã«åãæ¿ãããŸãã
- ä¿¡çšç¶ã®æå¹æéãåããæåã®ã€ãã³ããçºçãããšã æéåãã®ã¹ããŒã¿ã¹ãåãåãããã以äžã®æäœã¯äžå¯èœã«ãªããŸãã
ä¿¡çšç¶é¢é£ã®ç³è«ã¹ããŒã¿ã¹ãæéåãã«åãæ¿ãããŸãã
ãã®å Žåãèªå泚æãéè¡ã®äŒèšã·ã¹ãã ã«éä¿¡ãããä¿¡çšç¶ã®åãæ¶ãã«å¯Ÿå¿ããååŒãéå§ãããŸãïŒè£åã®è¿éãéè¡ã®çŸ©åã®çµäºãªã©ïŒã
- å¥çŽå®è¡ã€ãã³ããæåã«çºçããå ŽåïŒãŸãã¯å£²ãæãä¿¡çšç¶ã®æ¡ä»¶ã§èŠå®ãããEDãæ·»ä»ããå ŽåïŒãä¿¡çšç¶ã¯InBankã¹ããŒã¿ã¹ã«åãæ¿ãããŸãã InBankã¹ããŒã¿ã¹ã«ç§»è¡ãããšã Letter of Creditã¯èªåçã«æ¯æãèŠæ±ãå€éšèŠæ±ãããã€ããŒã®ãã¥ãŒã«å
¥ããæå¹æéã®å¶åŸ¡èŠæ±ããã¥ãŒããåé€ããŸãã
éè¡ã¯ãä¿¡çšç¶ã«æ·»ä»ãããæ£åŒãªEDã«åºã¥ããŠã泚æã決æžã·ã¹ãã ã«è»¢éãããããã¯ãã§ãŒã³å€ã§æ¯æããå®è¡ããããšã«ããã売ãæã«æå©ãªæ¯æããè¡ããŸãïŒæ¯æãã®å®éã®å®è¡ã«é¢ããæ å ±ã¯ãããã¯ãã§ãŒã³ã«è¿ãããŸãïŒã
- æ¯æå®è¡ã€ãã³ããããªã¬ãŒãããåŸãä¿¡çšç¶ã¯çµäºã¹ããŒã¿ã¹ã«åãæ¿ãããŸãã
ä¿¡çšç¶ã«é¢é£ããä¿¡çšç¶ã®ã¹ããŒã¿ã¹ãClosedã«åãæ¿ãããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ãå®äºããŸããã
ãã©ãããã©ãŒã ã³ã³ããŒãã³ãã®éžæ
ãã©ãããã©ãŒã ã®æ©èœã³ã³ããŒãã³ããéžæããéããªãŒãã³ãœãªã¥ãŒã·ã§ã³ïŒEthereumãSwarmãStorjïŒã«çŠç¹ãåœãŠãŸããã ããã«ã¯ã次ã®å©ç¹ããããŸãã
- éçºããããèªç«åãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ååš
- ãŠãŒã¶ãŒã«å¯ŸãããªãŒãã³æ§ãšãéè¡ãæäŸããã€ã³ã¿ãŒãã§ãŒã¹ã ãã§ãªãã代æ¿ãœãŒã¹ãä»ããŠæäœãå¶åŸ¡ããæ©èœ
- 競äºåã®ããã³ã³ã»ã³ãµã¹ãããã³ã«ãšç¬ç«ããããŒãã®é«å質ãªãéå¯å®¹ãªããããã¯ãŒã¯ã®ååšã«ããããŠãŒã¶ãŒåŽã®é«ã¬ãã«ã®ä¿¡é Œ
ãããã£ãŠãéžæã¯ä»¥äžã®å®è£ ãæ¯æããŠè¡ãããŸããã
- ãããã¯ãã§ãŒã³ãšã¹ããŒãã³ã³ãã©ã¯ã-ã€ãŒãµãªã¢ã ãšSolidityèšèªã
- åæ£ãã¡ã€ã«ã¹ãã¬ãŒãž-Swarmããã³Storj.ioã
- èªå®ãããæå·æ å ±ä¿è·èšŒææž-CryptoPROããã³CryptoARMã
- æŸéãªã©ã¯ã«-ç¬èªã®éçºã
- å€éšãªã¯ãšã¹ãã®ãããã€ããŒ-ç¬èªã®éçºã
- ããã¥ã¡ã³ãã¢ãã©ã€ã¶ãŒ-ãã®æ®µéã§ã¯ãäžè¬çã«ã¹ããŒãã³ã³ãã©ã¯ããšããåãããååã¯å€éšãªã¯ãšã¹ããããã€ããŒã«äŒŒãŠãããç 究ããŒã ã®ãªãœãŒã¹ã¯éãããŠãããããèæ ®ããªãããšã«ããŸããã
ã€ã³ãã©
å¿ èŠãªã³ã³ããŒãã³ããå±éããã«ã¯ïŒ
- EthereumãSwarmãStorj.ioã®ã¯ã©ã€ã¢ã³ãéšåã
- CPSIã
- å€éšãªã¯ãšã¹ããããã€ããŒã
- UIã¢ããªã±ãŒã·ã§ã³
- çµ±åã³ã¢ãã©ãããã©ãŒã
2å°ã®ãµãŒããŒãå²ãåœãŠãããŸããã
æåã®ãµãŒããŒã§ãã¹ããŒãã³ã³ãã©ã¯ãã®åºæ¬ãããã¯ã®ã€ãŒãµãªã¢ã ããŒããå±éãããŸããã åœåãåºæ¬çãªãããã¯ãã§ãŒã³ãšããŠRopstenãã¹ããããã¯ãŒã¯ã䜿çšãããŠããŸããããæçµæ®µéã§ã¯ããå®å®ããRinkebyã«åãæ¿ããŸããã ãã®çç±ã¯ã 3æã«çºçããRopstenã«å¯ŸããDDOSæ»æã®äºä»¶ã§ãæ°æ¥éãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå ããéã«åé¡ãçºçããŸããã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯2çªç®ã®ãµãŒããŒã«å±éããããã¡ã€ã«ã䜿çšããäœæ¥ãæäŸããŸããã
- DFS Storj.ioããŒã
- Ropston EthereumãµããŒãããŒããåããDarm SwarmããŒã
- CryptoProããã³CryptoARM
ããã«ãçžäºäœçšã®å©äŸ¿æ§ã®çç±ããããã©ãããã©ãŒã ã®çµ±åã³ã¢ãããã«å±éãããŸããã
å€éšèŠæ±ãããã€ããŒã¯åãµãŒããŒã«å±éãããŠãããå¿ èŠã«å¿ããŠä»»æã®ãµãŒããŒã§å®è¡ã§ããŸãã
UIã¢ããªã±ãŒã·ã§ã³ã¯ãä»»æã®ãµãŒããŒã§å®è¡ããããšããã€ã³ã¿ãŒãããçµç±ã§äœæ¥ããããã«ç¹å¥ãªãããã·ãããã³ã«ã䜿çšããããšãã§ããŸãã
ã³ã³ããŒãã³ãçµ±å
ã€ãŒãµãªã¢ã
Ethereumãããã¯ãã§ãŒã³ãšã®çµ±åã¯ãRPC API JSON-RPC ã Management-APIã䜿çšããŠå®è¡ãããŸããã
ãã®äœ¿çšã«æè¡çãªåé¡ã¯ãããŸããã§ããã
å€éšè£å®ãªãœãŒã¹ãšããŠã 䜿çšãããã¹ããããã¯ãŒã¯ã«å¿ããŠropsten.etherscan.ioãŸãã¯rinkeby.etherscan.ioã䜿çšãããŸããã
矀ã
Swarmãšã®çµ±åã¯ãHTTP APIïŒ Swarm-guide ã gist.github.comã䜿çšããŠå®è¡ãããŸãã ã
ãã¡ã€ã«ãSWARMã«ã¢ããããŒãããããã«ãHTTPãªã¯ãšã¹ãPUT / bzzã䜿çšããŸããïŒ$ PATH $ ïŒ$ PATH $ã¯ããŠã³ããŒããããã¡ã€ã«ãžã®ãã¹ã§ãïŒã
ããã«å¿çããŠãSWARMããæœåºããããã«äœ¿çšããããã¡ã€ã«ãããã§ã¹ãã®16é²èå¥åãæ¥ãŸããã
SWARMãããã¡ã€ã«ãååŸããããã«ãHTTPãªã¯ãšã¹ãGET / bzziïŒ/ $ MANIFEST $ / ïŒ$ MANIFEST $ã¯ãæœåºããããã¡ã€ã«ã®ãããã§ã¹ãã®16é²èå¥åã§ãïŒã䜿çšããŸããã
ãã¡ã€ã«ã®ã¢ããããŒã/ããŠã³ããŒãã«åé¡ã¯ãããŸããã§ããã
æ®å¿µãªããšã«ãå€éšç£èŠããŒã«ïŒEtherscan for Ethereumãªã©ïŒãSwarmã«èŠã€ãããªãã£ããããäœããã®æ¹æ³ã§ãã¡ã€ã«æäœã®æåãè©äŸ¡ããããšãå°é£ã«ãªããŸããã
Storj.io
éçºè ãæäŸããAPIã䜿çšããStorjãšã®çµ±åã¯ãéåžžã«å°é£ã§äžäŸ¿ã§ããããšãå€æããŸããã ãã®çµæãStorjãã¹ãã³ã³ãœãŒã«ããã¡ã€ã«ã®æäœã«äœ¿çšãããŸããã
ãã¡ã€ã«ãããŠã³ããŒãããããã«ãã³ãã³ãstorj upload-file $ BUCKET $ $ PATH $ ïŒ$ BUCKET $ã¯ããã¹ã±ãããã®èå¥åã$ PATH $ã¯ããŠã³ããŒããããã¡ã€ã«ãžã®ãã¹ïŒã䜿çšããŸããã
ã¢ããããŒããæåãããšãå¿çã¯ããŠã³ããŒãããããã¡ã€ã«ã®èå¥åã§ããã
ãã¡ã€ã«ãã¢ããããŒãããã«ã¯ãã³ãã³ãstorj download-file $ BUCKET $ $ FILE $ $ PATH $ã䜿çšããŸãã ïŒ$ BUCKETã¯ããã¹ã±ãããã®èå¥åã$ FILE $ã¯ãã¡ã€ã«ã®èå¥åã$ PATH $ã¯äœæãããã¡ã€ã«ã®ããŒã«ã«ã³ããŒãžã®ãã¹ã§ãïŒã
Storjã®ç¹æ§ã«ã¯ãåãååã®è€æ°ã®ãã¡ã€ã«ã1ã€ã®ããã¹ã±ãããã«å ¥ããããšãã§ããªããšããäºå®ãå«ãŸããŠãããããŠã³ããŒãæã«äžæã®ååãçæããã¡ã«ããºã ã䜿çšããå¿ èŠããããŸãã
APIããµããŒãããhttps://api.storj.ioãå€éšè£å®ãªãœãŒã¹ãšããŠäœ¿çšã§ããŸãã
CryptoARM
CryptoARMãšã®çµ±åã¯ã圌ãæäŸããCOMãµãŒãã¹ã䜿çšããŠå®è¡ãããŸããã å®è£ ã®é床ãäžããããã«ãçµ±åã¹ã¯ãªããã¯vbsã§äœæãããŸããã
å€éšãªã¯ãšã¹ããããã€ããŒ
ã¹ããŒãã³ã³ãã©ã¯ããšå€éšãªã¯ãšã¹ããããã€ããŒãšã®å¯Ÿè©±ã¯ã次ã®ã¹ããŒã ã«åŸã£ãŠå®è¡ãããŸãã
ã¯ãšãªãããã€ããŒã®å®è£
ã®è©³çŽ°ãªèª¬æ
ããã»ã¹ã説æããåã«ãããã€ãã®åºæ¬çãªæŠå¿µãå®çŸ©ããå¿
èŠããããŸãã
å€éšã¯ãšãªãããã€ããŒã䜿çšããã«ã¯ãã¹ããŒãã³ã³ãã©ã¯ããGetExternalRequest ã SetExternalResponse ãããã³CheckExternalResponseã¡ãœããã§æ§æãããç¹å¥ãªã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããå¿ èŠããããŸãã
å€éšã€ãã³ããããã€ããŒãšã®èŠæ±ã«å¯Ÿãããå€éšãå¿çãåãåãããå¥çŽã®çžäºäœçšã®é åºã¯æ¬¡ã®ãšããã§ãã
å¿ èŠã«å¿ããŠãã³ã³ãã©ã¯ãèªäœã¯ãRequestsQueueã¹ããŒãã³ã³ãã©ã¯ãã®DeleteRequestã¡ãœããã䜿çšããŠãäžèŠã«ãªã£ããªã¯ãšã¹ããåé€ã§ããŸãã
ããã§ã¯ãèŠæ±ãã³ãã¬ãŒããååã«è€éãªããžãã¯ã䜿çšããŠãå¿çãåä¿¡ããã€ãã³ãã解éã§ãããšããäºå®ã«æ³šæãæãå¿ èŠããããŸãã ããšãã°ããªã¯ãšã¹ããç¹å®ã®çµæã®ã¿ãçæããå Žåã«ã®ã¿ãã¬ã¹ãã³ã¹ãåä¿¡ãããšã¿ãªãããšãã§ããŸãããã®çµæã«ã€ããŠã®ã¿ããªã¯ãšã¹ãã泚æããå¥çŽã«ã¬ã¹ãã³ã¹ãéä¿¡ãããŸãã ä»ã®ãã¹ãŠã®çµæã¯ç¡èŠããããªã¯ãšã¹ãã¯åŒãç¶ãå®è¡ãããŸãã åæ§ã«ããã³ãã¬ãŒãã§ã¯ãè€æ°ã®å€éšãœãŒã¹ãäžåºŠã«ã¢ãã¬ã¹æå®ããããããç¹å®ã®çµã¿åããã®ãã©ã€ããŒããªåçãåãåãå¿ èŠããããŸãã
ãäžæ£ãªããªã¯ãšã¹ãã®ãœãŒã¹ãé€å€ããããã«ãã¹ããŒããã¥ãŒã³ã³ãã©ã¯ãã«ã¯ã¢ãã¬ã¹ã®ç®¡çãªã¹ããå«ãŸããŸããããã¯ããªã¯ãšã¹ãããã¥ãŒã«å ¥ãããã©ã³ã¶ã¯ã·ã§ã³ã®ãœãŒã¹ïŒtxn.originïŒã¢ãã¬ã¹ã§ããå¿ èŠããããŸãã
以äžã¯ãã³ã³ãã©ã¯ãã§ã®ã¡ãœããã®å®è£ ã®äŸã§ãã
æå®ãããå¥çŽã«ã¯ãæ¥ä»ã®æéåãïŒOVERDUEãã³ãã¬ãŒãïŒãšçµç¹ç»é²ã®æ€èšŒïŒDADATA_EXISTS_WAITïŒã®2ã€ã®å€éšèŠæ±ã®åŒã³åºããå«ãŸããŸãã
å€éšãªã¯ãšã¹ãã®åŠçã«çŽæ¥é¢ä¿ããªãã³ãŒãã¯é€å€ãããŸãã
- èŠæ±èå¥åã¯32æåã®å€ïŒ64æ¡ã®16é²æ°ïŒã§ãããå¥çŽã®ã¢ãã¬ã¹ã®æåã®20æåïŒ16é²æ°ã®40ïŒãå«ãŸããŠããŸãã次ã«ãå¿çãåä¿¡ãããšãã«ãå¥çŽãèŠæ±ã«å¯Ÿããé©åãªå¿çãåä¿¡ã§ããããã«ããä»»æã®æ å ±ã
- å¿ç ID-å€éšèŠæ±ãããã€ããŒãå¿çã¡ãã»ãŒãžãäžæã«èå¥ã§ããããã«ããäžæã®32æåã®å€ïŒ64æ¡ã®16é²æ°ïŒã
å€éšã¯ãšãªãããã€ããŒã䜿çšããã«ã¯ãã¹ããŒãã³ã³ãã©ã¯ããGetExternalRequest ã SetExternalResponse ãããã³CheckExternalResponseã¡ãœããã§æ§æãããç¹å¥ãªã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããå¿ èŠããããŸãã
å€éšã€ãã³ããããã€ããŒãšã®èŠæ±ã«å¯Ÿãããå€éšãå¿çãåãåãããå¥çŽã®çžäºäœçšã®é åºã¯æ¬¡ã®ãšããã§ãã
- ã³ã³ãã©ã¯ãã¯ã AddRequestã¡ãœãããä»ããŠããªã¯ãšã¹ãIDãRequestsQueueã¹ããŒãã³ã³ãã©ã¯ãã«æž¡ããŸããã¹ããŒãã³ã³ãã©ã¯ãã®ã¢ãã¬ã¹ã¯åºå®ãããŠããŸãã
- å€éšèŠæ±ãããã€ããŒïŒLTPïŒã¯ã GetRequestsã¡ãœããã䜿çšããŠRequestsQueueã¹ããŒãã³ã³ãã©ã¯ããå®æçã«ããŒãªã³ã°ããå®è¡ãããèŠæ±ã®ææ°ã®ãªã¹ããååŸããŸãã
- æ°ãããªã¯ãšã¹ããåä¿¡ããããšãPMPã¯GetExternalRequestã¡ãœãããä»ããŠã³ã³ãã©ã¯ãã«ã¢ã¯ã»ã¹ãããªã¯ãšã¹ãèå¥åãããªã¯ãšã¹ããã©ã¡ãŒã¿ãåä¿¡ããŸãã
- ãªã¯ãšã¹ãã®å®è¡é »åºŠïŒããšãã°ããDAILY 10:00ããŸãã¯ãPERIOD 20ãïŒ
- ãªã¯ãšã¹ããã³ãã¬ãŒãèå¥åïŒãCALENDARãããDADATA_NAME_EXISTSããªã©ïŒ
- å¿ èŠã«å¿ããŠè¿œå ã®ãã©ã¡ãŒã¿ãŒïŒããšãã°ããã³ãã¬ãŒããDADATA_NAME_EXISTSãã®çµç¹åïŒ
- PVZãã¥ãŒã®äžè¬çãªç®¡çã®é åºã§ããã®èŠæ±ã«èšå®ãããé »åºŠã§ãèŠæ±ãã³ãã¬ãŒããšæ·»ä»ãã©ã¡ãŒã¿ãŒã«åŸã£ãŠå€éšãªãœãŒã¹ãããŒãªã³ã°ããŸãã
- ãã³ãã¬ãŒãã«åã蟌ãŸããããžãã¯ã«åŸã£ãŠãèŠæ±ãžã®å¿çãåä¿¡ããããšèŠãªãããå ŽåãPVZã¯èŠæ±èå¥åãšå¿çèå¥åãšãšãã«SetExternalResponseã¡ãœãããä»ããŠãããå¥çŽã«è»¢éããŸãã
ãã®å Žåãå¥çŽã¯åä¿¡ããå¿çã®é©åãªåŠçãå®è¡ããããã«å¶åŸ¡ããããã«å¿çèå¥åãèšé²ãããã®ãšããŸãã - ããã«ãPVZã¯ã CheckExternalResponseã¡ãœããã䜿çšããŠãå¿çãåä¿¡ããŠââåŠçãããã©ãããããã³å¯Ÿå¿ããèŠæ±ã®éåœã確èªããŸãã
å¥çŽã§ã¯ã次ã®ãªãã·ã§ã³ã®ãããããæäŸã§ããŸãã
- FAIL-å¿çãåä¿¡ããŠââããªããåŠçããŠããªãããŸãã¯æ£ãããªã-èŠæ±ãç¹°ãè¿ããŠå¿çãéä¿¡ããå¿ èŠããã
- REPEAT-çãã¯åãå ¥ããããŸããåã®ãã©ã¡ãŒã¿ãŒã§å¯Ÿå¿ãããªã¯ãšã¹ãã®å®è¡ãç¶ç¶ããå¿ èŠããããŸã
- DELETE-å¿çãåãå ¥ããããŸãããèŠæ±ã¯ãã¥ãŒããåé€ããå¿ èŠããããŸã
- DELETE_ALL-åçã¯åãå ¥ããããŸããããã®å¥çŽããåä¿¡ãããã¹ãŠã®ãªã¯ãšã¹ãããã¥ãŒããåé€ããå¿ èŠããããŸã
- åã®æ®µèœã§å¥çŽãåçDELETEïŒDELETE_ALLïŒãéä¿¡ããå ŽåãPVZã¯DeleteRequestã¡ãœããã䜿çšããŠRequestsQueueã¹ããŒãã³ã³ãã©ã¯ãããèŠæ±ãåé€ããŸãã
å¿ èŠã«å¿ããŠãã³ã³ãã©ã¯ãèªäœã¯ãRequestsQueueã¹ããŒãã³ã³ãã©ã¯ãã®DeleteRequestã¡ãœããã䜿çšããŠãäžèŠã«ãªã£ããªã¯ãšã¹ããåé€ã§ããŸãã
ããã§ã¯ãèŠæ±ãã³ãã¬ãŒããååã«è€éãªããžãã¯ã䜿çšããŠãå¿çãåä¿¡ããã€ãã³ãã解éã§ãããšããäºå®ã«æ³šæãæãå¿ èŠããããŸãã ããšãã°ããªã¯ãšã¹ããç¹å®ã®çµæã®ã¿ãçæããå Žåã«ã®ã¿ãã¬ã¹ãã³ã¹ãåä¿¡ãããšã¿ãªãããšãã§ããŸãããã®çµæã«ã€ããŠã®ã¿ããªã¯ãšã¹ãã泚æããå¥çŽã«ã¬ã¹ãã³ã¹ãéä¿¡ãããŸãã ä»ã®ãã¹ãŠã®çµæã¯ç¡èŠããããªã¯ãšã¹ãã¯åŒãç¶ãå®è¡ãããŸãã åæ§ã«ããã³ãã¬ãŒãã§ã¯ãè€æ°ã®å€éšãœãŒã¹ãäžåºŠã«ã¢ãã¬ã¹æå®ããããããç¹å®ã®çµã¿åããã®ãã©ã€ããŒããªåçãåãåãå¿ èŠããããŸãã
ãäžæ£ãªããªã¯ãšã¹ãã®ãœãŒã¹ãé€å€ããããã«ãã¹ããŒããã¥ãŒã³ã³ãã©ã¯ãã«ã¯ã¢ãã¬ã¹ã®ç®¡çãªã¹ããå«ãŸããŸããããã¯ããªã¯ãšã¹ãããã¥ãŒã«å ¥ãããã©ã³ã¶ã¯ã·ã§ã³ã®ãœãŒã¹ïŒtxn.originïŒã¢ãã¬ã¹ã§ããå¿ èŠããããŸãã
ãªã¯ãšã¹ããã¥ãŒã³ã³ãã©ã¯ãã¡ãœããã®èª¬æ
| ãªã¯ãšã¹ãããã¥ãŒã«è¿œå | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
| ãã¥ãŒãããªã¯ãšã¹ããåé€ãã | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
| ãã¥ãŒã«å ¥ãããããªã¯ãšã¹ãã®ç¢ºèª | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
| ã¯ãšãªããããªã¯ãšã¹ãèå¥åãäžèŠ§è¡šç€ºãã | å
¥åãã©ã¡ãŒã¿ãŒã¯ãããŸããã
åºåãã©ã¡ãŒã¿ãŒïŒ
|
| èªèšŒæžã¿ã¢ãã¬ã¹ã®ãªã¹ãã«ã¢ãã¬ã¹ãè¿œå ããŸã | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
| èš±å¯ãããäœæã®ãªã¹ãã§äœæã確èªããŸã | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
å¥çŽã«å¿ èŠãªã€ã³ã¿ãŒãã§ãŒã¹ã¡ãœããã®èª¬æ
| ãªã¯ãšã¹ããã©ã¡ãŒã¿ãè¿ã | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
| èŠæ±å¿çãåãå ¥ãã | å
¥åãã©ã¡ãŒã¿ãŒïŒ
|
| èŠæ±ãžã®å¿çãåŠçããäºå®ã確èªããŠãã ãã | å
¥åãã©ã¡ãŒã¿ãŒïŒ
åºåããŒã¿ïŒ
|
å®è£ äŸ
以äžã¯ãã³ã³ãã©ã¯ãã§ã®ã¡ãœããã®å®è£ ã®äŸã§ãã
æå®ãããå¥çŽã«ã¯ãæ¥ä»ã®æéåãïŒOVERDUEãã³ãã¬ãŒãïŒãšçµç¹ç»é²ã®æ€èšŒïŒDADATA_EXISTS_WAITïŒã®2ã€ã®å€éšèŠæ±ã®åŒã³åºããå«ãŸããŸãã
å€éšãªã¯ãšã¹ãã®åŠçã«çŽæ¥é¢ä¿ããªãã³ãŒãã¯é€å€ãããŸãã
æ ŒçŽãããå€æ°ã®èª¬æ
bytes32 Status ;
bytes32 ExpireDate ;
bytes32 OrgName ;
address Queue ;
bytes32[] Request_1 ;
bytes32[] Request_2 ;
bytes32 Request_id_1 ;
bytes32 Request_id_2 ;
bytes32 Response_id_1 ;
bytes32 Response_id_2 ;
å¥çŽã³ã³ã¹ãã©ã¯ã¿ãŒ
function SomeContract(..., bytes32[] logics)
{
Owner =msg.sender ;
ExpireDate=logics[0] ;
OrgName =logics[1] ;
Status ="New" ;
Queue =0xd9b076d0b559f70782f379582bd3d54b85fc42cb ;
Request_1.length= 3 ;
Request_1[0] ="DAILY 00:10" ;
Request_1[1] ="OVERDUE" ;
Request_1[2] = ExpireDate ;
Request_2.length= 3 ;
Request_2[0] ="PERIOD 10" ;
Request_2[1] ="DADATA_EXISTS_WAIT" ;
Request_2[2] = OrgName ;
}
ãã¥ãŒãžã®ãªã¯ãšã¹ãã®ç»é²ïŒå¥çŽãé©åãªã¹ããŒã¿ã¹ã«ç§»è¡ãããšãïŒ
function SetStatus(bytes32 status_, ...)
{
address self_addr ;
Status=status_ ;
if(status_=="Released_") {
self_addr=this ;
Request_id_1=bytes32(bytes20(self_addr)) | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x001" ;
Request_id_2=bytes32(bytes20(self_addr)) | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002" ;
Queue.call.gas(0x30000).value(0)(bytes4(sha3("AddRequest(bytes32)")), Request_id_1) ;
Queue.call.gas(0x30000).value(0)(bytes4(sha3("AddRequest(bytes32)")), Request_id_2) ;
}
}
ãªã¯ãšã¹ããã©ã¡ãŒã¿ãè¿ã
function GetExternalRequest(bytes32 request_id_) constant returns (bytes32[] retVal)
{
if(request_id_==Request_id_1) return(Request_1) ;
if(request_id_==Request_id_2) return(Request_2) ;
}
èŠæ±å¿çãåãå ¥ãã
function SetExternalResponse(bytes32 response_id_, bytes32 request_id_, bytes32[] response_)
{
if(tx.origin!=Owner) return ;
if(Status!="Released_") return ;
if(request_id_==Request_id_1) {
Response_id_1=response_id_ ;
Status ="Overdue__" ;
}
if(request_id_==Request_id_2) {
Response_id_2=response_id_ ;
Status ="ToBank___" ;
}
}
ã³ãã¥ããã£ã®å©çã®ããã«
å€éšã€ãã³ãã远跡ãããªã©ã¯ã«ãå€éšã¯ãšãªãããã€ããŒãšé£æºããããã®ãã¯ãããžãŒãè©Šããã人ã®ããã«ãEthereum Rinkebyãããã¯ãŒã¯ã«ãããã€ããŸããã
- ã«ã¬ã³ããŒã®ç¥èšïŒã¢ã¹ã¯ã¯ã§çŸåšã®æ¥ä»ãäžããïŒ
- å€éšã¯ãšãªããŒã¿ã«
ã«ã¬ã³ããŒãªã©ã¯ã«
ã«ã¬ã³ããŒOracleã¯ãRinkebyãã¹ããããã¯ãŒã¯ã®79548a65e3ce179ec8d208c22ee84435dc34058fã«ãããã¢ã¹ã¯ã¯ã®çŸåšã®ã«ã¬ã³ããŒæ¥ä»ãYYYY / MM / DD圢åŒã§è¡šç€ºããŸãã
ãªã©ã¯ã«ãžã®èšŽãã®äŸïŒ
contract Check_request
{
Calendar Oracle ; // -
bytes32 Date ;
function Check_request()
{
// -
Oracle=Calendar(0x79548a65e3ce179ec8d208c22ee84435dc34058f) ;
//
Date=Oracle.GetDate() ;
}
}
//
//
//
contract Calendar
{
function GetDate() constant returns (bytes32 retVal) ;
}
å€éšã¯ãšãªããŒã¿ã«
å€éšå¥çŽããŒã¿ã«ã®ã¹ããŒãå¥çŽãã¥ãŒã¯ãRinkebyãã¹ããããã¯ãŒã¯ã®d9b076d0b559f70782f379582bd3d54b85fc42cbã«ãããŸãã
å€éšãªã¯ãšã¹ãããŒã¿ã«ãšããåãããããã®ãããã³ã«ã¯äžèšã®ãšããã§ãã çŸåšã次ã®ã¯ãšãªãã³ãã¬ãŒããå ¬éãããŠããŸãã
- æéåã-æéåãæ¥ã®å¶åŸ¡ããªã¯ãšã¹ããã©ã¡ãŒã¿-YYYY / MM / DD圢åŒã®æéåãæ¥
ã€ãã³ãã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãæ¥ä»ã®é 延ã®æ€åºæã«èŠæ±ãããã¹ããŒãã³ã³ãã©ã¯ãã«éä¿¡ãããçŸåšã®æ¥ä»ãå«ãŸããŸãã - WEATHER_TEMP-çŸåšã®æž©åºŠã®èŠæ±ïŒ api.openweathermap.orgããŒã¿ã«çµç±ïŒãèŠæ±ãã©ã¡ãŒã¿ãŒã¯éœåžã®ååãããšãã°ã¢ã¹ã¯ã¯ïŒè©³çŽ°ã¯ãœãŒã¹ããŒã¿ã«ã§ç¢ºèªã§ããŸãïŒã
ã€ãã³ãã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ããœãŒã¹ããŒã¿ã«ããå¿çãåä¿¡ãããšãã«ãèŠæ±ãããã¹ããŒãã³ã³ãã©ã¯ãã«éä¿¡ãããŸãã
å€éšãªã¯ãšã¹ãã®ããŒã¿ã«ã®ãã¥ãŒã«ã¢ã¯ã»ã¹ããã«ã¯ããã¥ãŒã€ã³ã°ãã©ã³ã¶ã¯ã·ã§ã³ã®éä¿¡å ã§ããã€ãŒãµãªã¢ã ã¢ã«ãŠã³ãã®ã¢ãã¬ã¹ãïŒã³ã¡ã³ããŸãã¯å人ã®ã¡ãŒã«ã§ïŒãç¥ãããã ããã
ææãµãŒãã¹ã®ã¡ã«ããºã ããããã°ããã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã«0.1 Etherãé©çšããããšããå§ãããŸãïŒç¡æã§ããã¹ããããã¯ãŒã¯ã«ãããŸãïŒã Rinkebyã§ã¯ãPoAãããã³ã«ã«ãããã€ãã³ã°ã®äžè¶³ã®ãããfaucetã䜿çšããŠã®ã¿ãšãŒãã«ãååŸã§ããŸãã
ãµãŒãããŒãã£ã®ã³ã³ããŒãã³ããçµ±åããçµéšã«é¢ããããã€ãã®ã¡ã¢
ã€ãŒãµãªã¢ã
ã¹ããŒãã³ã³ãã©ã¯ãã®ææãµãŒãã¹ãå®è£ ããå Žåããã©ã³ã¶ã¯ã·ã§ã³ã®éå§è ãç ç²ã«ããã®ã§ã¯ãªãããåä¿¡ãã¹ããŒãã³ã³ãã©ã¯ããç ç²ã«ããŠãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ã§ããããšãéåžžã«äŸ¿å©ã§ãïŒåœç¶ãã¹ããŒãã³ã³ãã©ã¯ããäœããã®æ¹æ³ã§åæãè¡šæããå Žå- ãä¿¡é Œã§ããã¢ãã¬ã¹ã®ã¡ã«ããºã ãªã©ãåå ã§ãïŒã ããã«ãããããµãŒãã¹ãã®æ±ºæžã¡ã«ããºã ãå€§å¹ ã«ç°¡çŽ åãããŸãããã©ã³ã¶ã¯ã·ã§ã³ã®éå§è ã¯ãã¹ããŒãã³ã³ãã©ã¯ãã¡ãœããã®å®è¡ã«å¯ŸããŠãæ¯æããè¡ãããããã®ã³ã¹ãïŒå®è¡ïŒã¯åžžã«äºåã«æ±ºå®ã§ããŸããã
ã€ãŒãµãªã¢ã ã®å ç¢æ§
ãå€ã®äžçããšçžäºäœçšããèªæã§ãªãã¹ã¯ãªããã®éçºã¯ãæååãæäœããããã®çµã¿èŸŒã¿é¢æ°ïŒé£çµãæ€çŽ¢ããã©ã°ã¡ã³ãã«ããïŒããªããããéåžžã«è€éã§ãã
ã€ãŒãµãªã¢ã ã®çŸ€ã
ã¡ã€ã³ã®ã€ãŒãµãªã¢ã ãšåæ§ã«ãSwarmãžã®ãã¡ã€ã«ã®ã¢ããããŒãã確èªããïŒä»ã®ããŒãã«é åžããïŒã¡ã«ããºã ãæã€ããšãéåžžã«æãŸããã§ã-ãã©ã³ã¶ã¯ã·ã§ã³ç¢ºèªãšåæ§ã§ãã ãã¡ã€ã«ãããŒãã®å€éšã®ã©ããã«ä¿åãããŠãããã©ããã¯äžæã§ãã
ãœãŒã¹ãããã«ãããWindowsã§Swarmãã¹ãããããã€ããããšã¯éåžžã«éèŠãªã¿ã¹ã¯ã§ãã éçºè ã¯ãLinuxããã³OSXã®ã¿ã®ããã¥ã¡ã³ãããã¹ãããã³æºåããŸããããããã¯æ£çŽã«èªããããŠããŸãã
Storj.io
䜿çšãéåžžã«é£ããã詳现ãããAPIã çµ±åã容æã«ããããã«ãEthereum Swarmã«å®è£ ãããŠãããã®ãšåæ§ã®ãæ¡å€§ããããAPIãå¿ èŠã§ãããã¡ã€ã«ãé 眮ãããã¡ã€ã«ãæœåºããŸãã
ãã¡ã€ã«ãžã®ãã«ããŠãŒã¶ãŒã¢ã¯ã»ã¹ã®å¯èœæ§ã¯ãããŸããã ã€ãŸãããã¡ã€ã«ã¯ãèšé²ãããã¢ã«ãŠã³ãã®è©³çŽ°ããã®ã¿èªã¿åãããšãã§ããŸãã ããã¯ããã«ããŠãŒã¶ãŒãã¡ã€ã«å ±æã®çµç¹ã«ãšã£ãŠãã¢ã«ãŠã³ãã®è©³çŽ°ãå®éã«ãå ¬éãããå¿ èŠããããšããäºå®ã«ã€ãªãããŸããããã¯ãææãµãŒãã¹ãèãããšãè¯ãç¿æ £ã§ã¯ãããŸããã
調æ»çµæ
çŸåšããããã¯ãã§ãŒã³ãšã³ã·ã¹ãã ã®çç£çãªã³ã³ããŒãã³ããŸãã¯çç£çãªã³ã³ããŒãã³ãã«è¿ã¥ããŠããããšã«ããã貿æéèååŒã®å®è¡ããã»ã¹ããµããŒãããããã«å¿ èŠãªæ©èœãå®å šã«å®çŸããããšãã§ããŸãã
ãã¡ãããç¹å®ã®éæè¡çãªåé¡ããããŸããããã®è§£æ±ºçã¯ããããã¯ãã§ãŒã³äžã§ã®è²¿æéèã®ããã®å€§èŠæš¡ãªãããžã§ã¯ãïŒããã³ã¿ã¹ã¯ã®ç¹ã§ããã«è¿ãå€ãã®æ¹åæ§ïŒã®å®è£ ã«ã€ããŠè©±ãããã«å¿ èŠã§ãã
ãŸãããããã¯ãã§ãŒã³å ã®ãšã³ããªã®æ³çã¹ããŒã¿ã¹ãå«ãããããã¯ãã§ãŒã³ãéããŠå®è¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®æ³çåé¡ã
第äºã«ãçŸåšãã·ã¢ã§ã¯ãéè¡ã«ããå ¬å ±ãããã¯ãã§ãŒã³ã®äœ¿çšã¯ãæå·é貚ã«é¢ããèŠå¶åœå±ã®ç«å Žã«ãã£ãŠå®éã«ãããã¯ãããŠããŸãïŒãããã®äœ¿çšã®çŠæ¢ã«ãããååŒïŒååŒææ°æïŒãè¿œå ããããã®ææ°æãæ¯æãããšãã§ããªããªããŸãã ãã®å Žåã決æžã¯ãã©ã³ã¶ã¯ã·ã§ã³ã§ã¯ãªããã¹ããŒãã³ã³ãã©ã¯ããäœæããããããšå¯Ÿè©±ããæ¹æ³ãšããŠå¿ èŠã§ãã
第äžã«ãé»åææžåœ¢åŒã®æšæºåã¯ãèªåæ€èšŒã®å¯èœæ§ã®ããã«å¿ èŠã§ãã
æåŸã«ããããã¯ãã§ãŒã³ã®ãšã³ã·ã¹ãã ãå€éšã€ãã³ãã®ãœãŒã¹ã§é£œåãããå¿ èŠããããŸãïŒããŸããŸãªã¬ãžã¹ããªã®ãªã©ã¯ã«ãéè¡ã茞éäŒç€Ÿã®æ å ±ã·ã¹ãã ãªã©ã ããã«ãããå€éšã€ãã³ããæåã§å ¥åããå¿ èŠããªããªããã¹ããŒãã³ã³ãã©ã¯ãã®å®è¡ãå®å šã«èªååãããéå人åãããŸãã
ãã®ãããªãããžã§ã¯ãã§ã¯ãæè¡çãªåŽé¢ãäœæ¥ã®æãéèŠãªéšåã§ã¯ãªãããšãæããã«ãªããŸãã éçºãæ¢ã«å®äºããã®ã§ãç§ãã¡ã¯åŒãç¶ãåŒè·å£«ãšååããä»ã®éè¡ãšååããŠãé»åææžã®çµ±äžãã©ãŒãããèŠä»¶ãå®çŸ©ããŠã³ã³ãã³ãã®æ€èšŒãèªååããã¢ãããŒãã«ã€ããŠåãçµãã§ããŸãã
ä¿¡çšç¶ã®ããã±ãŒã¹ã«ãããæè¡åéãšTFã®åéã§ã®åæ£åã¢ããªã±ãŒã·ã§ã³ã®å®è£ çµéšã®äž¡æ¹ãåŸãããšãã§ããŸããã çŸåšããã€ãããã®äœæã«èå³ãããããã€ãã®é åãæ€èšããŠããŸãããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
ã楜ãã¿ã«ïŒ