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.