XNUMX 幎以äžã«ããããç§ã¯ãCreating Solidity Smart Contracts for the Ethereum Blockchainããšããæ¬ã«åãçµãã§ããŸããã å®è·µã¬ã€ãããå®æããæžç±åãããŸããã
ç§ã®æ¬ããEthereum ãããã¯ãã§ãŒã³çšã® Solidity ã¹ããŒã ã³ã³ã¿ã¯ããšåæ£å DApps ã®äœæãããã«å§ããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã å®è·µçãªã¿ã¹ã¯ãå«ã 12 ã¬ãã¹ã³ã§æ§æãããŠããŸãã ããããå®äºãããšãèªè ã¯ç¬èªã®ããŒã«ã« Ethereum ããŒããäœæããã¹ããŒã ã³ã³ãã©ã¯ããå ¬éããŠãã®ã¡ãœãããåŒã³åºãããªã©ã¯ã«ã䜿çšããŠçŸå®äžçãšã¹ããŒã ã³ã³ãã©ã¯ãã®éã§ããŒã¿ã亀æããRinkeby ãã¹ã ãããã° ãããã¯ãŒã¯ãæäœã§ããããã«ãªããŸãã
ãã®æ¬ã¯ããããã¯ãã§ãŒã³ã®åéã®é«åºŠãªãã¯ãããžãŒã«èå³ããããèå³æ·±ãææãªä»äºãããããã®ç¥èããã°ããç¿åŸããããã¹ãŠã®äººã察象ãšããŠããŸãã
以äžã«ãã®æ¬ã®ç®æ¬¡ãšç¬¬ XNUMX ç« ã瀺ããŸã (ãŸãã
ç®æ¬¡å°å
¥ç§ãã¡ã®æ¬ã¯ãã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã®åçãç解ããã ãã§ãªãããã®ãããã¯ãŒã¯çšã® Solidity ããã°ã©ãã³ã°èšèªã§åæ£å DApps ãäœæããå®è·µçãªã¹ãã«ãç¿åŸããã人ã察象ãšããŠããŸãã
ãã®æ¬ãèªãã ãã§ãªããã¬ãã¹ã³ã§èª¬æãããŠããå®è·µçãªã¿ã¹ã¯ãå®è¡ããªããããã®æ¬ãèªãã§äœæ¥ããããšããå§ãããŸãã åäœããã«ã¯ãDebian ãŸã㯠Ubuntu OS ãã€ã³ã¹ããŒã«ãããããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒãä»®æ³ãµãŒããŒããŸãã¯ã¯ã©ãŠã ãµãŒããŒãå¿ èŠã§ãã Raspberry Pi ã䜿çšããŠå€ãã®ã¿ã¹ã¯ãå®è¡ããããšãã§ããŸãã
æåã®ã¬ãã¹ã³ã§ ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã®åäœåçãšåºæ¬çšèªãèŠãŠããã®ãããã¯ãã§ãŒã³ãã©ãã§äœ¿çšã§ãããã«ã€ããŠã説æããŸãã
ç®æš XNUMXåç®ã®ã¬ãã¹ã³ â ãã®ã³ãŒã¹å ã®ãããªãäœæ¥ã®ããã«ãUbuntu ããã³ Debian ãµãŒããŒäžã§ãã©ã€ããŒã Ethereum ãããã¯ãã§ãŒã³ ããŒããäœæããŸãã ãããã¯ãã§ãŒã³ ããŒãã®åäœãä¿èšŒãã geth ã swarm åæ£ããŒã¿ ã¹ãã¬ãŒãž ããŒã¢ã³ãªã©ã®åºæ¬ãŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ããæ©èœãèŠãŠãããŸãã
XNUMXåç®ã®ã¬ãã¹ã³ å®äŸ¡ãª Raspberry Pi ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã§ã€ãŒãµãªã¢ã ãå®éšããæ¹æ³ãæããŸãã Raspberry Pi ã« Rasberian ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã (OS)ããããã¯ãã§ãŒã³ ããŒãã«é»åãäŸçµŠãã Geth ãŠãŒãã£ãªãã£ãããã³ Swarm åæ£ããŒã¿ ã¹ãã¬ãŒãž ããŒã¢ã³ãã€ã³ã¹ããŒã«ããŸãã
ã¬ãã¹ã³ XNUMX ã¯ãã€ãŒãµãªã¢ã ãããã¯ãŒã¯äžã®ã¢ã«ãŠã³ããšæå·é貚ãŠããããããã³ Geth ã³ã³ãœãŒã«ããããã¢ã«ãŠã³ãããå¥ã®ã¢ã«ãŠã³ãã«è³éã転éããæ¹æ³ã«ç¹åããŠããŸãã ã¢ã«ãŠã³ããäœæããè³é移åååŒãéå§ããååŒã¹ããŒã¿ã¹ãšé åæžãååŸããæ¹æ³ãåŠã³ãŸãã
XNUMXåç®ã®ã¬ãã¹ã³ã§ã¯ ã€ãŒãµãªã¢ã ãããã¯ãŒã¯äžã®ã¹ããŒã ã³ã³ãã©ã¯ãã«ã€ããŠç解ããã€ãŒãµãªã¢ã ä»®æ³ãã·ã³ã«ããã¹ããŒã ã³ã³ãã©ã¯ãã®å®è¡ã«ã€ããŠåŠã³ãŸãã
Ethereum ãã©ã€ããŒã ãããã¯ãŒã¯äžã§æåã®ã¹ããŒã ã³ã³ãã©ã¯ããäœæããŠå
¬éãããã®é¢æ°ãåŒã³åºãæ¹æ³ãåŠã³ãŸãã ãããè¡ãã«ã¯ãRemix Solidity IDE ã䜿çšããŸãã solc ããã ã³ã³ãã€ã©ãã€ã³ã¹ããŒã«ããŠäœ¿çšããæ¹æ³ãåŠç¿ããŸãã
ããããã¢ããªã±ãŒã·ã§ã³ ãã€ã㪠ã€ã³ã¿ãŒãã§ã€ã¹ (ABI) ã«ã€ããŠã説æãããã®äœ¿çšæ¹æ³ã«ã€ããŠã説æããŸãã
XNUMXçªç®ã®ã¬ãã¹ã³ Node.js ãå®è¡ãã JavaScript ã¹ã¯ãªããã®äœæãšãSolidity ã¹ããŒã ã³ã³ãã©ã¯ãã䜿çšããæäœã®å®è¡ã«ç¹åããŠããŸãã
UbuntuãDebianãRasberian OS ã« Node.js ãã€ã³ã¹ããŒã«ããã€ãŒãµãªã¢ã ããŒã«ã« ãããã¯ãŒã¯äžã§ã¹ããŒã ã³ã³ãã©ã¯ããå ¬éãããã®é¢æ°ãåŒã³åºãããã®ã¹ã¯ãªãããäœæããŸãã
ããã«ãã¹ã¯ãªããã䜿çšããŠéåžžã®ã¢ã«ãŠã³ãéã§è³éã転éããæ¹æ³ããã¹ããŒã ã³ã³ãã©ã¯ã ã¢ã«ãŠã³ãã«è³éãå ¥éããæ¹æ³ãåŠã³ãŸãã
XNUMXåç®ã®ã¬ãã¹ã³ã§ã¯ Solidity ã¹ããŒã ã³ã³ãã©ã¯ãéçºè ã®éã§äººæ°ã®ãã Truffle ãã¬ãŒã ã¯ãŒã¯ãã€ã³ã¹ããŒã«ããŠäœ¿çšããæ¹æ³ãåŠã³ãŸãã truffle-contract ã¢ãžã¥ãŒã«ã䜿çšããŠã³ã³ãã©ã¯ãé¢æ°ãåŒã³åºã JavaScript ã¹ã¯ãªãããäœæããTruffle ã䜿çšããŠã¹ããŒã ã³ã³ãã©ã¯ãããã¹ãããæ¹æ³ãåŠã³ãŸãã
XNUMXçªç®ã®ã¬ãã¹ã³ Solidity ããŒã¿åå°çšã 笊å·ä»ãããã³ç¬Šå·ãªãæŽæ°ã笊å·ä»ãæ°å€ãæååãã¢ãã¬ã¹ãè€çŽ å€æ°ãé åãåæåãæ§é äœãèŸæžãªã©ã®ããŒã¿åãæ±ãã¹ããŒã ã³ã³ãã©ã¯ããäœæããŸãã
XNUMXåç®ã®ã¬ãã¹ã³ã§ã¯ ã€ãŒãµãªã¢ã ã¡ã€ã³ãããçšã®ã¹ããŒãã³ã³ãã©ã¯ãã®äœæã«ãŸãäžæ©è¿ã¥ããŸãã Geth ãã©ã€ããŒã ãããã¯ãŒã¯ããã³ Rinkeby ãã¹ããããäžã§ Truffle ã䜿çšããŠã³ã³ãã©ã¯ããå ¬éããæ¹æ³ãåŠã³ãŸãã Rinkeby ãããã¯ãŒã¯äžã§ã¹ããŒã ã³ã³ãã©ã¯ãããããã°ããããšã¯ãã¡ã€ã³ ãããã¯ãŒã¯ã«å ¬éããåã«éåžžã«åœ¹ç«ã¡ãŸããããã«ã¯ã»ãšãã©ãã¹ãŠãæ¬ç©ã§ãããç¡æã§ãã
ã¬ãã¹ã³ã®äžç°ãšããŠãRinkeby ãã¹ã ãããã¯ãŒã¯ ããŒããäœæããè³éãæå ¥ããŠãã¹ããŒã ã³ã³ãã©ã¯ããå ¬éããŸãã
ã¬ãã¹ã³10 Ethereum Swarm åæ£ããŒã¿ ã¹ãã¬ãŒãžå°çšã åæ£ã¹ãã¬ãŒãžã䜿çšãããšãã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã«å€§éã®ããŒã¿ãä¿åããæéãçããŸãã
ãã®ãã¥ãŒããªã¢ã«ã§ã¯ãããŒã«ã« Swarm ã¹ãã¬ãŒãžãäœæãããã¡ã€ã«ããã³ãã¡ã€ã« ãã£ã¬ã¯ããªã«å¯Ÿããæžã蟌ã¿ããã³èªã¿åãæäœãè¡ããŸãã 次ã«ããããªã㯠Swarm ã²ãŒããŠã§ã€ãæäœããæ¹æ³ãNode.js ãã Swarm ã«ã¢ã¯ã»ã¹ããããã®ã¹ã¯ãªãããäœæããæ¹æ³ãããã³ Perl Net::Ethereum::Swarm ã¢ãžã¥ãŒã«ã䜿çšããæ¹æ³ãåŠã³ãŸãã
ã¬ãã¹ã³ã®ç®æš 11 â 人æ°ã® Python ããã°ã©ãã³ã°èšèªãš Web3.py ãã¬ãŒã ã¯ãŒã¯ã䜿çšãã Solidity ã¹ããŒã ã³ã³ãã©ã¯ãã®æäœããã¹ã¿ãŒããŸãã ãã¬ãŒã ã¯ãŒã¯ãã€ã³ã¹ããŒã«ããã¹ããŒã ã³ã³ãã©ã¯ããã³ã³ãã€ã«ããŠå ¬éããããã®ã¹ã¯ãªãããäœæãããã®é¢æ°ãåŒã³åºããŸãã ãã®å ŽåãWeb3.py ã¯åç¬ã§ããŸã㯠Truffle çµ±åéçºç°å¢ãšçµã¿åãããŠäœ¿çšââãããŸãã
ã¬ãã¹ã³12㧠ãªã©ã¯ã«ã䜿çšããŠã¹ããŒãã³ã³ãã©ã¯ããšçŸå®äžçã®éã§ããŒã¿ã転éããæ¹æ³ãåŠã³ãŸãã ããã¯ãWeb ãµã€ããIoT ããã€ã¹ãããŸããŸãªããã€ã¹ãã»ã³ãµãŒããããŒã¿ãåä¿¡ããããã¹ããŒã ã³ã³ãã©ã¯ããããããã®ããã€ã¹ã«ããŒã¿ãéä¿¡ãããããã®ã«åœ¹ç«ã¡ãŸãã ã¬ãã¹ã³ã®å®è·µçãªéšåã§ã¯ããã·ã¢é£éŠäžå€®éè¡ã® Web ãµã€ãããç±³ãã«ãšã«ãŒãã«ã®éã®çŸåšã®çºæ¿ã¬ãŒããåãåããªã©ã¯ã«ãšã¹ããŒã ã³ã³ãã©ã¯ããäœæããŸãã
ã¬ãã¹ã³ 1. ãããã¯ãã§ãŒã³ãšã€ãŒãµãªã¢ã ãããã¯ãŒã¯ã«ã€ããŠç°¡åã«èª¬æããã¬ãã¹ã³ã®ç®ç: ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã®åäœåçããã®å¿çšåéãåºæ¬çãªçšèªã«ã€ããŠåŠã³ãŸãã
å®è·µçãªã¿ã¹ã¯: ãã®ã¬ãã¹ã³ã«ã¯å«ãŸããŠããŸããã
ä»æ¥ããããã¯ãã§ãŒã³ ãã¯ãããžãŒ (Blockchain)ãæå·é貚 (Cryptocurrency ãŸã㯠Crypto Currency)ããããã³ã€ã³ (Bitcoin)ãã€ãã·ã£ã« ã³ã€ã³ ãªãã¡ãªã³ã° (ICOãã€ãã·ã£ã« ã³ã€ã³ ãªãã¡ãªã³ã°)ãã¹ããŒã ã³ã³ãã©ã¯ã (ã¹ããŒã ã³ã³ãã©ã¯ã) ã«ã€ããŠèããããšããªããœãããŠã§ã¢éçºè ã¯ã»ãšãã©ããªãã§ãããããããã¯ãã§ãŒã³ã«é¢é£ãããã®ä»ã®æŠå¿µãçšèªãåæ§ã§ãã
ãããã¯ãã§ãŒã³æè¡ã¯æ°ããªåžå Žãéæããããã°ã©ããŒã®éçšãåµåºããŸãã æå·é貚ãã¯ãããžãŒãšã¹ããŒã ã³ã³ãã©ã¯ã ãã¯ãããžãŒã®è€éãããã¹ãŠç解ããŠããã°ããã®ç¥èãå®éã«é©çšããããšã«åé¡ã¯ãããŸããã
æå·é貚ãšãããã¯ãã§ãŒã³ã«é¢ããŠã¯å€ãã®æ¶æž¬ããããšèšããããåŸãŸããã æå·é貚ã¬ãŒãã®å€æŽããã©ãããã®åµèšãæå·é貚æ³ã®è€éããªã©ã«é¢ããè°è«ã¯èã«çœ®ããŸãã ç§ãã¡ã®ãã¬ãŒãã³ã° ã³ãŒã¹ã§ã¯ãã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ (ã€ãŒãµãªã¢ã ãã€ãŒãµ) ã®ã¹ããŒã ã³ã³ãã©ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ãšãããããåæ£åã¢ããªã±ãŒã·ã§ã³ (åæ£ã¢ããªã±ãŒã·ã§ã³ãDApp) ã®éçºã®æè¡çåŽé¢ã«äž»ã«çŠç¹ãåœãŠãŸãã
ãããã¯ãã§ãŒã³ãšã¯äœã§ããïŒ
ãããã¯ãã§ãŒã³ (Block Chain) ã¯ãç¹å®ã®æ¹æ³ã§çžäºã«æ¥ç¶ãããããŒã¿ ãããã¯ã®ãã§ãŒã³ã§ãã ãã§ãŒã³ã®å é ã«ã¯æåã®ãããã¯ããããããã¯ãã©ã€ã㪠ããã㯠(ãžã§ãã·ã¹ ãããã¯) ãŸãã¯ãžã§ãã·ã¹ ãããã¯ãšåŒã°ããŸãã ç¶ã㊠XNUMX çªç®ãXNUMX çªç®ãšç¶ããŸãã
ããããã¹ãŠã®ããŒã¿ ãããã¯ã¯ããããã¯ãã§ãŒã³ ãããã¯ãŒã¯ã®å€æ°ã®ããŒãã«èªåçã«è€è£œãããŸãã ããã«ããããããã¯ãã§ãŒã³ ããŒã¿ã®åæ£ã¹ãã¬ãŒãžã確ä¿ãããŸãã
ãããã¯ãã§ãŒã³ ã·ã¹ãã ã¯ããããã¯ãŒã¯å
ã«æ¥ç¶ãããããŒã¿ ãããã¯ã®ãã§ãŒã³å
ã®ãã¹ãŠã®å€æŽãè€è£œããå€æ°ã®ããŒã (ç©çãµãŒããŒãŸãã¯ä»®æ³ãµãŒããŒ) ãšèããããšãã§ããŸãã ããã¯å·šå€§ãªãã«ããµãŒã㌠ã³ã³ãã¥ãŒã¿ãŒã®ãããªãã®ã§ããã®ãããªã³ã³ãã¥ãŒã¿ãŒã®ããŒã (ãµãŒããŒ) ã¯äžçäžã«åæ£ã§ããŸãã ãŸããèªåã®ã³ã³ãã¥ãŒã¿ããããã¯ãã§ãŒã³ ãããã¯ãŒã¯ã«è¿œå ããããšãã§ããŸãã
åæ£ããŒã¿ããŒã¹
ãããã¯ãã§ãŒã³ã¯ããããã¯ãã§ãŒã³ ãããã¯ãŒã¯ã®ãã¹ãŠã®ããŒãã«ããã£ãŠè€è£œãããåæ£ããŒã¿ããŒã¹ãšèããããšãã§ããŸãã çè«çã«ã¯ãå°ãªããšã XNUMX ã€ã®ããŒããåäœãããããã¯ãã§ãŒã³ã®ãã¹ãŠã®ãããã¯ãä¿åãããŠããéãããããã¯ãã§ãŒã³ã¯åäœããŸãã
åæ£ããŒã¿ã¬ãžã¹ããª
ãããã¯ãã§ãŒã³ã¯ãããŒã¿ãšæäœ (ãã©ã³ã¶ã¯ã·ã§ã³) ã®åæ£å°åž³ãšèããããšãã§ããŸãã ãã®ãããªã¬ãžã¹ã¿ãŒã®å¥åã¯ã¬ãžã£ãŒã§ãã
åæ£å°åž³ã«ããŒã¿ãè¿œå ããããšã¯ã§ããŸãããå€æŽãŸãã¯åé€ããããšã¯ã§ããŸããã ãã®äžå¯èœæ§ã¯ãç¹ã«ãæå·ã¢ã«ãŽãªãºã ããã§ãŒã³ã«ãããã¯ãè¿œå ããããã®ç¹å¥ãªã¢ã«ãŽãªãºã ãããã³åæ£åããŒã¿ ã¹ãã¬ãŒãžã䜿çšããããšã«ãã£ãŠå®çŸãããŸãã
ãããã¯ãè¿œå ããŠæäœ (ãã©ã³ã¶ã¯ã·ã§ã³) ãå®è¡ãããšãã¯ãç§å¯éµãšå ¬ééµã䜿çšãããŸãã ãããã¯ãã§ãŒã³ ãŠãŒã¶ãŒã«èªåã®ããŒã¿ ãããã¯ãžã®ã¢ã¯ã»ã¹ã®ã¿ãèš±å¯ããããšã§ããããã¯ãã§ãŒã³ ãŠãŒã¶ãŒãå¶éããŸãã
ååŒ
ãããã¯ãã§ãŒã³ã¯ãæäœïŒãã©ã³ã¶ã¯ã·ã§ã³ïŒã«é¢ããæ å ±ããããã¯ã«ä¿åããŸãã åæã«ããã§ã«å®äºããå€ããã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ãããå€æŽãããããããšã¯ã§ããŸããã æ°ãããã©ã³ã¶ã¯ã·ã§ã³ã¯ãæ°ããè¿œå ããããããã¯ã«ä¿åãããŸãã
ãã®ããã«ããŠããã©ã³ã¶ã¯ã·ã§ã³å±¥æŽå šäœãå€æŽããã«ãããã¯ãã§ãŒã³äžã«èšé²ããããšãã§ããŸãã ãããã£ãŠããããã¯ãã§ãŒã³ã¯ãããšãã°éè¡ååŒãèäœæš©æ å ±ãäžåç£ææè ã®å€æŽå±¥æŽãªã©ãå®å šã«ä¿åããããã«äœ¿çšã§ããŸãã
ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã«ã¯ãããããã·ã¹ãã ç¶æ ãå«ãŸããŠããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããšãç¶æ ã¯åæç¶æ ããçŸåšã®ç¶æ ã«å€åããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãããã¯ã«èšé²ãããŸãã
ãããªãã¯ããã³ãã©ã€ããŒãã®ãããã¯ãã§ãŒã³
ããã§æ³šæãã¹ãããšã¯ãããã§è¿°ã¹ãããšã¯ãã¹ãŠãå人ãæ³äººãæ¿åºæ©é¢ãæ¿åºã«ãã£ãŠå¶åŸ¡ã§ããªãããããããããªãã¯ãããã¯ãã§ãŒã³ãããã¯ãŒã¯ã«ã®ã¿åœãŠã¯ãŸããŸãã
ãããããã©ã€ããŒããããã¯ãã§ãŒã³ãããã¯ãŒã¯ã¯ããã®äœæè
ã®å®å
šãªå¶åŸ¡äžã«ãããããã§ã¯ããããããšãå¯èœã§ããããšãã°ããã§ãŒã³ã®ãã¹ãŠã®ãããã¯ãå®å
šã«çœ®ãæããããšã§ãã
ãããã¯ãã§ãŒã³ã®å®çšå
ãããã¯ãã§ãŒã³ã¯äœã«åœ¹ç«ã€ã®ã§ãããã?
ã€ãŸãããããã¯ãã§ãŒã³ãå©çšããããšã§ããäºããä¿¡é ŒããŠããªã人ãäŒæ¥ã®éã§ãå®å šã«ååŒïŒååŒïŒãè¡ãããšãã§ããããã«ãªããŸãã ãããã¯ãã§ãŒã³ã«èšé²ãããããŒã¿ïŒååŒãå人ããŒã¿ãæžé¡ã蚌ææžãå¥çŽæžãè«æ±æžãªã©ïŒã¯ãèšé²åŸã«æ¹ããããã眮ãæãããããããšã¯ã§ããŸããã ãããã£ãŠããããã¯ãã§ãŒã³ã«åºã¥ããŠãããšãã°ãããŸããŸãªçš®é¡ã®ææžã®ä¿¡é Œã§ããåæ£ã¬ãžã¹ããªãäœæããããšãå¯èœã§ãã
ãã¡ãããæå·é貚ã·ã¹ãã ããããã¯ãã§ãŒã³ã«åºã¥ããŠäœæãããéåžžã®çŽå¹£ã«ä»£ããããã«èšèšãããŠããããšã¯ãåç¥ã§ãããã çŽå¹£ã¯æ³å®é貚ãšãåŒã°ããŸãïŒFiat Money ããïŒã
ãããã¯ãã§ãŒã³ã¯ããããã¯ã«èšé²ããããã©ã³ã¶ã¯ã·ã§ã³ã®ä¿åãšäžå€æ§ãä¿èšŒãããããæå·é貚ã·ã¹ãã ã®äœæã«äœ¿çšã§ããŸãã ããã«ã¯ãç°ãªããŠãŒã¶ãŒ (ã¢ã«ãŠã³ã) éã®æå·è³éã®ééã®å
šå±¥æŽãå«ãŸããŠãããããããæäœã远跡ã§ããŸãã
æå·é貚ã·ã¹ãã å ã®ååŒã¯å¿åã§è¡ãããšãã§ããŸãããæå·é貚ãåŒãåºããŠæ³å®é貚ã«äº€æãããšãéåžžãæå·é貚è³ç£ã®ææè ã®èº«å ãæããã«ãªããŸãã
ããããã¹ããŒã ã³ã³ãã©ã¯ãã¯ãã€ãŒãµãªã¢ã ãããã¯ãŒã¯äžã§å®è¡ããããœãããŠã§ã¢ã§ããããã©ã³ã¶ã¯ã·ã§ã³ã®ç· çµãšãã®å®è£ ã®ç£èŠã®ããã»ã¹ãèªååã§ããŸãã ããã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®æ¯æããã€ãŒãµæå·é貚ã䜿çšããŠå®è¡ãããå Žåã«ç¹ã«å¹æçã§ãã
Solidity ããã°ã©ãã³ã°èšèªã§èšè¿°ããã Ethereum ãããã¯ãã§ãŒã³ãš Ethereum ã¹ããŒã ã³ã³ãã©ã¯ãã¯ãããšãã°æ¬¡ã®åéã§äœ¿çšã§ããŸãã
- ææžã®å ¬èšŒã«ä»£ããæ段ã
- äžåç£ç©ä»¶ã®ç»é²ç°¿ããã³äžåç£ç©ä»¶ãšã®ååŒã«é¢ããæ å ±ã®ä¿ç®¡ã
- ç¥ç財ç£ïŒæžç±ãç»åãé³æ¥œäœåãªã©ïŒã«é¢ããèäœæš©æ å ±ã®ä¿ç®¡ã
- ç¬ç«ããæ祚ã·ã¹ãã ã®åµèšã
- éèãšéè¡ã
- åœéèŠæš¡ã§ã®ç©æµãååã®ç§»åã®è¿œè·¡ã
- ID ã«ãŒã ã·ã¹ãã ã«é¡äŒŒããå人ããŒã¿ã®ä¿ç®¡ã
- åæ¥åéã«ãããå®å šãªååŒã
- å¥åº·èšºæã®çµæãæå®ã®åŠçœ®ã®å±¥æŽã®ä¿å
ãããã¯ãã§ãŒã³ã®åé¡
ãããããã¡ããããã¹ãŠãæã£ãã»ã©åçŽãªããã§ã¯ãããŸããã
ãããã¯ãã§ãŒã³ã«ããŒã¿ãè¿œå ããåã®ããŒã¿ã®æ€èšŒã«é¢ããåé¡ (ããšãã°ãããŒã¿ãåœç©ãã©ãã)ããããã¯ãã§ãŒã³ã§åäœããã·ã¹ãã ããã³ã¢ããªã±ãŒã·ã§ã³ ãœãããŠã§ã¢ã®ã»ãã¥ãªãã£ã®åé¡ãã¢ã¯ã»ã¹ãçãããã«ãœãŒã·ã£ã« ãšã³ãžãã¢ãªã³ã°ææ³ã䜿çšãããå¯èœæ§ã«é¢ããåé¡ããããŸããæå·é貚ãŠã©ã¬ãããªã©ãžã
ç¹°ãè¿ãã«ãªããŸãããããŒããäžçäžã«åæ£ããŠãããããªã㯠ãããã¯ãã§ãŒã³ã§ã¯ãªããå人ãŸãã¯çµç¹ã«å±ãããã©ã€ããŒã ãããã¯ãã§ãŒã³ã«ã€ããŠè©±ããŠããå Žåãããã§ã®ä¿¡é Œã¬ãã«ã¯ä¿¡é Œã¬ãã«ãããé«ããªããŸãããã®äººããã®çµç¹ã§ã
ãããã¯ãã§ãŒã³ã«èšé²ãããããŒã¿ã¯èª°ã§ãå©çšã§ããããšãèæ ®ããå¿ èŠããããŸãã ãã®æå³ã§ããããã¯ãã§ãŒã³ïŒç¹ã«ãããªãã¯ïŒã¯æ©å¯æ å ±ã®ä¿åã«ã¯é©ããŠããŸããã ãã ãããããã¯ãã§ãŒã³äžã®æ å ±ã¯å€æŽã§ããªããšããäºå®ã¯ãããŸããŸãªçš®é¡ã®äžæ£è¡çºã®é²æ¢ã調æ»ã«åœ¹ç«ã¡ãŸãã
ã€ãŒãµãªã¢ã åæ£ã¢ããªã±ãŒã·ã§ã³ã¯ã䜿çšæãæå·é貚ã§æ¯æããšäŸ¿å©ã§ãã æå·é貚ãææãã人ããŸãã¯æå·é貚ãè³Œå ¥ããææããã人ãå¢ããã°å¢ããã»ã©ãDApps ãšã¹ããŒãã³ã³ãã©ã¯ãã®äººæ°ã¯ããã«é«ãŸãã§ãããã
ãããã¯ãã§ãŒã³ã®å®çšåã劚ããäžè¬çãªåé¡ã«ã¯ãæ°ãããããã¯ãè¿œå ã§ããé床ã®å¶éãããã©ã³ã¶ã¯ã·ã§ã³ã®ã³ã¹ããæ¯èŒçé«ãããšãæããããŸãã ãããããã®åéã®æè¡ã¯æŽ»çºã«éçºãããŠãããæè¡çãªåé¡ã¯æéã®çµéãšãšãã«è§£æ±ºãããããšãæåŸ ãããŠããŸãã
ãã XNUMX ã€ã®åé¡ã¯ãã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³äžã®ã¹ããŒã ã³ã³ãã©ã¯ããä»®æ³ãã·ã³ã®éé¢ãããç°å¢ã§åäœããçŸå®äžçã®ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããªãããšã§ãã ç¹ã«ãã¹ããŒã ã³ã³ãã©ã¯ã ããã°ã©ã èªäœã¯ããµã€ããç©çããã€ã¹ (ã»ã³ãµãŒãæ¥ç¹ãªã©) ããããŒã¿ãèªã¿åãããšã¯ã§ãããå€éšããã€ã¹ã«ããŒã¿ãåºåããããšãã§ããŸããã ãã®åé¡ãšãã®è§£æ±ºæ¹æ³ã«ã€ããŠã¯ãã¹ããŒã ã³ã³ãã©ã¯ãã®æ å ±ä»²ä»è ã§ãããããããªã©ã¯ã«ã«ç¹åããã¬ãã¹ã³ã§èª¬æããŸãã
æ³çãªå¶éããããŸãã ããšãã°ãäžéšã®åœã§ã¯ãæå·é貚ãæ¯æãæ段ãšããŠäœ¿çšããããšãçŠæ¢ãããŠããŸãããæ䟡蚌åžãªã©ã®äžçš®ã®ããžã¿ã«è³ç£ãšããŠææããããšã¯å¯èœã§ãã ãã®ãããªè³ç£ã¯ââååŒæã§å£²è²·ã§ããŸãã ãããã®å Žåã§ããæå·é貚ã䜿çšãããããžã§ã¯ããäœæããå Žåã¯ããããžã§ã¯ãã管èœããåœã®æ³åŸãããç解ããŠããå¿ èŠããããŸãã
ãããã¯ãã§ãŒã³ãã§ãŒã³ãã©ã®ããã«åœ¢æãããã
ãã§ã«è¿°ã¹ãããã«ããããã¯ãã§ãŒã³ã¯ããŒã¿ ãããã¯ã®åçŽãªãã§ãŒã³ã§ãã ãŸãããã®ãã§ãŒã³ã®æåã®ãããã¯ã圢æããã次㫠XNUMX çªç®ã®ãããã¯ãããã«è¿œå ãããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ããŒã¿ã¯ãããã¯ã«æ ŒçŽãããŠãããã®ãšããææ°ã®ãããã¯ã«è¿œå ãããŸãã
å³ã§ã¯ã 1.1 ã§ã¯ãæåã®ãããã¯ã次ã®ãããã¯ãåç §ããããããã¯ã®ã·ãŒã±ã³ã¹ã®æãåçŽãªããŒãžã§ã³ã瀺ããŸããã
ç±³ã 1.1. åçŽãªãããã¯ã®ã·ãŒã±ã³ã¹
ãã ãããã®ãªãã·ã§ã³ã䜿çšãããšããããã¯ã«ã¯å€æŽããä¿è·ããæ å ±ãå«ãŸããŠããªãããããã§ãŒã³å ã®ãããã¯ã®å 容ãéåžžã«ç°¡åã«æ¹ããã§ããŸãã ãããã¯ãã§ãŒã³ã¯ä¿¡é Œé¢ä¿ã®ãªãå人ãäŒæ¥ã䜿çšããããšãæ³å®ããŠããããããã®ããŒã¿ä¿åæ¹æ³ã¯ãããã¯ãã§ãŒã³ã«ã¯é©ããŠããªããšçµè«ä»ããããšãã§ããŸãã
ãããã¯ãåœé ããä¿è·ããŸãããã æåã®æ®µéã§ã¯ãåãããã¯ããã§ãã¯ãµã ã§ä¿è·ããããšããŸã (å³ 1.2)ã
ç±³ã 1.2. ãã§ãã¯ãµã ã䜿çšããŠãããã®ãããã¯ã«ä¿è·ãè¿œå ãã
ãããã¯ã«ã¯ããã㯠ããŒã¿ã®ãã§ãã¯ãµã ãå«ãŸããŠãããããæ»æè ã¯ãããã¯ãåçŽã«å€æŽããããšã¯ã§ããŸããã ãã§ãã¯ãµã ã確èªãããšãããŒã¿ãå€æŽãããŠããããšãããããŸãã
ãã§ãã¯ãµã ãèšç®ããã«ã¯ãMD-5ãSHA-1ãSHA-256 ãªã©ã®ããã·ã¥é¢æ°ã®ããããã䜿çšã§ããŸãã ããã·ã¥é¢æ°ã¯ãããŒã¿ã®ãããã¯ã«å¯ŸããŠäžå¯éçãªæäœãå®è¡ããããšã«ãããå€ (ããšãã°ãäžå®é·ã®ããã¹ãæåå) ãèšç®ããŸãã æŒç®ã¯ããã·ã¥é¢æ°ã®çš®é¡ã«ãã£ãŠç°ãªããŸãã
ããŒã¿ãããã¯ã®å 容ãå°ãå€ãã£ãã ãã§ãããã·ã¥å€ãå€ãããŸãã ããã·ã¥é¢æ°å€ãåæããããšã«ãã£ãŠããã®å€ãèšç®ãããããŒã¿ ãããã¯ãåæ§ç¯ããããšã¯äžå¯èœã§ãã
ãã®ãããªä¿è·ã§ååã§ãããã? æ®å¿µã ãã©éãã
ãã®ã¹ããŒã ã§ã¯ããã§ãã¯ãµã (ããã·ã¥é¢æ°) ã¯åã ã®ãããã¯ã®ã¿ãä¿è·ãããããã¯ãã§ãŒã³å šäœãä¿è·ããããã§ã¯ãããŸããã ããã·ã¥é¢æ°ãèšç®ããã¢ã«ãŽãªãºã ãç¥ã£ãŠããæ»æè ã¯ããããã¯ã®å 容ãç°¡åã«çœ®ãæããããšãã§ããŸãã ãŸãããã§ãŒã³ãããããã¯ãåé€ããããæ°ãããããã¯ãè¿œå ãããããããšã劚ãããã®ã¯äœããããŸããã
ãã§ãŒã³å šäœãå šäœãšããŠä¿è·ããããã«ãåã®ãããã¯ããã®ããŒã¿ã®ããã·ã¥ãããŒã¿ãšãšãã«åãããã¯ã«ä¿åããããšãã§ããŸã (å³ 1.3)ã
ç±³ã 1.3. åã®ãããã¯ã®ããã·ã¥ãããŒã¿ ãããã¯ã«è¿œå ããŸã
ãã®ã¹ããŒã ã§ã¯ããããã¯ãå€æŽããã«ã¯ãåŸç¶ã®ãã¹ãŠã®ãããã¯ã®ããã·ã¥é¢æ°ãåèšç®ããå¿ èŠããããŸãã äœãåé¡ãªã®ã§ããããïŒ
å®éã®ãããã¯ãã§ãŒã³ã§ã¯ãæ°ãããããã¯ãè¿œå ããããã«äººçºçãªå°é£ãããã«äœæããã倧éã®ã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãå¿ èŠãšããã¢ã«ãŽãªãºã ã䜿çšãããŸãã ãããã¯ã«å€æŽãå ããã«ã¯ããã® XNUMX ã€ã®ãããã¯ã ãã§ãªããåŸç¶ã®ãã¹ãŠã®ãããã¯ãåèšç®ããå¿ èŠãããããšãèãããšãããã¯éåžžã«å°é£ã«ãªããŸãã
ãããã¯ãã§ãŒã³ ããŒã¿ã¯å€æ°ã®ãããã¯ãŒã¯ ããŒãã«ä¿å (è€è£œ) ãããŠããããšãèŠããŠãããŠãã ããã åæ£ã¹ãã¬ãŒãžã䜿çšãããŸãã ããã«ããããããã¯ãåœè£ ããããšãã¯ããã«å°é£ã«ãªããŸãã ãã¹ãŠã®ãããã¯ãŒã¯ ããŒãã«å€æŽãå ããå¿ èŠããããŸãã
ãããã¯ã«ã¯åã®ãããã¯ã«é¢ããæ å ±ãä¿åãããŠããããããã§ãŒã³å ã®ãã¹ãŠã®ãããã¯ã®å 容ã確èªããããšãã§ããŸãã
ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³
ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã¯ãåæ£å DApp ãäœæã§ãããã©ãããã©ãŒã ã§ãã ä»ã®ãã©ãããã©ãŒã ãšã¯ç°ãªããã€ãŒãµãªã¢ã ã§ã¯ãSolidity ããã°ã©ãã³ã°èšèªã§æžããããããããã¹ããŒã ã³ã³ãã©ã¯ã (ã¹ããŒã ã³ã³ãã©ã¯ã) ã®äœ¿çšãèš±å¯ãããŠããŸãã
ãã®ãã©ãããã©ãŒã ã¯ãBitcoin Magazine ã®åµèšè ã§ãã Vitalik Buterin ã«ãã£ãŠ 2013 幎ã«äœæããã2015 幎ã«éå§ãããŸããã ãã¬ãŒãã³ã° ã³ãŒã¹ã§åŠç¿ãŸãã¯è¡ãããšã¯ãã¹ãŠãç¹ã«ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ãš Solidity ã¹ããŒã ã³ã³ãã©ã¯ãã«é¢é£ããŠããŸãã
ãã€ãã³ã°ãŸãã¯ãããã¯ã®äœææ¹æ³
ãã€ãã³ã°ã¯ããããã¯ãã§ãŒã³ ãã§ãŒã³ã«æ°ãããããã¯ãè¿œå ããããªãè€éã§ãªãœãŒã¹ã倧éã«æ¶è²»ããããã»ã¹ã§ããããæå·é貚ãã€ãã³ã°ãã§ã¯ãããŸããã ãã€ãã³ã°ã¯ãããã¯ãã§ãŒã³ã®æ©èœãä¿èšŒããŸãã ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã«ãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå ããã®ã¯ãã®ããã»ã¹ã§ãã
ãããã¯ã®è¿œå ã«é¢ãã人ãçµç¹ã¯ãã€ããŒãšåŒã°ããŸãã
ãã€ã㌠ããŒãã§å®è¡ãããŠãããœãããŠã§ã¢ã¯ããããã¯ãŒã¯ã«ãã£ãŠæå®ãããç¹å®ã®ããã·ã¥å€ãååŸããããã«ãæåŸã®ãããã¯ã® Nonce ãšåŒã°ããããã·ã¥ ãã©ã¡ãŒã¿ãŒãèŠã€ããããšããŸãã Ethereum ã§äœ¿çšããã Ethash ããã·ã¥ ã¢ã«ãŽãªãºã ã§ã¯ãé 次æ€çŽ¢ãéããŠã®ã¿ Nonce å€ãååŸã§ããŸãã
ãã€ã㌠ããŒããæ£ãã Nonce å€ãèŠã€ããå Žåãããããããããã«ãŒã ãªã ã¯ãŒã¯ (PoWãProof-of-work) ãšãªããŸãã ãã®å Žåããããã¯ãã€ãŒãµãªã¢ã ãããã¯ãŒã¯ã«è¿œå ããããšããã€ããŒã¯ãããã¯ãŒã¯é貚ã§ããã€ãŒãµã§ç¹å®ã®å ±é ¬ãåãåããŸãã å·çæç¹ã§ã¯å ±é ¬ã¯ 5 ã€ãŒãµã§ãããããã¯æéã®çµéãšãšãã«æžå°ããŸãã
ãããã£ãŠãã€ãŒãµãªã¢ã ãã€ããŒã¯ãããã¯ãè¿œå ããããšã§ãããã¯ãŒã¯ã®åäœãä¿èšŒãããã®å¯ŸäŸ¡ãšããŠæå·é貚ãåãåããŸãã ã€ã³ã¿ãŒãããäžã«ã¯ãã€ããŒããã€ãã³ã°ã«é¢ããæ å ±ããããããããŸãããããã§ã¯ã€ãŒãµãªã¢ã ãããã¯ãŒã¯äžã§ã® Solidity ã³ã³ãã©ã¯ããš DApps ã®äœæã«çŠç¹ãåœãŠãŸãã
ã¬ãã¹ã³ã®æŠèŠ
æåã®ã¬ãã¹ã³ã§ã¯ããããã¯ãã§ãŒã³ã«ã€ããŠåŠã³ããããç¹å¥ã«æ§æãããäžé£ã®ãããã¯ã§ããããšãåŠã³ãŸããã 以åã«èšé²ããããããã¯ã®å 容ã¯å€æŽã§ããŸãããããã¯ãå€ãã®ãããã¯ãŒã¯ ããŒãäžã§åŸç¶ã®ãã¹ãŠã®ãããã¯ãåèšç®ããå¿ èŠããããå€ãã®ãªãœãŒã¹ãšæéãå¿ èŠãšããããã§ãã
ãããã¯ãã§ãŒã³ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®çµæãä¿åããããã«äœ¿çšã§ããŸãã ãã®äž»ãªç®çã¯ãä¿¡é Œé¢ä¿ã®ãªãåœäºè (å人ãçµç¹) éã§å®å šãªååŒãçµç¹ããããšã§ãã ããžãã¹ã®å ·äœçãªåéãšãã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ãš Solidity ã¹ããŒã ã³ã³ãã©ã¯ããã©ã®åéã§äœ¿çšã§ããããåŠã³ãŸããã ããã¯éè¡éšéã財ç£æš©ã®ç»é²ãæžé¡ãªã©ã§ãã
ãŸãããããã¯ãã§ãŒã³ã䜿çšãããšããŸããŸãªåé¡ãçºçããå¯èœæ§ãããããšãåŠã³ãŸããã ãããã¯ããããã¯ãã§ãŒã³ã«è¿œå ãããæ å ±ã®æ€èšŒã®åé¡ããããã¯ãã§ãŒã³ã®é床ããã©ã³ã¶ã¯ã·ã§ã³ã®ã³ã¹ããã¹ããŒãã³ã³ãã©ã¯ããšçŸå®äžçã®éã®ããŒã¿äº€æã®åé¡ãããã³ãŠãŒã¶ãŒã¢ã«ãŠã³ãããæå·é貚è³éãçãããšãç®çãšããæ»æè ã«ããæœåšçãªæ»æã§ãã ã
ãŸãããããã¯ãã§ãŒã³ã«æ°ãããããã¯ãè¿œå ããããã»ã¹ãšããŠã®ãã€ãã³ã°ã«ã€ããŠãç°¡åã«èª¬æããŸããã ãã©ã³ã¶ã¯ã·ã§ã³ãå®äºããã«ã¯ãã€ãã³ã°ãå¿ èŠã§ãã ãã€ãã³ã°ã«æºãã人ã ã¯ãããã¯ãã§ãŒã³ã®æ©èœãä¿èšŒããããã«å¯ŸããŠä»®æ³é貚ã§å ±é ¬ãåãåããŸãã
ã¬ãã¹ã³ 2. Ubuntu ãš Debian OS ã§ã®äœæ¥ç°å¢ã®æºåãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®éžæ
å¿
èŠãªãŠãŒãã£ãªãã£ã®ã€ã³ã¹ããŒã«
Ubuntu ãžã® Geth ãš Swarm ã®ã€ã³ã¹ããŒã«
Debian ãžã® Geth ãš Swarm ã®ã€ã³ã¹ããŒã«
äºåæºå
Go ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ããŠã³ããŒã
ç°å¢å€æ°ã®èšå®
Goã®ããŒãžã§ã³ã確èªãã
Geth ãš Swarm ã®ã€ã³ã¹ããŒã«
ãã©ã€ããŒããããã¯ãã§ãŒã³ã®äœæ
genesis.jsonãã¡ã€ã«ã®æºå
äœæ¥çšã®ãã£ã¬ã¯ããªãäœæãã
ã¢ã«ãŠã³ããäœæãã
ããŒãã®åæåã®éå§
ããŒãèµ·åãªãã·ã§ã³
ããŒãã«æ¥ç¶ããŸã
ãã€ãã³ã°ç®¡çãšæ®é«ãã§ãã¯
Geth ã³ã³ãœãŒã«ã®ã·ã£ããããŠã³
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 3. Raspberry Pi 3 ã§ã®äœæ¥ç°å¢ã®æºåRaspberry Pi 3 ãäœæ¥çšã«æºåãã
ã©ãºããªã¢ã³ã®ã€ã³ã¹ããŒã«
ã¢ããããŒãã®ã€ã³ã¹ããŒã«
SSH ã¢ã¯ã»ã¹ã®æå¹å
éçIPã¢ãã¬ã¹ã®èšå®
å¿
èŠãªãŠãŒãã£ãªãã£ã®ã€ã³ã¹ããŒã«
Goã®ã€ã³ã¹ããŒã«
Go ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ããŠã³ããŒã
ç°å¢å€æ°ã®èšå®
Goã®ããŒãžã§ã³ã確èªãã
Geth ãš Swarm ã®ã€ã³ã¹ããŒã«
ãã©ã€ããŒããããã¯ãã§ãŒã³ã®äœæ
ã¢ã«ãŠã³ããšæ®é«ã確èªãã
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 4. ã¢ã«ãŠã³ããšã¢ã«ãŠã³ãéã®è³é移åã¢ã«ãŠã³ãã®è¡šç€ºãšè¿œå
ã¢ã«ãŠã³ãã®ãªã¹ãã衚瀺ãã
ã¢ã«ãŠã³ãã®è¿œå
geth accountã³ãã³ããªãã·ã§ã³
ã¢ã«ãŠã³ãã®ãã¹ã¯ãŒã
ã€ãŒãµãªã¢ã ã®æå·é貚
ã€ãŒãµãªã¢ã ã®é貚åäœ
ç§ãã¡ã¯å£åº§ã®çŸåšã®æ®é«ã決å®ããŸã
ããå£åº§ããå¥ã®å£åº§ã«è³éã移åãã
eth.sendTransaction ã¡ãœãã
ååŒã¹ããŒã¿ã¹ã®è¡šç€º
ååŒåé æž
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 5. æåã®å¥çŽã®çºè¡ã€ãŒãµãªã¢ã ã®ã¹ããŒãã³ã³ãã©ã¯ã
ã¹ããŒãã³ã³ãã©ã¯ãã®å®è¡
ã€ãŒãµãªã¢ã ä»®æ³ãã·ã³
çµ±åéçºç°å¢ Remix Solidity IDE
ã³ã³ãã€ã«ã®å®è¡äž
ã³ã³ãã©ã¯ãé¢æ°ã®åŒã³åºã
ãã©ã€ããŒããããã¯ãŒã¯äžã§å¥çŽãå
¬éãã
ABI å®çŸ©ãšã³ã³ãã©ã¯ã ãã€ã㪠ã³ãŒãã®ååŸ
å¥çŽæžã®çºè¡
ã³ã³ãã©ã¯ãå
¬éãã©ã³ã¶ã¯ã·ã§ã³ã¹ããŒã¿ã¹ã®ç¢ºèª
ã³ã³ãã©ã¯ãé¢æ°ã®åŒã³åºã
ãããã³ã³ãã€ã© solc
Ubuntu ãžã® Solc ã®ã€ã³ã¹ããŒã«
Debian ãžã® solc ã®ã€ã³ã¹ããŒã«
HelloSol ã³ã³ãã©ã¯ãã®ã³ã³ãã€ã«
å¥çŽæžã®çºè¡
Rasberian ãžã® solc ã®ã€ã³ã¹ããŒã«
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 6. ã¹ããŒã ã³ã³ãã©ã¯ããš Node.jsNode.js ã®ã€ã³ã¹ããŒã«
Ubuntu ãžã®ã€ã³ã¹ããŒã«
Debian ãžã®ã€ã³ã¹ããŒã«
Ganache-cli ã®ã€ã³ã¹ããŒã«ãšå®è¡
Web3ã®ã€ã³ã¹ããŒã«
ãœã«ã¯ã®ã€ã³ã¹ããŒã«
Rasberian ãžã® Node.js ã®ã€ã³ã¹ããŒã«
ã³ã³ãœãŒã«ã§ã¢ã«ãŠã³ãã®ãªã¹ããååŸããã¹ã¯ãªãã
ã¹ããŒãã³ã³ãã©ã¯ããå
¬éããããã®ã¹ã¯ãªãã
èµ·åããŠãã©ã¡ãŒã¿ãååŸãã
èµ·åãªãã·ã§ã³ã®ååŸ
å¥çŽæžã®äœæ
ã¢ã«ãŠã³ãã®ãããã¯ã解é€ãã
ABI ãšã³ã³ãã©ã¯ããã€ããªã³ãŒãã®ããŒã
å¿
èŠãªã¬ã¹éã®èŠç©ãã
ãªããžã§ã¯ããäœæããŠã³ã³ãã©ã¯ãã®å
¬éãéå§ãã
å¥çŽå
¬éã¹ã¯ãªããã®å®è¡
ã¹ããŒãã³ã³ãã©ã¯ãé¢æ°ã®åŒã³åºã
å
¬éãããã¹ããŒãã³ã³ãã©ã¯ããæŽæ°ããããšã¯ã§ããŸãã?
Web3 ããŒãžã§ã³ 1.0.x ã§ã®äœæ¥
ã¢ã«ãŠã³ãã®ãªã¹ãã®ååŸ
å¥çŽæžã®çºè¡
ã³ã³ãã©ã¯ãé¢æ°ã®åŒã³åºã
ããå£åº§ããå¥ã®å£åº§ã«è³éã移åãã
å¥çŽå£åº§ã«è³éãééãã
HelloSol ã¹ããŒã ã³ã³ãã©ã¯ãã®æŽæ°
ã¢ã«ãŠã³ãæ®é«ã衚瀺ããã¹ã¯ãªãããäœæãã
getBalance é¢æ°ãžã®åŒã³åºãã call_contract_get_promise.js ã¹ã¯ãªããã«è¿œå ããŸãã
ã¹ããŒãã³ã³ãã©ã¯ãã¢ã«ãŠã³ãã«è£å
ããŸã
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 7. ããªã¥ãã®æŠèŠTruffleã®ã€ã³ã¹ããŒã«
HelloSol ãããžã§ã¯ããäœæãã
ãããžã§ã¯ããã£ã¬ã¯ããªãšãã¡ã€ã«ã®äœæ
å¥çŽãã£ã¬ã¯ããª
ã«ã¿ãã°ã®ç§»è¡
ãã£ã¬ã¯ããªãã¹ã
truffle-config.js ãã¡ã€ã«
HelloSol ã³ã³ãã©ã¯ãã®ã³ã³ãã€ã«
å¥çŽæžã®çºè¡ãéå§ãã
Truffle ããã³ããã§ã® HelloSol ã³ã³ãã©ã¯ãé¢æ°ã®åŒã³åºã
Node.js ãå®è¡ãã JavaScript ã¹ã¯ãªãããã HelloSol ã³ã³ãã©ã¯ãé¢æ°ãåŒã³åºã
truffle-contract ã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«
ã³ã³ãã©ã¯ãé¢æ° getValue ããã³ getString ã®åŒã³åºã
ã³ã³ãã©ã¯ãé¢æ° setValue ããã³ setString ã®åŒã³åºã
å¥çŽã®å€æŽãšåçºè¡
Web3 ããŒãžã§ã³ 1.0.x ã§ã®äœæ¥
HelloSol ã¹ããŒã ã³ã³ãã©ã¯ãã«å€æŽãå ãã
ã³ã³ãã©ã¯ãã¡ãœãããåŒã³åºãããã®ã¹ã¯ãªãã
ããªã¥ãã§ã®ãã¹ã
åæ§è©Šéš
JavaScript ãã¹ã
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 8. Solidity ããŒã¿åããŒã¿åãåŠç¿ããããã®å¥çŽ
ããŒã«ããŒã¿å
笊å·ãªãæŽæ°ãšç¬Šå·ä»ãæŽæ°
åºå®å°æ°ç¹æ°
ã¢ãã¬ã¹
è€ååã®å€æ°
åºå®ãµã€ãºã®é
å
åçé
å
äžå Ž
æ§é
èŸæžã®ãããã³ã°
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 9. ãã©ã€ããŒã ãããã¯ãŒã¯ããã³ Rinkeby ãããã¯ãŒã¯ãžã®ã³ã³ãã©ã¯ãã®ç§»è¡Truffle ãããã©ã€ããŒã Geth ãããã¯ãŒã¯ãžã®ã³ã³ãã©ã¯ãã®å
Ž
ãã©ã€ããŒããããã¯ãŒã¯ããŒãã®æºå
ä»äºã®å¥çŽæžã®æºå
ã³ã³ãã©ã¯ããã³ã³ãã€ã«ã㊠Truffle ãããã¯ãŒã¯ã«ç§»è¡ãã
ããŒã«ã« ãããã¯ãŒã¯ç§»è¡ geth ã®éå§
ããªã¥ãã®ã¢ãŒãã£ãã¡ã¯ããå
¥æãã
Truffle ãã Rinkeby ãã¹ãããããžã®ã³ã³ãã©ã¯ãã®å
Ž
Rinkeby ã§åäœããããã« Geth ããŒããæºåãã
ããŒãã®åæ
ã¢ã«ãŠã³ãã®è¿œå
Rinkeby ã¢ã«ãŠã³ãã«ã€ãŒãµããã£ãŒãžãã
Rinkeby ãããã¯ãŒã¯ãžã®å¥çŽç§»è¡ã®éå§
Rinkebyãããã¯ãŒã¯äžã®å¥çŽæ
å ±ã®é²èŠ§
Rinkeby Network çš Truffle ã³ã³ãœãŒã«
ã³ã³ãã©ã¯ãé¢æ°ãåŒã³åºãç°¡åãªæ¹æ³
Node.jsã䜿çšããã³ã³ãã©ã¯ãã¡ãœããã®åŒã³åºã
Rinkby ã® Truffle ã³ã³ãœãŒã«ã§ã¢ã«ãŠã³ãéã§è³éã移åãã
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 10. Ethereum Swarm åæ£åããŒã¿ ã¹ãã¬ãŒãžã€ãŒãµãªã¢ã ã¹ãŠã©ãŒã ã¯ã©ã®ããã«æ©èœããŸãã?
Swarm ã®ã€ã³ã¹ããŒã«ãšèµ·å
ãã¡ã€ã«ãšãã£ã¬ã¯ããªã®æäœ
Ethereum Swarm ãžã®ãã¡ã€ã«ã®ã¢ããããŒã
Ethereum Swarm ããã®ãã¡ã€ã«ã®èªã¿åã
ã¢ããããŒãããããã¡ã€ã«ã®ãããã§ã¹ãã衚瀺ãã
ãµããã£ã¬ã¯ããªãå«ããã£ã¬ã¯ããªã®ããŒã
ããŠã³ããŒããããã£ã¬ã¯ããªãããã¡ã€ã«ãèªã¿åã
ãããªã㯠Swarm ã²ãŒããŠã§ã€ã®äœ¿çš
Node.js ã¹ã¯ãªãããã Swarm ã«ã¢ã¯ã»ã¹ãã
Perl Net::Ethereum::Swarm ã¢ãžã¥ãŒã«
Net::Ethereum::Swarm ã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«
ããŒã¿ã®æžã蟌ã¿ãšèªã¿åã
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 11. Python 㧠Ethereum ãæäœããããã® Web3.py ãã¬ãŒã ã¯ãŒã¯Web3.pyã®ã€ã³ã¹ããŒã«
å¿
èŠãªããã±ãŒãžã®æŽæ°ãšã€ã³ã¹ããŒã«
easysolcã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«
Web3.py ã䜿çšããã³ã³ãã©ã¯ãã®çºè¡
å¥çŽæžã®äœæ
ãããã€ããŒã«æ¥ç¶ãã
å¥çŽçºè¡ã®å®è¡
å¥çŽã¢ãã¬ã¹ãšabiããã¡ã€ã«ã«ä¿åãã
å¥çŽå
¬éã¹ã¯ãªããã®å®è¡
ã³ã³ãã©ã¯ãã¡ãœããã®åŒã³åºã
JSON ãã¡ã€ã«ããã³ã³ãã©ã¯ãã®ã¢ãã¬ã¹ãš abi ãèªã¿åã
ãããã€ããŒã«æ¥ç¶ãã
ã³ã³ãã©ã¯ããªããžã§ã¯ãã®äœæ
ã³ã³ãã©ã¯ãã¡ãœããã®åŒã³åºã
Truffle ãš Web3.py
ã¬ãã¹ã³ã®æŠèŠ
ã¬ãã¹ã³ 12. ãªã©ã¯ã«ã¹ããŒãã³ã³ãã©ã¯ãã¯å€éšããã®ããŒã¿ãä¿¡é Œã§ããŸãã?
ãããã¯ãã§ãŒã³æ
å ±ä»²ä»è
ãšããŠã®ãªã©ã¯ã«
æ
å ±å
ãœãŒã¹ããã®ããŒã¿ãè¡šãã³ãŒã
ãããã¯ãã§ãŒã³ã«çºæ¿ã¬ãŒããèšé²ããOracle
USDRateãªã©ã¯ã«å¥çŽ
ã¹ããŒãã³ã³ãã©ã¯ãã§ã®çºæ¿ã¬ãŒãã®æŽæ°
Webãœã±ãããããã€ããŒã®äœ¿çš
RateUpdate ã€ãã³ããåŸ
ã£ãŠããŸã
RateUpdate ã€ãã³ãã®åŠç
ã¹ããŒãã³ã³ãã©ã¯ãã§ã®ããŒã¿æŽæ°ã®éå§
ã¬ãã¹ã³ã®æŠèŠ
åºæïŒ habr.com