More Related Content Similar to ブロックチェーン入門〜ただしFinTechを除く〜 (20) More from Miki Yutani (10) ブロックチェーン入門〜ただしFinTechを除く〜11. 非金融における活用
Supply Chain Management (SCM)
因果関係のある多数のプロセス
契約に内包することで扱いやすくなる
コンテンツ公開・非公開制御の課題
複数企業にまたがる調達プロセスの統合
プロセス自動化
リアルタイムEDI
→漸くファイルの時代の終焉に向かう?
Value ChainとSupply Chainの統合
ニーズを取り込みプロセスへ反映
契約のチェーンによる業務再設計
24. Blockchainサービスのpeer定義
"peers": [
{
"discovery_host": "78c1f7d2-8ee3-4f38-a0a2-
1cd6bd19a4b7_vp1-discovery.blockchain.ibm.com",
"discovery_port": 30303,
"api_host": "78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7_vp1-
api.blockchain.ibm.com",
"api_port_tls": 443,
"api_port": 80,
"type": "peer",
"network_id": "78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7",
"container_id":
"76d19b8ccad9cd0a8dda264b6cd5b40cf623d3563fec56103059072
2d8eb9174",
"id": "78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7_vp1",
"api_url": "http://78c1f7d2-8ee3-4f38-a0a2-
1cd6bd19a4b7_vp1-api.blockchain.ibm.com:80"
},
{ … } ],
↓サービスUUID
↑APIエンドポイント
↑ピアID
25. BlockchainサービスのCA定義
"ca": {
"78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7_ca": {
"url": "78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7_ca-
api.blockchain.ibm.com:30303",
"discovery_host": "78c1f7d2-8ee3-4f38-a0a2-
1cd6bd19a4b7_ca-discovery.blockchain.ibm.com",
"discovery_port": 30303,
"api_host": "78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7_ca-
api.blockchain.ibm.com",
"api_port_tls": 30303,
"api_port": 80,
"type": "ca",
"network_id": "78c1f7d2-8ee3-4f38-a0a2-1cd6bd19a4b7",
"container_id":
"e53c135b9a2c5a1e4395f09ce5ddba589ea8ea18a9d7101b6dd17c0
663b13648"
}
},
29. Hyperledger Project
Hyperledger Project
https://www.hyperledger.org/
先進的なブロックチェーン技術活用提案
Linux Foundation (2015/12〜)
Technical Steering Committee (TSC)
Chairman→IBMエンジニア
33. Marblesデモ
IBM DevOps Servicesを使ってBluemixへ
のデプロイを開始
Bluemix & DevOps
Servicesアカウント
https://hub.jazz.net
→IBM DevOps Services
(CIツールとビジュアル
ワークフローエディタ)
50. Open Blockchain (OBC) REST API一覧
最新のOBCドキュメントではAPIが若干異なっている
ex. /devops/*はdeprecatedとなり/chaincodeに統一
https://github.com/hyperledger/fabric/blob/master/docs/API/CoreAPI.md
API 意味
GET /chain/blocks/{Block} Block情報を取得
GET /chain Blockchain情報を取得
POST /devops/deploy Chaincodeのデプロイ
POST /devops/invoke Chaincodeの呼び出し
POST /devops/query Chaincodeステータスの取得
POST /registrar CAへのユーザ登録
DELETE /registrar/{enrollmentID} ローカルユーザログイントークン削除
GET /registrar/{enrollmentID} CAに対するユーザ登録確認
GET /registrar/{enrollmentID}/ecert ユーザ証明取得
GET /transactions/{UUID} トランザクションのコンテンツを取得
51. APIといえばCurl(/chain)
$ curl -s https://233395ed-76cf-40ec-be94-9c497522338a_vp1-
api.blockchain.ibm.com:443/chain | jq .
{
"previousBlockHash":
"7Td70mg+zq26FM498iMjLDqbqnC5N2GQuP+3aLXXKbICMk3WNG
TBluCYTbgp1SIJ25nOWTr4iZ7MoTwekwyuYQ==",
"currentBlockHash":
"forzyFK3efLnEY/oYoMd0i/z/S3VxORyfVmDAjh1jCFaNPDqPq6oKRJF
bPA3NJ+049VVImaN0wTDImoRJrn/mA==",
"height": 6
}
52. APIといえばCurl(/chain/block)
$ curl -s https://233395ed-76cf-40ec-be94-9c497522338a_vp1-
api.blockchain.ibm.com:443/chain/blocks/5 | jq .
{
"nonHashData": {
"localLedgerCommitTimestamp": {
"nanos": 322162294,
"seconds": 1460632589
}
},
"previousBlockHash":
"7Td70mg+zq26FM498iMjLDqbqnC5N2GQuP+3aLXXKbICMk3WNG
TBluCYTbgp1SIJ25nOWTr4iZ7MoTwekwyuYQ==",
"stateHash":
"XZU7PA0IQtscLxXGOdqWxC5lWAvfDZjkTl1uQvNbqV9iirs95hL+svI
7yuHxIxxYVnVo+x4lM9gNVPC7UZ7T1g==",
54. APIといえばCurl(/chain/block③)
"timestamp": {
"nanos": 291041833,
"seconds": 1460632588
},
"uuid": "96d4e155-1dcd-4930-a40a-012ebda88532",
"payload":
"CrIBCAESgwESgAFjNTE4MWIyZWNkMGMyOTFkM2JkYzY5MjkyMWJ
hNjVlNThkNTAyYWEzNWRiMmEwNjUzOWU4YTQxMzk4NTQ4ZjMwY
zc2OTkwNTQ0ZjJlZGNjMTBiYTRkMjU2MjFkZDFlZjdlNGM5ZjA0Y2Nh
YjFiOTA3ZGRjNjkxNGMzYmMzOWE2NBooCgtpbml0X21hcmJsZRIHc
mduZDI4OBIFd2hpdGUSAjE2EgVsZXJveQ==",
"chaincodeID":
"EoABYzUxODFiMmVjZDBjMjkxZDNiZGM2OTI5MjFiYTY1ZTU4ZDUw
MmFhMzVkYjJhMDY1MzllOGE0MTM5ODU0OGYzMGM3Njk5MDU0NG
YyZWRjYzEwYmE0ZDI1NjIxZGQxZWY3ZTRjOWYwNGNjYWIxYjkwN
2RkYzY5MTRjM2JjMzlhNjQ=",
"type": 3
}]}
55. APIといえばCurl(/transactions)
$ curl -s https://233395ed-76cf-40ec-be94-9c497522338a_vp1-
api.blockchain.ibm.com:443/transactions/96d4e155-1dcd-
4930-a40a-012ebda88532 | jq .
{
"signature":
"MEUCIEpiea1anNgnJkE920H6iH31yRfHY+OCzeqk2B87HG9LAiEAh
Q4fr7Ya2Bk5rMJHCmRf6KDZg0c6VocCC7v4N+9eZOI=",
"cert": (…)",
"timestamp": {
"nanos": 291041833,
"seconds": 1460632588
},
"uuid": "96d4e155-1dcd-4930-a40a-012ebda88532",
"payload":
"CrIBCAESgwESgAFjNTE4MWIyZWNkMGMyOTFkM2JkYzY5MjkyMWJ
hNjVlNThkNTAyYWEzNWRiMmEwNjUzOWU4YTQxMzk4NTQ4ZjMwY
zc2OTkwNTQ0ZjJlZGNjMTBiYTRkMjU2MjFkZDFlZjdlNGM5ZjA0Y2Nh
YjFiOTA3ZGRjNjkxNGMzYmMzOWE2NBooCgtpbml0X21hcmJsZRIHc
mduZDI4OBIFd2hpdGUSAjE2EgVsZXJveQ==",
57. APIといえばCurl(/users)
# ログイン状態の確認
$ curl -s https://a95743bd-a524-40e7-a009-1176ccd2dba0_vp1-
api.blockchain.ibm.com:443/registrar/user_type2_1b0bcc27a9
| jq .
{
"Error": "User user_type2_1b0bcc27a9 must log in."
}
# ログイン(レジストラへの登録)
$ curl -s -X POST -H 'Content-Type: application/json'
-d '{"enrollId": "user_type2_1b0bcc27a9", "enrollSecret":
"9f830a5c39" }'
https://a95743bd-a524-40e7-a009-1176ccd2dba0_vp1-
api.blockchain.ibm.com:443/registrar | jq .
{
"OK": "Login successful for user 'user_type2_1b0bcc27a9'."
}
58. APIといえばCurl(/users②)
# 証明書の取得
$ curl -s https://a95743bd-a524-40e7-a009-1176ccd2dba0_vp1-
api.blockchain.ibm.com:443/registrar/user_type2_1b0bcc27a9/
ecert | jq .{
"OK": "-----BEGIN+CERTIFICATE-----
%0AMIIBojCCAUmgAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYD
…
qJFA%3D%0A-----END+CERTIFICATE-----%0A"
}
# ログアウト(レジストラへの登録削除)
$ curl -s -X DELETE https://a95743bd-a524-40e7-a009-
1176ccd2dba0_vp1-
api.blockchain.ibm.com:443/registrar/user_type2_1b0bcc27a9
| jq .
{
"OK": "Deleted login token and directory for user
user_type2_1b0bcc27a9."
}
59. IBM Blockchainのまとめ
IBM Blockchainは、Linux Foundationによ
るHyperledger ProjectにIBMが提供した
Open Blockchain (OBC) APIの実装である
MarblesとCommercial Papersのデモは実際
の取引を行うアプリと、取引状況を確認する
モニタから構成されている