IBM Blockchain Platform(IBP)でブロックチェーンネットワークを構築する

Taiji
12 min readAug 3, 2019

1. IBM Cloudへログイン

IBM Cloudへログインします。
https://ibm.biz/BdzKBB

IBM Cloud ダッシュボード

2. IBPのネットワーク起動

IBM CloudのカタログからBlockchain Platform v2.0を選択します。
ダッシュボード画面上部のメニューバーから「カタログ」を選択し、検索ボックスに「Blockchain」と入力するとカタログ内容がフィルターされます。Blockchain関連は2つ表示されると思いますが、黒いアイコンの方を選択します。

Blockchain Platformを選択

ロケーションはダラスを選択します。サービス名はそのままでOKです。

ダラスを選択

料金プランは標準を選択し、作成ボタンをクリックします。

料金プランは標準を選択

まもなくIBP作成画面へ遷移します。続行ボタンをクリックします。

IBP作成画面

ダラスのデータセンターでIBM Kubernetes Services(IKS)のクラスターを作成する必要があります。既に構築済みのクラスターも利用可能です。
IKSの無料プランを選択すれば30日間無料で利用することができます。

クラスター未作成なら「新規クラスターの作成」、作成済みなら「クラスターあり」

新規クラスター作成を選択すると、別ウィンドウで「新規クラスター作成」画面が開きます。こちらで無料クラスターを作成して下さい。

無料クラスターを選択

クラスターありを選択すると、「IBM Kubernetes Service クラスターへの IBM Blockchain Platform のデプロイ」画面へ遷移します。画面中央にあるクラスター選択のプルダウンから、自分のクラスターを選択します。ここではmyclusterがそれにあたります。選択したらクラスターへのデプロイボタンをクリックします。
※ここの工程は数分かかる場合があります。

IBPをデプロイするクラスターを選択し、クラスターへのデプロイボタンをクリック

クラスターへのデプロイが完了すると「ご使用のクラスターがリンクされました!」という表示に遷移するので、IBM Blockchain Platformの起動ボタンをクリックします。

IBM Blockchain Platformの起動ボタンをクリック

IBPの管理コンソール画面が表示されればデプロイは成功です。

IBP管理コンソール

3. ノードの作成

3-1 認証局ノードの作成

Blockchain ネットワークに参加する組織の認証局(CA)を起動し、認証局を使って、秘密鍵や証明書を発行して、他のノードを起動していきます。

管理コンソールの左メニューのノードを選択します。
認証局の追加をクリックします。
「IBM Cloud認証局の作成」を選択して「次へ」をクリックします。

「IBM Cloud認証局の作成」を選択して「次へ」をクリック

CA表示名を”Org1 CA”と記入し次へをクリックします。

CA表示名の設定

CA管理者登録IDを”admin”、CA 管理者登録機密事項を”adminpw”として次へをクリックします。

CA管理者登録ID/CA 管理者登録機密事項の設定

最後に認証局の追加ボタンをクリックするとCAノードが作成される。

確認して追加
組織用の認証局ノードが追加されたことを確認

同様の要領で順序付けサービス(Orderer)用のCAも作成しておきます。ここでは”Orderer CA”という表示名にしておきます。

Orderer用の認証局ノードが追加されたことを確認
作成したノードの右肩に緑色の四角が表示されるとノードがアクテイブになったということ

3-2 管理者ユーザーの作成

3-1で作成したCAのadminユーザを作成する。3-1で作成したデフォルトユーザをそのまま利用するのは、セキュリティ観点で避けましょう。

3-1で作成したOrg1 CAを選択し、「アイデンティティの関連付け」ボタンをクリックします。

アイデンティティの関連付けウィンドウが開くので、先ほど認証局作成時に作成したIDである"admin"と"adminpw"を入力し、「アイデンティティの関連付け」ボタンをクリックします。

登録済みユーザーの表示になるので、「ユーザーの登録」ボタンをクリックします。

登録IDは”org1admin”、登録機密事項は”adminpw”で作成します。
タイプはClientを選択。ルートアフィリエーションは本サンプルでは使用しないので、チェックの有無は任意で設定し、次へボタンをクリックします。オプション欄は記入のままで結構です。

ユーザーの登録ボタンをクリックするとユーザーが作成されます。

同様にPeer構築用のユーザを作成します。
登録IDは”peer1"、登録機密事項は”peer1pw”でユーザタイプはpeerを選択します。

これで、Org1 CAには3つの登録IDが作成されました。
・admin -> CA作成時に作った管理者アカウント
・org1admin -> 作業用管理者アカウント
・peer1 -> Peer構築用アカウント

登録された3つの登録者ID

Ordererも同様に”ordereradmin”と”orderer1"ユーザの2つを作成します。登録機密事項は”adminpw”と”orderer1pw”を設定します。

登録された3つの登録者ID

3-3 組織の作成

IBPの管理コンソールの組織タブを選択する。

組織を選択

MSP定義の作成を選択する。

MSP定義の作成を選択

MSP表示名をOrg1 MSP、MSP IDをorg1mspでセットし、ルート認証局の選択欄では先ほど作成したOrg1 CAを選択します。
登録IDと登録機密事項は”org1admin”と”adminpw”に変更し、アイデンティティ名に”Org1 Admin”を設定し、生成ボタンをクリックします。「アイデンティティは正常に生成され、ウォレットに追加されました。〜」というメッセージが表示されれば成功です。

MSP詳細の設定
ルート認証局詳細の設定
アイデンティティを生成したらエクスポート

IBP管理コンソールのwalletで作成したユーザを確認することができます。
秘密鍵と証明書はエクスポートしてVSCodeとの接続にも利用します。
このwalletはブラウザのローカルストレージ上に保存されているだけで、IKS上に保存されていないため、ユーザ自身でエクスポートして管理する必要があります。
ブラウザの履歴を削除したり、キャッシュを削除するとwalletのデータがなくなり、ノードにアクセスできなくなってしまうので、作成したwalletのデータは必ずエクスポートしてバックアップを取得しておく必要があります。
最後にMSPの作成ボタンをクリックします。組織が作成されたことを確認します。

MSP定義の作成
組織作成の完了

同様にOrderer MSPも作成します。MSP表示名とIDは”Orderer MSP”と”orderermsp"を設定します。ルート認証局は”Orderer CA”を選択して下さい。登録ID登録と登録機密事項は”ordereradmin”と”adminpw”を設定します。アイデンティティ名は"Orderer Admin"とします。

組織作成の完了

3-4 ピア、順序付けサービスノードの作成

IBPの管理コンソールのノードタブを選択しピアの追加を選択する。

ノードタブからピアの追加

IBM Cloud ピアの作成を選択し、次へをクリックします。

ピア表示名はPeer Org1に設定します。
認証局はOrg1 CA、ピア登録 IDとピア登録機密事項はPeerの作成用に作成したpeer1ユーザを指定します。
組織 MSPは"Org1 MSP"を選択します。

ピア表示名
認証局、登録ID、組織MSP

TLSの欄は登録 IDは”admin”、登録機密事項は”adminpw”を選択します。(オプション機能のため)

TLS之設定

最後にアイデンティティを、既存アイデンティティから”Org1 Admin”にして次へ、内容を確認しピアの追加をクリックすると、ピアが作成されます。

確認してピアの追加へ
ピアが作成されたことを確認

同様に順序付けサービス(Orderer)も作成します。

ここまででピア1台、順序付けサービス1台、認証局が2台作成できていることをノードタブで確認します。

正常に作成されると各ノードの右肩に緑色の印が表示される

4. 作成した組織のコンソーシアムメンバーへの追加

ネットワークへ参加予定の組織は、全てコンソーシアムメンバーに登録して置かないとチャネルの作成でエラーが発生するので、ここで登録していきます。

IBPの管理コンソールのノードタブから作成した順序付けサービスを選択し、共同事業体メンバーの組織の追加を選択します。

共同事業体メンバー(コンソーシアムメンバー)から組織の追加

既存MSP IDを選択し、”Org1 MSP”を選択して組織の追加をクリックします。Orderer(順序付けサービス)画面で追加されたことを確認します。

組織の追加
Org1 MSPが追加されたことを確認

5. チャネルの作成

IBPのコンソールの左メニュー画面からチャネルを選択し、チャネルの作成を選択します。

以下のように値を入力していきます。組織エリアでは、チャネルメンバーにOrg1 MSPを選択し追加ボタンを押すと、Org1 MSPに対する権限の設定欄が表示されるので、オペレーターにチェックを入れます。

チャネル作成者の組織エリアでは、Org1 MSPを選択し、アイデンティティにOrg1 Adminを選択し、チャネルの作成ボタンをクリックします。

チャネル名と順序付けサービスの設定
組織の追加
組織の権限設定
チャネル作成者の組織情報の設定

ピアをこのチャネルへ結合します。今作成したチャネルのタイルをクリックします。Peer Org1を選択し、チャネルへの結合をクリックします。

ピアのチャネルへの結合
ピアのチャネルへの結合
結合が正常に完了したことを確認

これで、IBPを使ってIBM CloudのKubernetes環境上にブロックチェーンネットワークを構築することができました。

4. これからのステップ

・スマートコントラクトデプロイ
・ネットワークへの接続
・VS Codeとの接続〜テスト

これらに関しては、追って解説をしていきたいと思います。
今回はここまで!

--

--

Taiji
Taiji

Written by Taiji

Datadog Senior Developer Advocate | Ex-OutSystems Dev Community Advocate | Ex-IBM Dev Advocate | Microsoft MVP | 筑波大学、名城大学非常勤講師 | 記事は個人の見解であり、所属する組織とは関係ありません。

No responses yet