æ–°ã—ã„ IBM Developer ã¸ã‚ˆã†ã“ãï¼ ç§ãŸã¡ã¯ã“ã®æ–°ã—ã„プãƒã‚¸ã‚§ã‚¯ãƒˆã«å¤§ã„ã«å¼µã‚Šåˆ‡ã£ã¦ã„ã¾ã™ãŒã€ã¾ãšã¯çš†ã•ã‚“ã«ã¤ã„ã¦ã€ã¤ã¾ã‚Šé–‹ç™ºè€…ã«ã¤ã„ã¦ãŠè©±ã—ã—ãŸã„ã¨æ€ã„ã¾ã™ã€‚
Description
自分ã®ç”Ÿæ´»ã®ã©ã®éƒ¨åˆ†ã«ãƒ–ãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³ã‚’é©ç”¨ã§ãã‚‹ã‹è€ƒãˆã¦ã„ã¾ã™ã‹ï¼Ÿã‚¨ãƒãƒ«ã‚®ãƒ¼ã€è³‡æºã®æŒç¶šå¯èƒ½æ€§ã€ã‚ã‚‹ã„ã¯æ°—候変動ã«ã¤ã„ã¦é–¢å¿ƒã‚’æŒã£ã¦ã„ã¾ã™ã‹ï¼Ÿãã†ã ã¨ã—ãŸã‚‰ã€åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¨ã‚„りå–りã™ã‚‹åŸºæœ¬çš„ãªãƒ–ãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³ã®ä½œæˆã«æŒ‘戦ã—ã¦ã¿ã¦ãã ã•ã„ï¼ã“ã®ã‚¢ãƒ—リã®èƒŒæ™¯ã«ã‚ã‚‹è€ƒãˆæ–¹ã¯ã€åœ°åŸŸå†…ã§ã‚½ãƒ¼ãƒ©ãƒ¼ãƒ»ãƒ‘ãƒãƒ«ã‚’使ã£ã¦ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’生æˆã—ã¦ã„ã‚‹ä½æ°‘ãŒã€ä½™ã£ãŸã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’ã€ãれを必è¦ã¨ã—ã¦ã„ã‚‹ä»–ã®åœ°åŸŸä½æ°‘ã«è²©å£²ã—ãŸã‚‰ã©ã†ã‹ã¨ã„ã†ã‚‚ã®ã§ã™ã€‚ã“ã®ãƒ‘ターンã¯ã€ãƒ–ãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³ã«ã‚ˆã£ã¦ä¸–ç•Œã®æ”¹é©ã«ä¹—り出ã›ã‚‹ã“ã¨ã‚’示ã™å¥½ä¾‹ã§ã™ã€‚
Technologies
Overview
ブãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³ã‚’試験的ã«å°Žå…¥ã™ã‚‹ã®ã«æœ€é©ãªæ–¹æ³•ã¯ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’モデル化ã—ã¦ãƒ–ãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³ãƒ»ã‚¢ãƒ—リケーションを構築ã™ã‚‹ã®ã«ã€Hyperledger Composer ツールセットを使用ã™ã‚‹ã“ã¨ã§ã™ã€‚ã“ã®ãƒ‘ターンã§å–り上ã’るアプリケーションã¯ã€ã‚½ãƒ¼ãƒ©ãƒ¼ãƒ»ãƒ‘ãƒãƒ«ã‚„ä»–ã®æ‰‹æ®µã‚’使ã£ã¦ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’生æˆã—ã¦ã„ã‚‹åœ°åŸŸä½æ°‘ãŒã€ä½™ã£ãŸã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’ã€ãれを必è¦ã¨ã—ã¦ã„る近所ã®ä½æ°‘や電力会社ã«è²©å£²ã™ã‚‹ã€åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’表ã—ã¾ã™ã€‚
ã“ã®ã‚¢ãƒ—リケーションã®ä»•組ã¿ã¨ã—ã¦ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã“ã®ã‚¢ãƒ—リケーションを使用ã—ã¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å‚åŠ è€…ã¨å‚åŠ è€…ã”ã¨ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæ®‹é«˜ã‚’作æˆã—ã¾ã™ã€‚ãれãžã‚Œã®å‚åŠ è€…ã¯å…±æœ‰ã•れãŸã‚¨ãƒãƒ«ã‚®ãƒ¼ç”¨ã®ã‚³ã‚¤ãƒ³ã‚’交æ›ã§ãã¾ã™ã€‚(ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«ã¯ã€ç¾é‡‘をコインã«äº¤æ›ã™ã‚‹éŠ€è¡Œã‚‚å«ã¾ã‚Œã¾ã™)。トランザクションã¯ä½æ°‘åŒå£«ã®é–“ã€ä½æ°‘ã¨éŠ€è¡Œã®é–“ã€ã¾ãŸã¯ä½æ°‘ã¨é›»åŠ›ä¼šç¤¾ã®é–“ã§è¡Œã†ã“ã¨ãŒã§ãã¾ã™ã€‚トランザクションãŒè¡Œã‚れるã”ã¨ã«ã€ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãŒæ®‹é«˜ã‚’æ›´æ–°ã—ã¾ã™ã€‚ãã—ã¦å„トランザクションãŒã€ä¿¡ç”¨ã®ç¢ºä¿ã¨æ¤œè¨¼ã®ãŸã‚ã«ãƒ–ãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³ã®ãƒ¬ã‚¸ãƒ£ãƒ¼ã«è¿½åŠ ã•れã¾ã™ã€‚
作æˆå¾Œã®ã‚¢ãƒ—リケーションã¯ã€ã•ã¾ã–ã¾ãªæ–¹æ³•ã§æ‹¡å¼µã§ãã¾ã™ã€‚例ãˆã°ã€ç‰¹å®šã®è¨±å¯ã¨å‚åŠ è€…ã‚¢ã‚¯ã‚»ã‚¹ã‚’è¿½åŠ ã—ãŸã‚Šã€å‚åŠ è€…é–“ã§ã®ãƒªã‚¢ãƒ«ã‚¿ã‚¤ãƒ ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’セットアップã—ãŸã‚Šã™ã‚‹ãªã©ã§ã™ã€‚ã•らã«ã¯ IoT ã‚’çµ±åˆã—ã¦ã€é›»åŠ›è¨ˆã‚’èªã¿å–りã€ãã®å€¤ã«å¿œã˜ã¦ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’供給ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
Flow

- 管ç†è€…ãŒã€Angular フレームワークを構æˆã—ã¦ã„ã‚‹ã€åˆ†æ•£åž‹ã‚¨ãƒãƒ«ã‚®ãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã® UI ã‚’æ“作ã—ã¾ã™ã€‚
- アプリケーションãŒã€REST API を介ã—ã¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«é€ä¿¡ã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ»ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’処ç†ã—ã¾ã™ã€‚
- リクエストãŒã€Hyperledger Fabric v1 上ã®ãƒ–ãƒãƒƒã‚¯ãƒã‚§ãƒ¼ãƒ³çŠ¶æ…‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«å®Ÿè£…ã•れã¾ã™ã€‚
- REST API を使用ã—ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®çŠ¶æ…‹ãŒå–å¾—ã•れã¾ã™ã€‚
- Angular フレームワーク㌠REST API ã«å¯¾ã™ã‚‹ GET 呼ã³å‡ºã—ã«ã‚ˆã£ã¦ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã—ã¾ã™ã€‚
Included Components
Instructions
æ‰‹é †ã‚’é–‹å§‹ã™ã‚‹ãŸã‚ã«å¿…è¦ãªã®ã¯ã€Dockerã€npmã€Nodeã€Hyperledger Fabricã€Hyperledger Composer ã ã‘ã§ã™ (README ã‚’å‚ç…§ã—ã¦ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«é–¢ã™ã‚‹æ³¨è¨˜ã‚’確èªã—ã¦ãã ã•ã„)。
https://github.com/IBM/Decentralized-Energy-Composer
以下㮠7 ã¤ã®åŸºæœ¬çš„ãªã‚¹ãƒ†ãƒƒãƒ—ã«å¾“ã£ã¦ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’作æˆã—ã€ã‚¢ãƒ—リケーションを起動ã—ã€ä½œæˆã—ãŸãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã§ã‚¨ãƒãƒ«ã‚®ãƒ¼å…±æœ‰ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’実行ã—ã¾ã™ã€‚
- リãƒã‚¸ãƒˆãƒªãƒ¼ã®è¤‡è£½
Decentralized-Energy-Composer コードをãƒãƒ¼ã‚«ãƒ«ã«è¤‡è£½ã—ã¾ã™ã€‚
git clone https://github.com/IBM/Decentralized-Energy-Composer
- 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
- ビジãƒã‚¹ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¢ãƒ¼ã‚«ã‚¤ãƒ– (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 ã¨ã„ã†åå‰ã®ãƒ•ァイルãŒä½œæˆã•れã¾ã™ã€‚
- 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
- アプリケーションã®å®Ÿè¡Œ
angular-app フォルダーã«ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’変更ã—ã€ä¾å˜é–¢ä¿‚をインストールã—ã¾ã™ã€‚
cd ../angular-app/ npm install
以下ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦ã‚¢ãƒ—リケーションを起動ã—ã¾ã™ã€‚
npm start
アプリケーション㯠http://localhost:4200 ã§ç¨¼åƒä¸ã«ãªã£ã¦ã„ã‚‹ã¯ãšã§ã™ã€‚
ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¨é€šä¿¡ã™ã‚‹ REST サーãƒãƒ¼ã«ã¯ã€http://localhost:3000/explorer/ ã§ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚
- å‚åŠ è€…ã®ä½œæˆ
アプリケーションãŒèµ·å‹•ã—ãŸã‚‰ã€å‚åŠ è€…ã‚’ä½œæˆã—ã€ãƒ€ãƒŸãƒ¼ãƒ»ãƒ‡ãƒ¼ã‚¿ã‚’入力ã—ã¾ã™ã€‚å‚åŠ è€…ã¨ã—ã¦ã€ä½æ°‘ã€éŠ€è¡Œã€é›»åŠ›ä¼šç¤¾ã‚’ä½œæˆã—ã¾ã™ã€‚
- トランザクションã®å®Ÿè¡Œ
使°‘åŒå£«ã®é–“ã€ä½æ°‘ã¨éŠ€è¡Œã®é–“ã€ä½æ°‘ã¨é›»åŠ›ä¼šç¤¾ã®é–“ã§ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’手作æ¥ã§å®Ÿè¡Œã—ã¾ã™ã€‚トランザクションã®å®Ÿè¡ŒãŒå®Œäº†ã—ãŸã‚‰ã€å‚åŠ è€…ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®å€¤ãŒæ›´æ–°ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚
セッションã®çµ‚了時ã«ã€Fabric ã‚’åœæ¢ã—ã¾ã™ã€‚
cd ~/fabric-tools ./stopFabric.sh ./teardownFabric.sh
Related Blogs
ã¿ãªã•ã¾ã“ã‚“ã«ã¡ã¯ï¼ 年々ã€ãƒ†ãƒ¬ãƒ“ã®ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚„æ–°èžã‚’見ã¦ã€ç•°å¸¸æ°—象ã«ã‚ˆã‚‹é›†ä¸è±ªé›¨ã‚„猛暑ãŒå„地ã§ç™ºç”Ÿã—ã¦ã„ã‚‹ã¨æ„Ÿã˜ã¦ã„ã‚‹æ–¹ã¯å¤šã„ã®ã§ã¯ãªã„ã§ã—ょã†ã‹ã€‚自然ç½å®³ã«ã‚ˆã‚‹ç”šå¤§ãªè¢«å®³ã‚’ã‚‚ãŸã‚‰ã—ã¦ã„ã‚‹ã®ã¯æ—¥æœ¬ã ã‘ã§ã¯ã‚りã¾ã›ã‚“。「自然ç½å®³ã€ã¯ã€ä»Šã€ä¸–界ãŒç«‹ã¡å‘ã‹ã†ã¹ã最も大ããªè©¦ç·´ã¨ãªã£ã¦ã„ã¾ã™ã€‚ 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 やクラウドãªã©ã®ã‚¢ãƒ—リ開発ã«å½¹ç«‹ã¤ã‚µãƒ³ãƒ—ルコードをæä¾›
Related Links
Start blockchaining the fast, easy way in the Hyperledger Composer Playground.
Learn how this Journey fits into the Blockchain Reference Architecture.
This tutorial explains steps required to build a Hyperledger Composer blockchain solution from scratch.
Learn about blockchain basics, explore use cases, find tutorials, sample code, and blogs, and check out IBM solutions.
The playground provides a user interface for the configuration, deployment, and testing of a business network.
Will energy offer the next market for blockchain?
Will blockchain help democratize energy?
Curtis Miles introduces you to the world of energy trading and shows you a demo of how blockchain can help.