Hyperledger Composer ã«ã‚ˆã‚‹åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼  

ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’表示ã—ã€Web インターフェースを介ã—ã¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¨ã‚„りå–りã™ã‚‹ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ãƒ»ã‚¢ãƒ—リを作æˆã™ã‚‹

| By Raheel Zubairy

Description

自分ã®ç”Ÿæ´»ã®ã©ã®éƒ¨åˆ†ã«ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ã‚’é©ç”¨ã§ãã‚‹ã‹è€ƒãˆã¦ã„ã¾ã™ã‹ï¼Ÿã‚¨ãƒãƒ«ã‚®ãƒ¼ã€è³‡æºã®æŒç¶šå¯èƒ½æ€§ã€ã‚ã‚‹ã„ã¯æ°—候変動ã«ã¤ã„ã¦é–¢å¿ƒã‚’æŒã£ã¦ã„ã¾ã™ã‹ï¼Ÿãã†ã ã¨ã—ãŸã‚‰ã€åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¨ã‚„りå–りã™ã‚‹åŸºæœ¬çš„ãªãƒ–ロックãƒã‚§ãƒ¼ãƒ³ã®ä½œæˆã«æŒ‘戦ã—ã¦ã¿ã¦ãã ã•ã„ï¼ã“ã®ã‚¢ãƒ—リã®èƒŒæ™¯ã«ã‚ã‚‹è€ƒãˆæ–¹ã¯ã€åœ°åŸŸå†…ã§ã‚½ãƒ¼ãƒ©ãƒ¼ãƒ»ãƒ‘ãƒãƒ«ã‚’使ã£ã¦ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’生æˆã—ã¦ã„ã‚‹ä½æ°‘ãŒã€ä½™ã£ãŸã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’ã€ãれを必è¦ã¨ã—ã¦ã„ã‚‹ä»–ã®åœ°åŸŸä½æ°‘ã«è²©å£²ã—ãŸã‚‰ã©ã†ã‹ã¨ã„ã†ã‚‚ã®ã§ã™ã€‚ã“ã®ãƒ‘ターンã¯ã€ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ã«ã‚ˆã£ã¦ä¸–ç•Œã®æ”¹é©ã«ä¹—り出ã›ã‚‹ã“ã¨ã‚’示ã™å¥½ä¾‹ã§ã™ã€‚

Overview

ブロックãƒã‚§ãƒ¼ãƒ³ã‚’試験的ã«å°Žå…¥ã™ã‚‹ã®ã«æœ€é©ãªæ–¹æ³•ã¯ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’モデル化ã—ã¦ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ãƒ»ã‚¢ãƒ—リケーションを構築ã™ã‚‹ã®ã«ã€Hyperledger Composer ツールセットを使用ã™ã‚‹ã“ã¨ã§ã™ã€‚ã“ã®ãƒ‘ターンã§å–り上ã’るアプリケーションã¯ã€ã‚½ãƒ¼ãƒ©ãƒ¼ãƒ»ãƒ‘ãƒãƒ«ã‚„ä»–ã®æ‰‹æ®µã‚’使ã£ã¦ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’生æˆã—ã¦ã„ã‚‹åœ°åŸŸä½æ°‘ãŒã€ä½™ã£ãŸã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’ã€ãれを必è¦ã¨ã—ã¦ã„る近所ã®ä½æ°‘や電力会社ã«è²©å£²ã™ã‚‹ã€åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’表ã—ã¾ã™ã€‚

ã“ã®ã‚¢ãƒ—リケーションã®ä»•組ã¿ã¨ã—ã¦ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã“ã®ã‚¢ãƒ—リケーションを使用ã—ã¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å‚加者ã¨å‚加者ã”ã¨ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæ®‹é«˜ã‚’作æˆã—ã¾ã™ã€‚ãれãžã‚Œã®å‚加者ã¯å…±æœ‰ã•れãŸã‚¨ãƒãƒ«ã‚®ãƒ¼ç”¨ã®ã‚³ã‚¤ãƒ³ã‚’交æ›ã§ãã¾ã™ã€‚(ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«ã¯ã€ç¾é‡‘をコインã«äº¤æ›ã™ã‚‹éŠ€è¡Œã‚‚å«ã¾ã‚Œã¾ã™)。トランザクションã¯ä½æ°‘åŒå£«ã®é–“ã€ä½æ°‘ã¨éŠ€è¡Œã®é–“ã€ã¾ãŸã¯ä½æ°‘ã¨é›»åŠ›ä¼šç¤¾ã®é–“ã§è¡Œã†ã“ã¨ãŒã§ãã¾ã™ã€‚トランザクションãŒè¡Œã‚れるã”ã¨ã«ã€ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãŒæ®‹é«˜ã‚’æ›´æ–°ã—ã¾ã™ã€‚ãã—ã¦å„トランザクションãŒã€ä¿¡ç”¨ã®ç¢ºä¿ã¨æ¤œè¨¼ã®ãŸã‚ã«ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ã®ãƒ¬ã‚¸ãƒ£ãƒ¼ã«è¿½åŠ ã•れã¾ã™ã€‚

作æˆå¾Œã®ã‚¢ãƒ—リケーションã¯ã€ã•ã¾ã–ã¾ãªæ–¹æ³•ã§æ‹¡å¼µã§ãã¾ã™ã€‚例ãˆã°ã€ç‰¹å®šã®è¨±å¯ã¨å‚加者アクセスを追加ã—ãŸã‚Šã€å‚加者間ã§ã®ãƒªã‚¢ãƒ«ã‚¿ã‚¤ãƒ ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’セットアップã—ãŸã‚Šã™ã‚‹ãªã©ã§ã™ã€‚ã•らã«ã¯ IoT ã‚’çµ±åˆã—ã¦ã€é›»åŠ›è¨ˆã‚’èª­ã¿å–りã€ãã®å€¤ã«å¿œã˜ã¦ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’供給ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚

Flow

  1. 管ç†è€…ãŒã€Angular フレームワークを構æˆã—ã¦ã„ã‚‹ã€åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã® UI ã‚’æ“作ã—ã¾ã™ã€‚
  2. アプリケーションãŒã€REST API を介ã—ã¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«é€ä¿¡ã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ»ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’処ç†ã—ã¾ã™ã€‚
  3. リクエストãŒã€Hyperledger Fabric v1 上ã®ãƒ–ロックãƒã‚§ãƒ¼ãƒ³çŠ¶æ…‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«å®Ÿè£…ã•れã¾ã™ã€‚
  4. REST API を使用ã—ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®çŠ¶æ…‹ãŒå–å¾—ã•れã¾ã™ã€‚
  5. Angular フレームワーク㌠REST API ã«å¯¾ã™ã‚‹ GET 呼ã³å‡ºã—ã«ã‚ˆã£ã¦ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã—ã¾ã™ã€‚

Instructions

手順を開始ã™ã‚‹ãŸã‚ã«å¿…è¦ãªã®ã¯ã€Dockerã€npmã€Nodeã€Hyperledger Fabricã€Hyperledger Composer ã ã‘ã§ã™ (README ã‚’å‚ç…§ã—ã¦ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«é–¢ã™ã‚‹æ³¨è¨˜ã‚’確èªã—ã¦ãã ã•ã„)。

https://github.com/IBM/Decentralized-Energy-Composer

以下㮠7 ã¤ã®åŸºæœ¬çš„ãªã‚¹ãƒ†ãƒƒãƒ—ã«å¾“ã£ã¦ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’作æˆã—ã€ã‚¢ãƒ—リケーションを起動ã—ã€ä½œæˆã—ãŸãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã§ã‚¨ãƒãƒ«ã‚®ãƒ¼å…±æœ‰ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’実行ã—ã¾ã™ã€‚

  1. リãƒã‚¸ãƒˆãƒªãƒ¼ã®è¤‡è£½

    Decentralized-Energy-Composer コードをローカルã«è¤‡è£½ã—ã¾ã™ã€‚

    git clone https://github.com/IBM/Decentralized-Energy-Composer
  2. Hyperledger Fabric ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—

    実行中ã®ã‚³ãƒ³ãƒ†ãƒŠãƒ¼ã®ã™ã¹ã¦ã‚’キルã—ã€å‰ã«ä½œæˆã•れ㟠Hyperledger Fabric ãƒã‚§ãƒ¼ãƒ³ã‚³ãƒ¼ãƒ‰ãƒ»ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ã™ã¹ã¦å‰Šé™¤ã—ã¾ã™ã€‚

    docker kill $(docker ps -q) docker rm $(docker ps -aq) docker rmi $(docker images dev-* -q)

    Hyperledger Fabric ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ v1.1 ã«è¨­å®šã—ã¾ã™ã€‚

    export FABRIC_VERSION=hlfv11

    ã™ã¹ã¦ã®ã‚¹ã‚¯ãƒªãƒ—ト㯠/fabric-tools 内ã«ã‚りã¾ã™ã€‚Fabric ã‚’èµ·å‹•ã—ã€ãƒ—ロファイルを作æˆã—ã¾ã™ã€‚

    cd fabric-tools/ ./downloadFabric.sh ./startFabric.sh ./createPeerAdminCard.sh
  3. ビジãƒã‚¹ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¢ãƒ¼ã‚«ã‚¤ãƒ– (BNA) ã®ç”Ÿæˆ

    ルート・ディレクトリーã‹ã‚‰ BNA ファイルを生æˆã—ã¾ã™ã€‚

    cd ../ npm install composer archive create -a dist/decentralized-energy-network.bna --sourceType dir --sourceName .

    composer archive create コマンドã«ã‚ˆã£ã¦ã€dist フォルダー内㫠decentralized-energy-network.bna ã¨ã„ã†åå‰ã®ãƒ•ァイルãŒä½œæˆã•れã¾ã™ã€‚

  4. Fabric ã¸ã®ãƒ‡ãƒ—ロイ

    BNA ファイルを Hyperledger Fabric ã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚

    ã¾ãšã€Hyperledger Composer ランタイムをインストールã—ã¾ã™ã€‚

    cd dist/ composer network install --card PeerAdmin@hlfv1 --businessNetworkName decentralized-energy-network

    ビジãƒã‚¹ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’デプロイã—ã¾ã™ã€‚

    composer network start --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw --archiveFile decentralized-energy-network.bna --file networkadmin.card

    ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ç®¡ç†è€… ID ã‚’ã€ä½¿ç”¨å¯èƒ½ãªãƒ“ジãƒã‚¹ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚«ãƒ¼ãƒ‰ã¨ã—ã¦ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚

    composer card import --file networkadmin.card

    ビジãƒã‚¹ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒæ­£å¸¸ã«ãƒ‡ãƒ—ロイã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚ãれã«ã¯ã€ä»¥ä¸‹ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’ ping ã—ã¾ã™ã€‚

    composer network ping --card admin@decentralized-energy-network
  5. アプリケーションã®å®Ÿè¡Œ

    angular-app フォルダーã«ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’変更ã—ã€ä¾å­˜é–¢ä¿‚をインストールã—ã¾ã™ã€‚

    cd ../angular-app/ npm install

    以下ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦ã‚¢ãƒ—リケーションを起動ã—ã¾ã™ã€‚

    npm start

    アプリケーション㯠http://localhost:4200 ã§ç¨¼åƒä¸­ã«ãªã£ã¦ã„ã‚‹ã¯ãšã§ã™ã€‚

    ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¨é€šä¿¡ã™ã‚‹ REST サーãƒãƒ¼ã«ã¯ã€http://localhost:3000/explorer/ ã§ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚

  6. å‚加者ã®ä½œæˆ

    アプリケーションãŒèµ·å‹•ã—ãŸã‚‰ã€å‚加者を作æˆã—ã€ãƒ€ãƒŸãƒ¼ãƒ»ãƒ‡ãƒ¼ã‚¿ã‚’入力ã—ã¾ã™ã€‚å‚加者ã¨ã—ã¦ã€ä½æ°‘ã€éŠ€è¡Œã€é›»åŠ›ä¼šç¤¾ã‚’ä½œæˆã—ã¾ã™ã€‚

  7. トランザクションã®å®Ÿè¡Œ

    使°‘åŒå£«ã®é–“ã€ä½æ°‘ã¨éŠ€è¡Œã®é–“ã€ä½æ°‘ã¨é›»åŠ›ä¼šç¤¾ã®é–“ã§ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’手作業ã§å®Ÿè¡Œã—ã¾ã™ã€‚トランザクションã®å®Ÿè¡ŒãŒå®Œäº†ã—ãŸã‚‰ã€å‚加者ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®å€¤ãŒæ›´æ–°ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚

    セッションã®çµ‚了時ã«ã€Fabric ã‚’åœæ­¢ã—ã¾ã™ã€‚

    cd ~/fabric-tools ./stopFabric.sh ./teardownFabric.sh

Related Blogs

IBM Developer ã¸ã‚ˆã†ã“ã

æ–°ã—ã„ IBM Developer ã¸ã‚ˆã†ã“ãï¼ ç§ãŸã¡ã¯ã“ã®æ–°ã—ã„プロジェクトã«å¤§ã„ã«å¼µã‚Šåˆ‡ã£ã¦ã„ã¾ã™ãŒã€ã¾ãšã¯çš†ã•ã‚“ã«ã¤ã„ã¦ã€ã¤ã¾ã‚Šé–‹ç™ºè€…ã«ã¤ã„ã¦ãŠè©±ã—ã—ãŸã„ã¨æ€ã„ã¾ã™ã€‚

ç¶šã‘ã¦èª­ã‚€ IBM Developer ã¸ã‚ˆã†ã“ã

Call for Code Challenge 2018(9/28応募締切ï¼ï¼‰- ã¾ãšã¯å‚加登録ã—ã¦ã€è‡ªç„¶ç½å®³ã«å½¹ç«‹ã¤ IBM Cloud ã®ã‚µãƒ¼ãƒ“スã«è§¦ã‚Œã¦ã¿ã‚ˆã†

ã¿ãªã•ã¾ã“ã‚“ã«ã¡ã¯ï¼ 年々ã€ãƒ†ãƒ¬ãƒ“ã®ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚„æ–°èžã‚’見ã¦ã€ç•°å¸¸æ°—象ã«ã‚ˆã‚‹é›†ä¸­è±ªé›¨ã‚„猛暑ãŒå„地ã§ç™ºç”Ÿã—ã¦ã„ã‚‹ã¨æ„Ÿã˜ã¦ã„ã‚‹æ–¹ã¯å¤šã„ã®ã§ã¯ãªã„ã§ã—ょã†ã‹ã€‚自然ç½å®³ã«ã‚ˆã‚‹ç”šå¤§ãªè¢«å®³ã‚’ã‚‚ãŸã‚‰ã—ã¦ã„ã‚‹ã®ã¯æ—¥æœ¬ã ã‘ã§ã¯ã‚りã¾ã›ã‚“。「自然ç½å®³ã€ã¯ã€ä»Šã€ä¸–界ãŒç«‹ã¡å‘ã‹ã†ã¹ã最も大ããªè©¦ç·´ã¨ãªã£ã¦ã„ã¾ã™ã€‚ IBMã¯ã€2018å¹´5月24æ—¥ã€ãƒ‘ートナー団体ã¨å…±ã«ã€ŒCall for Codeã€ã‚’ã„ã†å–り組ã¿ã‚’発表ã—ã€ä¸–界中ã®ãƒ‡ãƒ™ãƒ­ãƒƒãƒ‘ãƒ¼ãŒæœ€æ–°ã®æŠ€è¡“を駆使ã—ã¦ã€ã‚³ãƒ¼ãƒ‰ã§ä¸–界ã«ãƒã‚¸ãƒ†ã‚£ãƒ–ãªå¤‰åŒ–を与ãˆã‚‹æ”¯æ´ã‚’ã¯ã˜ã‚ã¾ã—ãŸã€‚ 2018å¹´ã® Call for Code ãƒãƒ£ãƒ¬ãƒ³ã‚¸ã§ã¯ã€ã€Œè‡ªç„¶ç½å®³ã€ã‚’テーマã«è‡ªç„¶ç½å®³ã‚’打ã¡ç ´ã‚Šã€åœ°åŸŸç¤¾ä¼šã‚„自然ç½å®³å¯¾ç­–を強化を目指ã—ã€IBM Cloud サービスを活用ã—ãŸã‚½ãƒªãƒ¥ãƒ¼ã‚·ãƒ§ãƒ³ã‚’構築ã™ã‚‹ã‚³ãƒ³ãƒšãƒ†ã‚£ãƒƒã‚·ãƒ§ãƒ³ã‚’開催ã—ã¾ã™ã€‚18歳以上ã®å€‹äººã¾ãŸã¯æœ€å¤§5åã¾ã§ã®ãƒãƒ¼ãƒ ã§å‚加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚優å‹ãƒãƒ¼ãƒ ã«ã¯ USD200,000 (2,200万円相当) ãŒè´ˆã‚‰ã‚Œã¾ã™ã€‚ ã“れを機ã«çš†ã•ã‚“ã«ã‚‚「Call for Codeã€ã«ã”å‚加ã„ãŸã ãã€ã‚¯ãƒ©ã‚¦ãƒ‰ã€ãƒ‡ãƒ¼ã‚¿ã€AIã€ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ã‚’活用ã™ã‚‹ãŸã‚ã®IBMã®ãƒ†ã‚¯ãƒŽãƒ­ã‚¸ãƒ¼ã«ã‚‚触れã¦ã„ãŸã ã‘れã°ã¨æ€ã„ã¾ã™ã€‚詳ã—ãã¯ã‚µã‚¤ãƒˆã‚’ã”覧ãã ã•ã„。 Call for Code(日本語サイト) Call for Code ã¸ã®å‚加ã™ã‚‹ã¾ã§ã®æ‰‹å¼•ã(日本語解説資料) IBM Code Patterns : Watson を活用ã—㟠AI やクラウドãªã©ã®ã‚¢ãƒ—リ開発ã«å½¹ç«‹ã¤ã‚µãƒ³ãƒ—ルコードをæä¾›

ç¶šã‘ã¦èª­ã‚€ Call for Code Challenge 2018(9/28応募締切ï¼ï¼‰- ã¾ãšã¯å‚加登録ã—ã¦ã€è‡ªç„¶ç½å®³ã«å½¹ç«‹ã¤ IBM Cloud ã®ã‚µãƒ¼ãƒ“スã«è§¦ã‚Œã¦ã¿ã‚ˆã†

Related Links

IBM Blockchain

Learn about blockchain basics, explore use cases, find tutorials, sample code, and blogs, and check out IBM solutions.