ããã«ã¡ã¯ããããããã¹ã
ç§ã¯ã¢ã¹ã¯ã¯ã«ããIBM Science and Technology Centerã®éçºè
ã§ãã ç§ãã¡ã¯äžçäžã®ä»ã®ã©ãã§IBM補åãéçºããŠããŸãã æéã«äœè£ããããåžæãããå Žåã¯ãäž»èŠãªéçšã§ã¯ãªããããžã§ã¯ãã«åŽåæéã®äžéšã䜿çšããããšãã§ããŸãã ãã®ã¢ãããŒãã¯èŠéãåºããåµé çãªã ãŒãããµããŒãããŸãã ç§ã«ãšã£ãŠããã®åéã¯Hyperledger Fabricã§ã®ãããã¯ãã§ãŒã³ãœãªã¥ãŒã·ã§ã³ã®éçºã§ãã ããã«ããã®ãããªãããžã§ã¯ãã¯ãåœç€Ÿã®åžå Žã§éèŠãé«ãŸã£ãŠããŸãã
ãã®èšäºããããã¯ãã§ãŒã³ã«ã€ããŠã§ã¯ãªãããã®ãããªãœãªã¥ãŒã·ã§ã³ãéçºããããã«äœ¿çšãããã®ã«ã€ããŠã§ããããšãé¡ã£ãŠããŸãããããã§ã察象åéããå§ãã䟡å€ããããŸãã
ãã®èšäºã¯ç¶²çŸ
çãªãã®ã§ã¯ãªããHyperledger Composerã§ãããã¯ãã§ãŒã³ãããžã§ã¯ããéçºããããã®å®çšçãªã¯ã©ãŠãç°å¢ãäœæããããšãç®çãšããŠããŸãã å®è·µçãªèª¿æ»ã®çµæã次ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãååŸããå¿
èŠããããŸãã
ãã€ããŒã¬ãžã£ãŒãã¡ããªãã¯ã«ã€ããŠå°ã
ç¡æéã«æ¯èŒã§ãããããã¯ãã§ãŒã³ãã©ãããã©ãŒã ã¯å€æ°ãããŸãã ããããããŠãããŒãµã«ãã©ãããã©ãŒã ã¯ååšãããçŸåšã®ã¿ã¹ã¯çšã«éžæããããã©ãããã©ãŒã ããããŸãã ç§èªèº«ããããã¯ãã§ãŒã³ãã©ãããã©ãŒã ãããHyperledger FabricãéžæããŸããã ãã©ãããã©ãŒã ã¯æè¡çãªèŠ³ç¹ããç§ã«ãšã£ãŠèå³æ·±ãã®ã§ãäžæ¹ã§ãIBMã¯Hyperledgerã³ã³ãœãŒã·ã¢ã ã«ç©æ¥µçã«é¢äžããŠããŸãã
Hyperledgerã¯ãLinux Foundationãããžã§ã¯ãã®ã³ã³ãœãŒã·ã¢ã ã§ãã Hyperledger FabricïŒHLFïŒã¯ãããŸããŸãªãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããããã®ãããã¯ãã§ãŒã³æè¡ã®å®è£
ã§ãã ããã¯ãã¢ã¯ã»ã¹èš±å¯ãå¶åŸ¡ããããããã¯ãã§ãŒã³ãã©ãããã©ãŒã ã§ãã ããã¯ãæ°ããã¡ã³ããŒã®è¿œå ãå¶åŸ¡ãããããšãæå³ããŸãã åå è
ã¯ãããã¯ãŒã¯èšèšæ®µéã§å®çŸ©ãããç°ãªã圹å²ãæã€å ŽåããããŸãã ãã®ãããªãããã¯ãŒã¯ã®æãç解ããããã·ããªãªã¯ãå€ãã®ç¬ç«äŒæ¥ãåå ãããµãã©ã€ãã§ãŒã³ã§ãã äŸãšããŠããŠã©ã«ããŒããJD.comãIBMãæž
è¯å€§åŠã®é£åãµãã©ã€ãã§ãŒã³ã®çµç¹åã®çµéšãåŠã¶ããšãã§ããŸãã
æè¡çãªèŠ³ç¹ããèŠããšãååå è
ã¯çµç¹ïŒãŸãã¯ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ïŒã«æ¡åŒµããããããã¯ãŒã¯ã»ã¯ã·ã§ã³ãæã£ãŠããŸãããä»ã®äŒæ¥ã«å±éãããŠãããããã¯ãŒã¯ã»ã¯ã·ã§ã³ã«ã¯ã¢ã¯ã»ã¹ã§ããŸããã
å³ãããããããã«ãååå è
ã«ã¯æ¬¡ã®ãã®ããããŸãã
- ç¬èªã®ããŒãïŒãã¢ïŒããããã¯ãã§ãŒã³ãããã¯ãŒã¯ã®åäœãä¿èšŒããHLFã®äžéšã§ãã
- éåžžãå°ãªããšãWebãµãŒããŒãšãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã§æ§æãããã¢ããªã±ãŒã·ã§ã³ã
- ããŒãéã®çžäºäœçšãæäŸããæ¥ç¶ãªã³ã¯ïŒæ³šæãµãŒãã¹ïŒã
ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããŠãŒã¶ãŒã¯èªåã®ããŒãŸãã¯ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ããã¹ããŒãã³ã³ãã©ã¯ãã«ã¢ã¯ã»ã¹ããŸãã
ã¹ããŒãã³ã³ãã©ã¯ãã¯ãåæ£åå°åž³ã«ããããŒã¿ãšããåãããããã®ããã°ã©ã ãããããžãã¹ããžãã¯ãšã«ãŒã«ã§ãã ã¬ãžã¹ããªã«ã¯ããããã¯ãŒã¯åå è
ãäœæããäžé£ã®ãã©ã³ã¶ã¯ã·ã§ã³ãããã¯ãå«ãŸããŸãã åŸç¶ã®åãããã¯ã«ã¯ãåã®ãããã¯ã®ããã·ã¥ãæ ŒçŽãããŸããããã«ãããæ
å ±ã®äžéšãå€æŽããããšãäžå¯èœã«ãªããŸãã ãããã¯ã®æ£ç¢ºæ§ã«åæããŠåæ£ã¬ãžã¹ããªã«è¿œå ããããã»ã¹ã¯ãã³ã³ã»ã³ãµã¹ãšåŒã°ããŸãã ããŸããŸãªãããã¯ãã§ãŒã³ãã©ãããã©ãŒã ã«ã¯ãããŸããŸãªã³ã³ã»ã³ãµã¹ã¡ã«ããºã ããããŸãã ä»äºã®èšŒæïŒPoWïŒ ã ã¹ããŒã¯ã®èšŒæïŒPoSïŒ ã ãã¶ã³ãã³ã®ãã©ãŒã«ããã¬ã©ã³ã¹ïŒBFTïŒãªã©ã§ãã
ããŒãžã§ã³1.0以éãHLFã¯Ordering Serviceã®ååšã«åºæã§ãããã¯ã©ã¹ã¿ãŒå
ã®åå è
éã§åæ£ãããåºçŸãããã¯ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ãæ
åœããŸãã èšå®ããããã©ã¡ãŒã¿ã«åŸã£ãŠããããã¯ãŒã¯å
ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåéãããããã¯ã圢æããŸãã 泚æãµãŒãã¹ã«é害ãçºçããå Žåããããã¯ãŒã¯äžã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãã°ã«èšé²ãããªããªããŸãããããŒã¿èªäœã¯å€æŽãããŸããã
ããã§ãåºæ¬çãªæŠå¿µãç解ã§ããã®ã§ãç·Žç¿ã«ç§»ããŸãã
ç¬èªã®HLFãããã¯ãŒã¯ãå±éããæ¹æ³
ãã¹ãŠã®HLFã³ã³ããŒãã³ãã¯Dockerã³ã³ãããŒã§åäœãã Docker ComposeãŸãã¯Kubernetesã䜿çšããŠãããã€ã§ããŸãã ããã«ãã¹ããŒãã³ã³ãã©ã¯ãèªäœãDockerã³ã³ãããŒã§å®è¡ãããŸãã
HLFãå±éããã«ã¯ãæ¢åã®kubernetesãããã¯ãŒã¯ãminikubeã䜿çšããããã¯ã©ãŠãKubernetesããµãŒãã¹ãšããŠäœ¿çšã§ããŸãã
IBMã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã§ kubernetesãããã¯ãŒã¯ãç¡æã§å±éã§ããŸãã
IBM Cloudã§kubernetesãããã¯ãŒã¯ãå±éããæ¹æ³ã
IBM Cloudã®äœ¿çšãéå§ããã«ã¯ã以äžãè¡ãå¿ èŠããããŸãã
- ç»é²ãã
- IBM Cloud CLIãã€ã³ã¹ããŒã«ããŸã
- IBMã¯ã©ãŠãã®è¿œå æ©èœãã¢ã¯ãã£ãã«ããããã®ã¯ãŒãã³ãåãåããã¢ã¯ãã£ãã«ããŸãïŒã¯ãŒãã³ã¯ã»ãããã¥ã¢ã«ã¢ãŒãã§çºè¡ãããŸãããæ®å¿µãªãããããã®æ°ã¯éãããŠããŸãïŒã
- kubectlãã€ã³ã¹ããŒã«ããŸã ã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«Gitã¯ã©ã€ã¢ã³ããã€ã³ã¹ããŒã«ãã
- DockerãšKubernetesãäœã§ãããã«ã€ããŠèªãã§ãã ããã
IBM Cloudã«ç»é²ãããšãã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããããã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã ã¢ããªã±ãŒã·ã§ã³ïŒCloud FoundryãKubernetesãOpenWhiskãä»®æ³ãã·ã³ãå°çšãµãŒããŒïŒããã¹ãããããã®æ°çŸã®ãµãŒãã¹ãšã¢ãããŒãã«ã¢ã¯ã»ã¹ã§ããŸãã ä»®æ³ãã·ã³ãšå°çšãµãŒããŒã䜿çšããã«ã¯ãã¯ã¬ãžããã«ãŒããè¿œå ããå¿
èŠããããŸãããkubernetesã®äžéšãç¡æã§å
¥æã§ããŸãïŒäžèšã®ã¯ãŒãã³ã䜿çšïŒã
ãããè¡ãã«ã¯ãå·Šäžé
ã§ã¡ãã¥ãŒãã¿ã³ãã¯ãªãã¯ãã[ ã³ã³ãã ]ãéžæããŸãã
kubernetesã¯ã©ã¹ã¿ãŒã³ã³ãããŒã«ããã«ã Dockerã¬ãžã¹ã㪠ãããã³ãã«ã ãã£ãŒãã衚瀺ãããŸãã
å·ŠåŽã®ã¡ãã¥ãŒãã[ ã¯ã©ã¹ã¿ãŒ ]ãéžæãããšãkubernetesã¯ã©ã¹ã¿ãŒäœæã€ã³ã¿ãŒãã§ã€ã¹ãšãã¯ã©ã¹ã¿ãŒããããã€ãããªãŒãžã§ã³ã®éžæã衚瀺ãããŸãã åãªãŒãžã§ã³ã«ç¡æã®ã¯ã©ã¹ã¿ãŒãäœæã§ããŸãã
[ ã¯ã©ã¹ã¿ãŒã®äœæ ]ãã¿ã³ãã¯ãªãã¯ããåŸã ã¯ã©ã¹ã¿ãŒã®çš®é¡ãéžæããŠ[ 空ã ]ãéžæããååãèŠã€ããŸãã
ã¯ã©ã¹ã¿ãŒã®äœæã«ã¯æéãããããããã³ã³ãœãŒã«ã«åãæ¿ããã®ã«æéãããããŸãïŒã³ãŒããŒãïŒããæéã¯ãããŸããïŒã IBM Cloud CLIïŒbxããŒã«ïŒãã€ã³ã¹ããŒã«ããããã¢ã«ãŠã³ãã§åäœããããã«èšå®ããå¿ èŠããããŸãã
- kubernetesã§åäœããããã«bxã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã
bx plugin install container-service -r Bluemix
- IBM Cloudã«ãã°ã€ã³ããŸã
bx login -a https://api.eu-gb.bluemix.net
- ã¯ã©ã¹ã¿ãŒãäœæããå°åã瀺ããŸãïŒè±åœãšååœã¯ç°ãªãå ŽåããããŸãïŒã
bx cs region-set uk-south
- ã¯ã©ã¹ã¿ãŒã®æ§æãèŠæ±ããŸããmyclusterã¯IBM Cloud GUIã§å
¥åããååã§ãã
bx cs cluster-config mycluster
- åã®ã¹ãããã®çµæãšããŠè¡šç€ºãããã³ãã³ããå®è¡ããŸãã ã¯ã©ã¹ã¿ãŒã«ã¢ã¯ã»ã¹ããããã®ããŒã®å ŽæãkubectlãŠãŒãã£ãªãã£ã«éç¥ããŸãïŒæ§æãã¡ã€ã«ãžã®ãã¹ã¯å€æŽãããå ŽåããããŸãïŒã
export KUBECONFIG=/path/mycluster/kube-config-mil01-mycluster.yml
- kubernetesã¯ãŒã«ãŒã®ãããªãã¯IPã確èªããŸãã
bx cs workers mycluster
ããã§ãããããç®çã§kubernetesã¯ã©ã¹ã¿ãŒã®äœ¿çšãéå§ããæºåãæŽããŸããã ã¯ã©ã¹ã¿ãŒã¯ç¡æã§ããããã¯ãã§ãŒã³ãããã¯ãŒã¯ã®å±éã劚ããããšã®ãªãæ©èœã®å¶éãããã€ããããŸãã
- 1人ã®ã¯ãŒã«ãŒïŒä»®æ³ãã·ã³ïŒã®ã¿ã
- ããªã¥ãŒã ã®äžè¶³;
- ã¢ããªã±ãŒã·ã§ã³ããŒããã©ã³ãµãŒãå©çšã§ããªãã
- Ingresã䜿çšã§ããªãã代ããã«[NodePort]ã䜿çšã§ããïŒ https://kubernetes.io/docs/concepts/services-networking/service/ ïŒ
kubernetesãåããŠäœ¿çšããå Žåã¯ãæåã®DeploymentãšãµãŒãã¹ã®ãããã€ãè©ŠããŠã¿ã䟡å€ããããŸã ã ãããã¯ãã§ãŒã³ãããžã§ã¯ãã®éçºã®äžçã«ãã§ã«çªå ¥ããæºåãã§ããŠãã人ã¯ã次ã®ã¹ãããã«é²ãããšãã§ããŸãã
kubernetesã«HLFã³ã³ãããŒãå±éãã
æè¿DockerãšKubernetesã§äœæ¥ããŠãã人ãã¡ã®ããã«ãkubernetesã«ã¢ããªã±ãŒã·ã§ã³ããããã€ããã«ã¯2ã€ã®ãã®ãå¿ èŠã§ããããšãæãåºãããŠãã ããã
- ã³ã³ãããŒãéå§ããDockerã€ã¡ãŒãžã
- kubernetesã§ã®ã³ã³ããã®åäœã®yamlèšå®ã
ãªãŒãã³ãœãŒã¹ã®Hypeledger Fabricéçºè ã³ãã¥ããã£ãç§ãã¡ã®ããã«ä»äºãããŠãããŸããã HLFã䜿çšããDockerã€ã¡ãŒãžã¯æ¢ã«DockerHubäžã«ãããã¯ã©ã¹ã¿ãŒã«èªåçã«ããŒããããŸãã ãããŠãyamlèšå®å šäœãgithubãªããžããªã«ãããŸã ã å·çæç¹ã§ã¯ããªããžããªã«ã¯Hyperledger Fabric 1.0.3ã®æ§æãå«ãŸããŠããŸãã ã³ã³ãœãŒã«ã«æ»ãã次ã®ã³ãã³ããå®è¡ããŸãã
git clone https://github.com/IBM-Blockchain/ibm-container-service.git cd ibm-container-service/cs-offerings/scripts/ ./create_all.sh --with-couchdb
--with-couchdb
ãããã©ã«ãã®ããŒã¿ããŒã¹ã®ä»£ããã«CouchDBããããã€ããããã«å¿
èŠã§ãã ããã«ãããã¯ãšãªã䜿çšããŠHLF ComposerããããŒã¿ãååŸã§ããŸãã
Hyperledger Composerãšã¯äœã§ããïŒ
Composerã¯ãããã¯ãã§ãŒã³éçºè
åãã®ããŒã«ã§ãã ããã«ããããããã¯ãã§ãŒã³ãœãªã¥ãŒã·ã§ã³ã®éçºé床ãæ°ãæããæ°é±éã«é«ããããšãã§ããŸãã ãªã³ã©ã€ã³ã®ãµã³ãããã¯ã¹Composer PlaygroundããããŸããããã®äžã§èšèšããããã¹ãŠã®ããžãã¹ããžãã¯ã¯ãã©ãŠã¶ã§èµ·åãããŸãïŒãããã¯ãã§ãŒã³ãšãã¥ã¬ãŒã·ã§ã³ïŒã ãã®å ŽåãComposerã¯ãkubernetesã«ãããã€ããã皌åäžã®Hyperledger Fabricãããã¯ãŒã¯ã«æ¥ç¶ãããŸãã
Hyperledger Composerã§ã¢ãã«ãäœæããã«ã¯ãåå è
ïŒåå è
ïŒãè³ç£ïŒè³ç£ïŒãããã³ãã©ã³ã¶ã¯ã·ã§ã³ïŒãã©ã³ã¶ã¯ã·ã§ã³ïŒãèšè¿°ããå¿
èŠããããŸãã ãã®ã¢ãããŒãã«ãããéžæãããã©ãããã©ãŒã ã䜿çšããããŒã«ã§ã¯ãªãããããã¯ãã§ãŒã³ãããžã§ã¯ãã®éçºãã¿ã¹ã¯ã®æ¡ä»¶ã«å€æã§ããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãïŒããžãã¹ããžãã¯ïŒã¯JavaScriptã§èšè¿°ãããæ°ããã¹ããŒãã³ã³ãã©ã¯ããèµ·åããããšãæ°ããDockerã³ã³ãããŒã¯äœæãããããã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã¯è§£éã®ããã«æ¢åã®ã³ã³ãããŒã«è»¢éãããŸãã
Hyperledger Composerã®ãã1ã€ã®å©ç¹ã¯ãèšè¿°ãããè³ç£ãšãã©ã³ã¶ã¯ã·ã§ã³ã«åºã¥ããŠRESTã€ã³ã¿ãŒãã§ãŒã¹ãèªåçã«äœæã§ããããšã§ããããã«ããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®äœæãããã«éå§ã§ããŸãïŒãããã£ãŠãMVPãååŸã§ããŸãïŒã
æåã®ãããã¯ãã§ãŒã³ãããžã§ã¯ãã®éå§
IBMã¯ã©ãŠãã§Hyperledger Composerãéå§ããåŸã<public_ip_of_k8s_cluste>ïŒ31080ã§Webã€ã³ã¿ãŒãã§ãŒã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã ããã©ã«ãã§ã¯ãå¿ èŠãªãã¹ãŠã®Dockerã³ã³ãããŒãNodePortãã¯ãããžãŒã䜿çšããŠãããªãã¯ã¢ã¯ã»ã¹ã«è»¢éãããŸãïŒéçºè åãã®ç°å¢ãéçºããŠããããšãå¿ããªãã§ãã ããïŒã
Composerã¯github-projectã«æ¥ç¶ãããŠãããæ¢åã®ãããžã§ã¯ãã®1ã€ããããã€ããããç¬èªã®ãããžã§ã¯ãã®éçºãéå§ã§ããŸãã
ãã®çµæãHyperledger Fabricã«åºã¥ãããããžã§ã¯ããéçºããããã®ç¡æã®ã¯ã©ãŠãç°å¢ãæã«å ¥ããŸããã
次ã¯ïŒ
æè¡çã«å°é£ãªãããžã§ã¯ããšåæ§ã«ãåžžã«å€ãã®è©³çŽ°ãšè¿œå äºé ããããŸãã ãã®èšäºã¯ã¬ã€ãã³ã¹ã®ã¿ãç®çãšããŠãããéå§ãæ¯æŽããããšãç®çãšããŠããŸãã IBM Cloudã®kubernetesãšHyperledger Fabricã®éçºã«é¢ãã詳现ãªæ å ±ãå«ãããã€ãã®èšäºããæéãšåŽåã§æžãããšãã§ããã°å¹žãã§ãã
çŽ æ
DockerãKubernetesãIBM Cloud
IBMã¯ã©ãŠã
Dockerããã¥ã¡ã³ã
Kubernetesã®ããã¥ã¡ã³ã
èµåã
é»å ±ãã£ãã«ãšã³ã¿ãŒãã©ã€ãºã³ã³ãã
ãããã¯ãã§ãŒã³ãHyperledgerãããžã§ã¯ããIBMãããã¯ãã§ãŒã³
ãã¯ã€ãããŒããŒãã€ããŒã¬ãžã£ãŒãã¡ããªãã¯
Hyperledger Composerã®ããã¥ã¡ã³ã
Hyperledgerãµã³ãã«ãããžã§ã¯ã
ç¹ã«ææ°æè¡ãšãããã¯ãã§ãŒã³ã«é¢ããé»å ±ãã£ã³ãã«