目次


IBM ブロックチェーンの基礎: 開発者向けクイック・スタート・ガイド

初めてのブロックチェーンを作成してアプリケーションのコーディングを開始する

Comments

ブロックチェーン革命に参加してください!この developerWorks クイック・スタート・ガイドの対象読者は、現在ブロックチェーン・テクノロジーについて調べていて、迅速にブロックチェーン・ネットワークを開発し、アプリケーションをデプロイする方法を探しているアプリケーション開発者です。

このガイドの単純な手順に従えば、最新の Hyperledger Fabric フレームワークをベースにブロックチェーン・ネットワークをアクティブ化し、チェーン・コード (ブロックチェーン・ネットワーク用のビジネス・ロジック) を作成してインストールし、ビジネス・プロセスとデジタル・インタラクションを効率化するクライアント・アプリケーションを作成できます (Hyperledger Fabric は、The Linux Foundation によってホストされている Hyperledger プロジェクトです)。

概念

まずは、ビジネス向けブロックチェーン・ネットワーク、Hyperledger Fabric フレームワーク、IBM Blockchain Platform について簡単に見ていきましょう。

ビジネス向けブロックチェーン

簡単に言うと、ブロックチェーン・ネットワークとは、ビジネス資産を効率的かつセキュアに交換するための分散型システムのことです。ネットワークのメンバーが共有する分散型レジャーに、メンバー間で行われる資産のトランザクションが不変の履歴として記録されるとともに、それらの資産の現在の状態 (ワールド・ステート) が列挙されます。資産のトランザクションを制御するビジネス・ルールは、スマート・コントラクト (別名チェーン・コード) にエンコードされます。

ブロックチェーン・ネットワークでは、トランザクションを検証するのに銀行や証券会社などの中央権力や信頼できる仲介者に依存することはありません。ブロックチェーン・ネットワークのメンバーはコンセンサス・メカニズムを使用するためです。コンセンサスが、ネットワーク全体で信用、説明責任、透過性を確実にする基礎となります。機密性を強化する場合、メンバーは 1 つ以上のチャネルに参加します。各チャネルに固有のレジャーは、そのチャネル内の認証済みピアの間でだけ共有されるため、データを隔離することが可能になります。

ビジネス向けブロックチェーン・ネットワークは、企業や大学などの識別可能かつ検証可能な機関からなるグループによって共同で所有および運用されます。このネットワークは、参加者が互いに既知となる、パーミッション型ネットワークです。ブロックチェーンはビットコイン・ネットワークを支えるテクノロジーですが、ビットコイン・ネットワークは非パーミッション型であり、ビジネスの使用ケースにはそれほど適していません。ビットコイン・ネットワークには識別可能な所有権の構造がないというだけでなく、ビットコイン・ネットワークを運用するコミュニティーには、識別可能でない参加者が含まれることもあるためです。

IBM Blockchain Platform

IBM Blockchain Platform は、エンタープライズ対応としては唯一の、完全に統合されたブロックチェーン・プラットフォームであり、複数の機関からなるビジネス・ネットワークの開発、ガバナンス、運用を加速化するように設計されています。このプラットフォームが基礎とする最新の Hyperledger Fabric コード・ベースには、エンタープライズ・レベルのセキュリティー、データ整合性、スケーラビリティー、パフォーマンスを確実にするモジュール式アーキテクチャーが採用されています。

Hyperledger Fabric

最近の市場の需要に対応するために、IBM は他社と協力して業界に焦点を絞ったオープンソースのブロックチェーン・テクノロジー実装の開発を進めています。Hyperledger Fabric と名付けられた、このビジネス向けブロックチェーン・テクノロジー実装は、The Linux Foundation によってホストされている Hyperledger Project の 1 つとなっています。Hyperledger Fabric は、パーミッション型ネットワークにおける分散レジャー・ソリューションのフレームワークであり、モジュール式アーキテクチャーによってブロックチェーン・ソリューションに最大限の機密性、回復力、柔軟性、スケーラビリティーをもたらします。

1

ブロックチェーン・ネットワークを作成する

概念を理解したところで、最初のステップとして、コードの開発、テスト、デプロイを練習するためのブロックチェーン・ネットワークを作成します。ブロックチェーン・ネットワークを作成するには、いくつかの方法があります。

ローカルの場合:

  • 方法 1: ローカル・マシン上で、GitHub 上の Hyperledger Fabric コード・ベースを使用する
  • 方法 2: ローカル・マシン上で、DockerHub 上の IBM 認定 Hyperledger Fabric イメージを使用する (IBM サポートも有料で利用できます)

IBM クラウドの場合:

  • 方法 3: IBM Bluemix Container Service を利用する
  • 方法 4: IBM Blockchain Platform を使用する

方法 1: GitHub 上の Hyperledger Fabric コード・ベースを使用する

ローカルでブロックチェーン・ネットワークを作成する方法の 1 つは、GitHub から直接 Hyperledger Fabric コード・ベースをコピーして、起動、構成、テストのプロセスを DockerHub スクリプトによって効率よく処理することです。以下のリンク先の手順に従うと、完全に機能するブロックチェーン・ネットワークが完成します。

方法 2: DockerHub 上の IBM の署名付き Hyperledger Fabric イメージを使用する

ローカルで選択できるもう 1 つの方法は、IBM が署名して認定した Hyperledger Fabric の Docker イメージを使用することです。これらのイメージは、最新の Hyperledger Fabric をベースに、保守性を目的とした拡張機能を追加したものとなっています。さらに、z Systems と LinuxONE (s390)、Power (ppc64le)、および x86 上で機能、安定性、パフォーマンスも厳格にテストされています。これらのイメージを使用するときは、IBM のテクニカル・サポートを有料で受けることができます。

方法 3: IBM Bluemix Container Service

クラウド・ベースの方法としては、ブロックチェーン・ネットワークを Docker コンテナー内で起動するという方法があります。コンテナーは、コードをパッケージ化し、変更を加えることなく異なる環境間で移動して実行できるようにする標準的な方法です。

以下のリンク先のページで説明している手順に従って、IBM Container Service 上で IBM Blockchain Platform for Developers をセットアップしてください。手順では、最初に IBM Container Service 上にデプロイ先のクラスターを準備します。次に、単一のスクリプトによってデフォルトの開発環境をデプロイします。このスクリプトがブロックチェーン・ネットワークのブートストラップを行い、ピアをチャネルに参加させて、Hyperledger Composer Playground を起動します。Hyperledger Composer Playground とは、迅速にブロックチェーン・ネットワークを作成、編集、テストするためのツールです。ホスト型バージョン (Online Playground) では、ブラウザー・メモリー内でネットワークを実行します。

方法 4: IBM Blockchain Platform

クラウド・ベースのもう 1 つの方法は、IBM Blockchain Platform 上でブロックチェーン・ネットワークをアクティブ化することです。このエンタープライズ対応のブロックチェーン・プラットフォームでは、複数の組織にまたがるビジネス・ネットワークでも、簡単にアクティブ化し、セキュリティーを確保し、管理することができます。最大の利点は、Hyperledger Fabric と Hyperledger Composer というオープンソース・テクノロジーに基づいていることから、どの環境内でも他の開発者と協同でアプリケーションを開発する道が開かれることです。

2

単純なチェーン・コードを作成してインストールする

チェーン・コードとは、特定のチャネルのレジャーに含まれる資産を作成、変更する際のビジネス・ポリシーとトランザクション命令を定義するものです。チェーン・コードは一般に、ブロックチェーンのメンバー間で合意を得たビジネス・ロジックを扱うことから、スマート・コントラクトとも呼ばれます。Hyperledger Fabric ベースのブロックチェーンでは、この 2 つの用語は同義語となっています。

チェーン・コードが実行される場所は、そのチェーン・コードとやりとりする必要がある任意のピアに関連付けられた Docker コンテナー内です。チェーン・コードは Go で作成されて、SDK または CLI によってピアのネットワークにインストールされ、インスタンス化されます。資産のトランザクションを起動するたびに、チェーン・コード内の関数が呼び出されて、レジャーから値を読み取ったり、レジャーに値を書き込んだりすることになります。

方法 1 (ローカル): チェーン・コードを作成してインストールする

チェーン・コードを作成して、Hyperledger Fabric で稼働するローカルのブロックチェーン・ネットワーク上でインストールするには、以下のリンク先の手順とサンプルが役立ちます。

方法 2 (IBM クラウド): IBM Blockchain Platform を使用して作成したネットワーク用のチェーン・コードをインストールする

REST インターフェースを使用して、チェーン・コードを直接ネットワークにデプロイできます。

3

チェーン・コード・アプリを呼び出すクライアント・サイド・アプリを作成してデプロイする

ブロックチェーン・ネットワークにチェーン・コードを登録したら、次は、ブロックチェーン・ネットワーク内でチャネル固有のレジャーを照会したり更新したりする、Node.js アプリケーションと Javaアプリケーションを作成します。

アプリケーションとネットワーク間のやりとりを可能にする API ライブラリーを使用するには、Hyperledger Fabric Client SDK が強力で簡単な手段になります。HFC SDK を利用する Node.js アプリケーションを使用することで、以下のネットワーク・タスクを実行できます。

  • メンバーを登録してネットワークに参加させる
  • チャネルを作成してピアをチャネルに参加させる
  • チェーン・コードをピアにインストールして、チャネル上でチェーン・コードをインスタンス化する
  • チェーン・コードの関数を呼び出してレジャーを更新する
  • レジャーに対して特定のトランザクション、ブロック、またはキーを照会する
  • チャネル上のイベント (トランザクションのコミット成功など) をモニターする

方法 1 (ローカル): Hyperledger Fabric ネットワークに対するクライアント・アプリケーションを作成してローカルでデプロイする

Hyperledger Fabric Client SDK を使用して、マシン上でローカルに稼働する Hyperledger Fabric ネットワークとやりとりするアプリケーションを作成するには、以下のリンク先の手順とサンプルが役立ちます。お望みであれば、アプリケーションを IBM クラウドにプッシュすることもできます。

方法 2 (IBM クラウド): クライアント・アプリケーションを作成して、IBM Blockchain Platform を使用して作成したネットワークにデプロイする

Hyperledger Fabric Client SDK API を使用してブロックチェーン・ネットワークとやりとりするには、以下のリンク先の手順とサンプル・アプリケーションを参考にしてください。

4

IBM Blockchain Platform 上でネットワークとアプリケーションをモニターして管理する

IBM Blockchain Platform 上では、使いやすい組み込みダッシュボードを使用して、ブロックチェーン・ネットワークとアプリケーションを管理できます。どのチャネルについても、ブロックの詳細、メンバー情報、インスタンス化されたチェーン・コードの詳細を確認できます。

5

ヘルプとサポートを入手する

サポートや質問に対する答えを得るには、さまざまな方法があります。

  1. IBM Blockchain Platform に関するヘルプ:
    まずは、このリンク先の「サポートについて」ページにアクセスしてください。このページからアクセスできる「Service Status (サービス・ステータス)」ページで、既知の問題を調べたり、新しくコミットされた Hyperledger Fabric コードをリリース・ノートで見つけたりできます。また、GitHub の問題一覧では、Blockchain 開発チームと連絡をとって、特定インスタンスの詳細やコード・スニペットを共有することもできます。
     
  2. ブロックチェーンに関する一般的な問題:
    このリンク先の「dW Answers」で問題を検索します。すでに質問が挙がっている問題を閲覧することも、新しい質問 (キーワード blockchain を含めてください) を送信することもできます。
     
  3. 特定の Hyperledger Fabric 実装に関する質問:
    Hyperledger Rocket.Chat チャネルStack Overflow が質問の答えを見つける確実な手段です。
     
  4. Hyperledger に関するその他のヘルプ:
    このリンク先の「Hyperledger Channel Guide」を参照し、質問内容に適したディスカッション・グループに参加してください。
6

Hyperledger Fabric の構築に協力する

皆さんもこのプロジェクトに関与してください!皆さんが Hyperledger Fabric に貢献できるよう、このプロジェクトでは RocketChat を使用してコミュニケーションを取れるようになっています。また、長期にわたるディスカッションと意思決定はメーリング・リストに回されます。

Hyperledger Fabric の保守担当者たちは、レビュー対象として提出されたパッチをすべてレビューしてマージしています。彼らは Hyperledger Project の Technical Steering Committee (TSC) によって制定されたガイドラインに沿って全体的な技術的方向を導いています。

次のステップ

このクイック・スタート・ガイドの締めくくりとして、ブロックチェーンのスキルを磨き続けるための 3 つの素晴らしい方法を紹介します。

  • developerWorks の Blockchain ニュースレターで最新情報を入手します。サブスクライブについて調べてください。
  • このリンク先の developerWorks Blockchain Developer Center にアクセスします。ここには、ビジネス向けブロックチェーン・ソリューションを開発してデプロイするための無料のツールとチュートリアルが揃っているだけでなく、コードとコミュニティー・サポートも入手できます。
  • 開発者向け Blockchain essentials コースで、資産移転の一部始終を学んでください。自分のペースで進められる無料のコースを修了したら、クイズに答え、バッジを獲得して、ビジネス・ネットワークに役立つブロックチェーン・アプリケーションの計画を開始してください。

謝辞

この資料の前のバージョンで、技術面で多大な貢献をしてくれた IBM の Joshua Horton に感謝の意を表します。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing
ArticleID=1040108
ArticleTitle=IBM ブロックチェーンの基礎: 開発者向けクイック・スタート・ガイド
publish-date=02012018