SlideShare a Scribd company logo
Bluemixでブロックチェーンを体験
2016/6/16
kohei yatsushiro
agenda
• 前半:講義
– BluemixとBlockchain-as-a-Service
– Open Blockchainについて
– ブロックチェーンサービスについて
• 後半:ハンズオン
– Bluemixでブロックチェーン体験
2
BluemixとBlockchain-as-a-Service
• Bluemix
– IBMが提供するクラウド環境(PaaS)
– Watsonを代表とする開発者支援のための
様々なサービスを提供
Blockchainのサービスが登場
=Open Blockchain
3
Open Blockchainとは 1/2
4
• 自由な参加
– Bitcoin:採掘(PoW)の仕組みを導入
– NEM:採掘の問題点を解消したPoIを導入
プ
ラ
イ
ベ
ー
ト
型
パ
ブ
リ
ッ
ク
型
• 参加者を管理
– mijin :NEMの技術をもとに開発
– Open Blockchain:カスタマイズ性が高い
Open Blockchainとは 2/2
• IBMが製作したプライベート型のブロックチェーン
– 企業が自社サービスで利用することを想定
• Hyperledgerに提供されたOSS
– IBM、intel、redhat、富士通などが参加する
Blochchain推進コミュニティー
• 利用方法
– ノードを自分で立てる
• https://github.com/openblockchain
– Bluemix上のサービス
5
Open Blockchainの用語
• ワールドステート
– ブロックチェーン上で管理されるデータ
– keyとvalueのペアで保存される
• valueはバイト配列
• Chaincode
– 取引の定義が記述されたもの
– ユーザが自分で作成できる
6
Chaincodeの中身
• Chaincode = ソースコード
– 現在はGo言語のみで記述可能
– 3つの関数を定義することで取引を定義
– 取引ではこの関数が実行される
• Init関数
Chaincodeをデプロイするときに実行される
• Invoke関数
ワールドステートへの変更を行う
• Query関数
ワールドステートの参照を行う
7
ブロックに記述される
ブロックに記述される
ブロックに記述されない
Open Blockchainの取引 1/2
• Chaincodeはブロックにデプロイすることで有効化
– ブロックチェーンに取り込まれたChaincodeは
改変できないので信頼できる
8
chaincode
ブロックチェーン
chaincode
デプロイ
Open Blockchainの取引 2/2
9
• Open Blockchainの取引はブロックに取り込まれた
Chaincodeを参照する形で行われる
chaincode transaction transaction
まとめ
デプロイ
10
chaincode transaction
chaincode
Init関数
Invoke関数
ワールドステート
追加・変更
Query関数
参照
10
取引の
定義
管理している
データ
取引(変更)
Blockchainのサービス1/9
• ブロックチェーンサービスでできること
– ブロックチェーンネットワークの構築
11
ブロックチェーンの状態の監視
APIからのブロックチェーンの操作
Blockchainのサービス2/9
12
ブロックチェーンのステータスの管理画面
Blockchainのサービス3/9
現在生成されているブロックの総数
13
Blockchainのサービス4/9
1時間あたりの平均ブロック生成数
14
Blockchainのサービス5/9
1つのブロックに含まれる平均トランザクション数
15
Blockchainのサービス6/9
デプロイされたChaincodeの数
16
Blockchainのサービス7/9
実行した取引( Invoke)の数
17
Blockchainのサービス8/9
生成されたブロック
18
Blockchainのサービス9/9
クリックしたブロックに含まれているトランザクション
19
Bluemixでブロックチェーン体験
20
ハンズオンパート
事前準備の確認
• Bluemixのアカウントの作成
• ブロックチェーンサービスの起動
– まだの方は手順書1.1参照
表示されていない方はURLを
https://obc-service-broker-prod.au-
syd.mybluemix.net/v2/monitor
に変更
21
ハンズオンの目標
• Open Blockchainで取引を定義・実行する
– Chaincodeをデプロイする
– Chaincodeを実行する
– Chaincodeの内容を理解する
22
Blockchainのサービスの確認 1/2
23
Blockchainのサービスの確認 2/2
初期状態では全て0になっています
24
使用するChaincodeの中身
• サンプルを用意しました
– https://github.com/ko-he-/tech-
circle_blockchain/tree/master/example02
• 3つの関数
– Init関数
• なにもしない
– Invoke関数
• key(string)に対しvalue(string)を保存
– ex) 管理番号(key)に品名(value)を保存
– Query関数
• keyからvalueを検索してvalueを表示
– ex) 管理番号から品名を検索
詳しくは実行しながら解説していきます
25
ログイン 1/3
・・・
・・・
先頭のID/Secretを
コピーしてどこかに保存
APIのベースURI
26
ログイン 2/3
{
“enrollId”: “<ユーザID>",
"enrollSecret": ”<Secret>"
}
パラメータを入力してログインします
27
ログイン 3/3
OKが帰って来ればログイン成功です
28
デプロイの実行
デプロイ
29
chaincode
chaincode
Init関数を実行
ワールドステート
29
C
デプロイ 1/3
30
{
"jsonrpc": "2.0",
"method": "deploy",
"params": {
"type": 1,
"chaincodeID": {
"path": "https://github.com/ko-he-/tech-
circle_blockchain/example02"
},
"ctorMsg": {
"function": "init",
"args": [
]
},
"secureContext": "<ユーザID>"
},
"id": 0
}
デプロイ 2/3
手順書からコピペしてください
31
これがchaincodeの IDです
この後使うので保存してください
結果が帰るまで少し時間がかかります
デプロイ 3/3
32
デプロイの実行結果
• デプロイによりブロックが生成されたので
確認してみましょう
Init関数が実行されたことがわかります。
33
各パラメータの解説
34
jsonrpc JSON-RPCのバージョン
method 実行するメソッド名
params
type Chaincodeのタイプ(1はGo言語)
chaincodeID
path Chaincodeのパス (デプロイのみ)
name ChaincodeのID(デプロイ以外)
ctorMsg function, args 実行時にChaincodeに渡される引数
secureContext 実行するユーザID
id
requestとresponseの組を
識別するためのもの
Init関数
35
1 func (t *SimpleChaincode) Init(
stub *shim.ChaincodeStub,
function string, args []string)
([]byte, error) {
2 if len(args) != 0 {
3 return nil, errors.New("error")
4 }
5
6 return nil, nil
7 }
Invokeの実行
36
chaincode transaction
ワールドステート
追加・変更
36
Invoke関数
取引(変更)
たとえば
A101というキーを
持つBookを
Invokeするとき
A101
"args": [“A101”, “Book”]
Invoke 1/2
{
"jsonrpc": "2.0",
"method": "invoke",
"params": {
"type": 1,
"chaincodeID": {
"name": “<chaincode ID>"
},
"ctorMsg": {
"function": "invoke",
"args": [“A101”, “Book”]
},
“secureContext”: ”<ユーザID>"
},
"id": 0
}
37
Invoke 2/2
38
Invokeの実行結果
• デプロイによりブロックが生成されたので
確認してみましょう
Invokeが実行されたことがわかります。
39
Invoke関数
40
1 func (t *SimpleChaincode) Invoke(
stub *shim.ChaincodeStub,
function string, args []string)
([]byte, error) {
2 var key, value string
3 var err error
4
5 key = args[0]
6 value = args[1]
7 valbyte := []byte(value)
8 err = stub.PutState(key, valbyte)
9
10 return nil, nil
11 }
Queryの実行
ワールドステート
参照
41
A101という
キーの値を
参照したい
A101
Query関数
"args": [“A101”]
{
"jsonrpc": "2.0",
"method": "query",
"params": {
"type": 1,
"chaincodeID": {
"name": "<chaincode ID>"
},
"ctorMsg": {
"function": "query",
"args": [ ”A101"]
},
"secureContext": "<ユーザID>"
},
"id": 0
}
Query 1/2
42
Invokeで追加した”Book”が帰って来ました!
結果が帰るまで少し時間がかかります
エラーが返ってきた場合
・ 少し待ってもう一度実行してください
・パラメータが間違っていないか確認してください。
Query 2/2
43
Queryの実行結果
• Queryはブロックに書き込まれないので
先ほどと変化がないことが確認できます
44

More Related Content

PDF
札幌Ibmクラウド勉強会 blockchain
PDF
Blockchain EXE #1ブロックチェーン技術の可能性について解説|IBMコンサルティング・アーキテクト 平山毅
PDF
Hyperledger Projectの概要
PDF
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
PDF
札幌Ibmクラウド勉強会 blockchain
PDF
Oracle bc gig#1_sisco
PPTX
Enterprise blockchain system
PDF
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
札幌Ibmクラウド勉強会 blockchain
Blockchain EXE #1ブロックチェーン技術の可能性について解説|IBMコンサルティング・アーキテクト 平山毅
Hyperledger Projectの概要
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
札幌Ibmクラウド勉強会 blockchain
Oracle bc gig#1_sisco
Enterprise blockchain system
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜

What's hot (20)

PDF
Blockchain EXE #16 分散型ネットワークを最大活用する為のパブリックとエンタープライズEthereumの動向|石黒一明 EEA Japan代表
PPTX
EXE #5:ブロックチェーンとユーザーID
PPTX
クイックスタートガイド|利用者編 | SmartBiz+
PDF
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
PDF
データベース屋がHyperledger Fabricを検証してみた
PDF
EXE #6:Hyperledger Fabric活用によるデータ流通ネットワーク
PDF
パネル 4feb
PDF
EXE #5:ブロックチェーン向け認証技術について
PPTX
EXE x WIRED:Blockchain思考をインストールせよ
PDF
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
PPTX
Blockchain EXE #12:海外遠征を含む最新事情共有(茂谷 保伯 | KDDI)
PPTX
医療におけるブロックチェーン利用
PDF
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
PDF
Hyperledger Fabric 1.0 概要
PPTX
EXE #3:ブロックチェーンの研究動向 - セキュリティとプライバシー
PDF
Cloudmix 20110909 iij
 
PDF
Blockchain - Future Sync Vol5 Slide
PDF
ブロックチェーンを学ぶ 公開版
PDF
Microsoft MVP から見たクラウド サービスの現状と今後について
 
PPTX
20140905 AWS Night in ITHD LT2
Blockchain EXE #16 分散型ネットワークを最大活用する為のパブリックとエンタープライズEthereumの動向|石黒一明 EEA Japan代表
EXE #5:ブロックチェーンとユーザーID
クイックスタートガイド|利用者編 | SmartBiz+
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
データベース屋がHyperledger Fabricを検証してみた
EXE #6:Hyperledger Fabric活用によるデータ流通ネットワーク
パネル 4feb
EXE #5:ブロックチェーン向け認証技術について
EXE x WIRED:Blockchain思考をインストールせよ
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Blockchain EXE #12:海外遠征を含む最新事情共有(茂谷 保伯 | KDDI)
医療におけるブロックチェーン利用
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
Hyperledger Fabric 1.0 概要
EXE #3:ブロックチェーンの研究動向 - セキュリティとプライバシー
Cloudmix 20110909 iij
 
Blockchain - Future Sync Vol5 Slide
ブロックチェーンを学ぶ 公開版
Microsoft MVP から見たクラウド サービスの現状と今後について
 
20140905 AWS Night in ITHD LT2
Ad

Viewers also liked (9)

PPTX
Blockchainを支える技術
PDF
Blockchain入門 20160416
PDF
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
PDF
IBM Watson Explorer: Explore, analyze and interpret information for better bu...
PDF
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
PDF
既存システムに対するブロックチェーン適用の検証と考察
PDF
Watson Explorerを使ったテキストマイニング
PDF
5分でわかるブロックチェーンの基本的な仕組み
PDF
ブロックチェーン技術の基本と応用の可能性
Blockchainを支える技術
Blockchain入門 20160416
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
IBM Watson Explorer: Explore, analyze and interpret information for better bu...
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
既存システムに対するブロックチェーン適用の検証と考察
Watson Explorerを使ったテキストマイニング
5分でわかるブロックチェーンの基本的な仕組み
ブロックチェーン技術の基本と応用の可能性
Ad

Similar to Open blockchain 3 (20)

PDF
Open blockchain in a nutshell
PPTX
ブロックチェーン入門〜ただしFinTechを除く〜
PPTX
IBM blockchain Introdution for marketer 20161216
PPTX
イノベート・ハブ九州 Bluemix勉強会#3
PDF
Ethereum whitepaper
PDF
neo4jを使ったブロックチェーンデータの解析
PDF
ブロックチェーン:技術とエコシステム Blockchain Summit Blockchain University - 日本語
PPT
Bluemix体験レポート@第3回札幌SoftLayer勉強会 20140901
PDF
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
PPT
既存 IBM Notes アプリにブロックチェーンを適用するよ! (きっと)動くよ!!
PDF
ブロックチェーンの基礎を学び、未来に活かす。
PPT
Bluemix体験レポート@第3回soft layer勉強会 20140901_ver.2
PDF
BMXUG 大阪 ブロックチェーン
PDF
Blockchain innovation
PDF
オープンソースコミュ俯瞰 18 nov2015
PDF
BMXUG女子部 ブロックチェーン
PPTX
チュートリアル: ブロックチェーンの計算モデル
PDF
BlockchainEXE_IBM特集 Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform An...
PDF
Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform Anywhereとエコシステム | 日本アイ・ビ...
PPTX
ブロックチェーンの技術とエコシステムをどのように構築すべきか
Open blockchain in a nutshell
ブロックチェーン入門〜ただしFinTechを除く〜
IBM blockchain Introdution for marketer 20161216
イノベート・ハブ九州 Bluemix勉強会#3
Ethereum whitepaper
neo4jを使ったブロックチェーンデータの解析
ブロックチェーン:技術とエコシステム Blockchain Summit Blockchain University - 日本語
Bluemix体験レポート@第3回札幌SoftLayer勉強会 20140901
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
既存 IBM Notes アプリにブロックチェーンを適用するよ! (きっと)動くよ!!
ブロックチェーンの基礎を学び、未来に活かす。
Bluemix体験レポート@第3回soft layer勉強会 20140901_ver.2
BMXUG 大阪 ブロックチェーン
Blockchain innovation
オープンソースコミュ俯瞰 18 nov2015
BMXUG女子部 ブロックチェーン
チュートリアル: ブロックチェーンの計算モデル
BlockchainEXE_IBM特集 Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform An...
Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform Anywhereとエコシステム | 日本アイ・ビ...
ブロックチェーンの技術とエコシステムをどのように構築すべきか

More from 光平 八代 (11)

PPTX
スクラムによるOpsBear開発4-プランニングポーカー
PPTX
スクラムによるOpsBear開発3-ユーザーストーリーマッピング
PPTX
スクラムによるOpsBear開発1-基本編
PPTX
スクラムによるOpsBear開発2-インセプションデッキ
PPTX
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
PDF
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
PDF
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
PPTX
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
PPTX
Ansible・ServerspecベースのOSS開発のCIの成功・失敗談
PPTX
StackStormではじめる1人Slackのすすめ
PPTX
新人がWakame-VDCとOpenVNetを動かしてみた
スクラムによるOpsBear開発4-プランニングポーカー
スクラムによるOpsBear開発3-ユーザーストーリーマッピング
スクラムによるOpsBear開発1-基本編
スクラムによるOpsBear開発2-インセプションデッキ
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
Ansible・Serverspecベースの自動化フレームワークSHIFT wareの紹介
Ansible・ServerspecベースのOSS開発のCIの成功・失敗談
StackStormではじめる1人Slackのすすめ
新人がWakame-VDCとOpenVNetを動かしてみた

Open blockchain 3