タグ別アーカイブ: bluemix

Blockchain – 自分で Hyperledgerのブロックチェーンを簡単に立ち上げる方法

ブロックチェーンは難しそうだし、自分で立ち上げてみるなんて無理・・と思っていましたが意外と簡単にできました。Hyperledger Fabric v1.0 をBluemix上で無料で立ち上げてみた手順が以下です。(⇒参照URL)

Gitコマンドが使える環境では、以下のコマンドでCloneを取得することが可能です。(Macなど)

>git clone https://github.com/IBM-Blockchain/ibm-container-service

Windows等の場合は、まず以下のURLでGitにある、オープンソースのHyperledger Fabric v1.0 をベースにしている IBM Blockchain Platformを確認します。右の緑のボタンを押して「Open in Desktop」でDesktopアプリをダウンロードします。

https://github.com/IBM-Blockchain/ibm-container-service

GitHubDesktopSetup.exe (GitDesktopアプリ)を実行し、Create your free accountで新しいGitHubユーザーIDを取得するか、既存の登録IDでログインします。次に「Clone a repository」をクリックし、URLタブに先ほどの以下のURLをインプットして「Clone」します。

https://github.com/IBM-Blockchain/ibm-container-service

Windowsであればコマンド・プロンプトで、上のLocal pathで導入したローカルPCのGitHubディレクトリ(マイドキュメントの下など)の「ibm-container-service」下の「cs-offerings/free/scripts/」ディレクトリに移動して下さい。

>cd ibm-container-service
>cd cs-offerings/free/scripts/

Bluemixではコンテナ管理に全面的に Kubernetes を使うため、⇒このリンク先を見てKubernetes環境のセットアップを実施してください
(Macなど) Shell Scrptが実行できる環境であれば、そこで以下のシェルを実行すれば全てセットアップができます。

./create_all.sh

Windowsなどでシェルが実行できない環境の場合や、create_all.shで処理が完了しない場合のために、ステップごとの実行の仕方を以下に記述しておきます (⇒参照URL)。まず、kubectl.exeがあるディレクトリに、パスを通してください(以下の例はWindowsのc:\tempに置いていた場合)。

>set path=c:\temp;%path%

Windowsのコマンドプロンプトで下のコマンドを順に実行することで、上のcreate_all.shで実行しているコマンドを順に実行する事ができます。(@remで始まる行以外)

実行する前に、kube-configs ディレクトリにあると同列にあるcreate_channel.yaml.base をコピーして create_channel.yaml という名称にし、「%CHANNEL_NAME%」とあるところを、「channel1」に変更します。
同じディレクトリのjoin_channel.yaml.baseをコピーしてjoin_channel.1yaml という名称にし、「%CHANNEL_NAME%」を「channel1」に、「%PEER_ADDRESS%」を「blockchain-org1peer1:5010」に、「%PEER_MSPIDS%」を「Org1MSP」に、「%MSP_CONFIGPATH%」を「/shared/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp」に変更します。
そのjoin_channel1.yamlをコピーしてjoin_channel2.yaml という名称にし「channel1」はそのままで、「blockchain-org1peer1:5010」を「blockchain-org2peer1:5010」に、「Org1MSP」を「Org2MSP」に、「/shared/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp」を「/shared/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp」に変更します。

同じディレクトリのcomposer-rest-server.yaml.baseをコピーしてcomposer-rest-server.yaml という名称にし、「%COMPOSER_BUSINESS_NETWORK%」を「”0″」に変更します。

chaincode_install.yaml.baseをコピーしてchaincode_install1.yaml という名称にし、「%CHAINCODE_NAME%」を「mycc」に、「”%CHAINCODE_VERSION%”」を「”1.0″」に、「%MSP_CONFIGPATH%」を「/shared/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp」に、「%PEER_MSPID%」を「Org1MSP」に、「%PEER_ADDRESS%」を「blockchain-org1peer1:5010」に変更します。
chaincode_install1.yamlをコピーしてchaincode_install2.yaml という名称にし、「%CHAINCODE_NAME%」を「mycc」に、「”%CHAINCODE_VERSION%”」を「”1.0″」に、「%MSP_CONFIGPATH%」を「/shared/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp」に、「%PEER_MSPID%」を「Org2MSP」に、「%PEER_ADDRESS%」を「blockchain-org2peer1:5010」に変更します。

chaincode_instantiate.yaml.baseをコピーしてchaincode_instantiate.yaml という名称にし、「%CHANNEL_NAME%」を「channel1」に、「%CHAINCODE_NAME%」を「mycc」に、「”%CHAINCODE_VERSION%”」を「”1.0″」に、「%MSP_CONFIGPATH%」を「/shared/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp」に、「%PEER_MSPID%」を「Org1MSP」に、「%PEER_ADDRESS%」を「blockchain-org1peer1:5010」に変更します。

上記のように yaml ファイルを準備後、以下のコマンドを順に実行してください。

@rem create_blockchain (CA,Orderer,Peerのservice作成)
kubectl create -f ..\kube-configs\blockchain-services.yaml

@rem (serviceのデプロイ)
kubectl create -f ../kube-configs/blockchain.yaml

@rem create_channel (channel1 で作成)
kubectl create -f ../kube-configs/create_channel.yaml

@rem join_channel (channel1 で2つのPeerをJoin)
kubectl create -f ../kube-configs/join_channel1.yaml
kubectl create -f ../kube-configs/join_channel2.yaml

@rem 4つのpod(ca,orderer,org1peer1,org2peer1)確認
kubectl get pods
@rem 以下で"Peer joined the channel!"を確認
kubectl logs -f joinchannel

@rem ComposerのPlayground(練習場)とRESTサーバー作成
kubectl create -f ../kube-configs/composer-identity-import.yaml
kubectl create -f ../kube-configs/composer-playground.yaml
kubectl create -f ../kube-configs/composer-playground-services.yaml
kubectl create -f ../kube-configs/composer-rest-server.yaml

@rem ChainCodeの導入
kubectl create -f ../kube-configs/chaincode_install1.yaml
kubectl create -f ../kube-configs/chaincode_install2.yaml

@rem ChainCodeインスタンスの立ち上げ
kubectl create -f ../kube-configs/chaincode_instantiate.yaml

@rem IPアドレスの確認
bx cs workers blockchain

上記の最後のコマンドで、Bluemix上のサーバーのPublic IPアドレスが表示されるので、それを以下の「あなたのIPアドレス」のところに貼り付けて、ブラウザで表示してください。

http://あなたのIPアドレス:31080

Loading Hyperledger Composer… のメッセージの後に「Welcome to Hyperledger Composer Playground!」が表示されていたら、Hyperledgerとその上の開発フレームワークのComposerの導入が完了しています!
「Let’s Blockchain」ボタンを押して、Blockchainをエンジョイしましょう!

 

注:
No connection could be madeが表示される場合は、set KUBECONFIG=/home/…  などが実施されていない場合。

couchDBを使う場合は、blockchain-services.yamlの代わりにblockchain-couchdb-services.yaml を指定し、blockchain.yaml の代わりに blockchain-couchdb.yaml 指定

pods “joinchannel” already exists のエラーがjoin_channel実行の際に出ても特に問題ない。

pods “chaincodeinstall” already exists のエラーがchaincode_install実行の際に出ても特に問題ない。

チャネルを一度削除して作り直す場合は、以下を実行。
>kubectl delete -f ../kube-configs/create_channel.yaml

 

⇒その他の関連コマンドはこちらを参照

 

Kubernetes – コンテナ管理ツールのクバーネテスで、クラウドにクラスタを構成して分かったこと

Dockerなどコンテナ管理ツールの Kubernetes 。クラウドにコンテナからクラスタを構成するには、もう必須のツールですね。元々はGoogle社が自分のクラウド環境を管理するために使っていたものがオープンソース化されたもので、Dockerなどコンテナをクラスタ化して構成するのが得意な管理ツールです。IBM Bluemixでも全面的に採用されたため、Hyperledger (Blockchain)のクラスタを構成するために以下のようにWindows環境セットアップして使ってみました。(⇒参照URL)

コンテナ環境のセットアップ

まずは Kubernetes のコマンドラインツール (kubectl)のインストール。以下からWindows版をダウンロードして導入しました。

https://kubernetes.io/docs/tasks/kubectl/install/
⇒Windows用 v1.7 はこちらからダウンロード
(Macは一番下を参照)

次に、Bluemix用のコマンドラインツール (CLI)も以下からWindows版をダウンロード。Bluemix_CLI_….exe を実行して、LicenseをAgreeしてInstallしてください。Windowsをリブートするとコマンドが使えるようになります。

http://clis.ng.bluemix.net/ui/home.html

Bluemixのコマンドラインは、Cloud Foundry (cf) コマンド・ベースですが、cfコマンドではなく以下のBluemixコマンドでコマンドプロンプトから実行してください。(Bluemixコマンドは、以下のように bx と略しても可)
また既にBluemixのリポジトリ登録が実行されいる場合は “already registered” などのメッセージが表示されますが気にせず次に進めて大丈夫です。

>bx plugin repo-add bluemix https://plugins.ng.bluemix.net

次に以下のコマンドで、Bluemixのコンテナ・サービスのプラグインをインストールします。ファイルがローカルにダウンロードされ、導入されます。

>bx plugin install container-service -r bluemix

Bluemixへのログインと初期設定

Bluemixにログインします。まずは作成対象となるクラウド(APIエンドポイント)を指定するため以下のコマンドを実行します。(以下のngは米国南部で、英国を使う場合はeu-gb) 続きを読む Kubernetes – コンテナ管理ツールのクバーネテスで、クラウドにクラスタを構成して分かったこと

Try Bluemix – クラウドに誰でも無料でWebサイト作成

1/10
Bluemix を使ったクラウド開発の一連の流れを以下にまとめ直しましたので、一通りやってみたい方は是非トライしてください!

⇒ Bluemixを活用したクラウド開発シリーズ

上記シリーズでは、Cloudantデータベースへのデータ格納サンプルも追加しています。


1/9
以下では、ブラウザだけで開発する、Bluemix DevOps開発環境を使ったやり方を紹介しましたが、ローカルPCで、Eclipseで開発することもできます。

⇒ Bluemixと Eclipseで連携して開発する方法

やはりしっかり開発する時は、ローカルPCの Eclipse でコーディングしてからクラウドに上げたいですよね。その場合も、コマンドとか使わず開発(Dev)後すぐにサーバーで運用(Ops)できる DevOps 開発ができます。


12/30
下の12/26版でBluemixのWebサイト構築が完了したら、いよいよ動くWebサイトを作り。Bluemixの売りの一つでもある、JavaScript言語のサーバー実行環境 「Node.js」 を使ってみましょう。既に環境構築は終わっているので、後は動くプログラムを以下の手順でコピーしてください。

⇒ Bluemix DevOpsで作る Node.jsで簡単サンプル

上のリンク先にあるように、Node.jsのサーバー側JavaScriptである、「app.js」 に十数行のプログラムを追加し、ブラウザに表示される 「index.html」 にも十数行追加し、そこから呼ばれる二十数行の 「ui_table.js」ファイルを追加することで、以下のような画面を表示することができます。

4.bm_apl画面結果

こちらの画面の下の項目名のところに名前をインプットし 「追加」 ボタンを押すと、サーバーのNode.jsのJavaScriptで時間を取得して、画面に一行動的に追加するという、簡単なアプリケーションです。

このアプリではNode.jsのメモリーの中だけでデータを保持していますが、次はデータをCloudantのデータベースに保存してみましょう。


12/26
クラウドくらいは自分もやってみないと、デジタル時代に乗り遅れるかなと。いうわけで、 Bluemix で自分のWebサイト作ってみたので皆さんと共有です。結構簡単で、ユーザーID取得したら誰でも20-30分で自分のホームーページが作れます。IDの取得とログインの方法は以下で、e-mailアドレスと氏名を入力すれば利用できるようになります。

⇒ Login – Bluemix のためのIBM ID取得

Bluemixにログイン(サインイン)したら、後は以下の手順で自分のWebサイトを構築してください。画面のアイコンをポチポチ押すだけでWebサイトに必要なソフトをそろえて立ち上げてくれます。

⇒ Bluemixとは何かと、使い方

やってみると、最後に以下のような画面が可能に。
アドレスは、http://XXXX.mybluemix.net/ とかになり、「XXXX」 のところのアプリ名は自分の名前でも何でも好きに指定できます。

2.Bluemix_result2

あとはこの手順の最後に入力した 「こんにちは!」 のところを自分の好きな文章や画面に変えると、自分のホームページのできあがりです。

Bluemixは30日間は試用期間で無料なのと、その後も一定量以下の使用であれば無料なので、安心してトライしてみてください。

この手順は、とある銀行様で活用いただいて好評なのと、近々うちの部署の数百名の Bluemixハッカソン(?)で使って、全員クラウド開発を体験してもらう予定です!