Weitere ähnliche Inhalte
Ähnlich wie Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン (20)
Kürzlich hochgeladen (10)
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
- 1. TECHNOMOBILE
GROUP
HEAD OFFICE
TOKUSHIMA development section
| 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan
| 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズ
オン
- 7. 7
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinで使われているブロックチェー
ンは通貨だけではなく広くサービスと
して使われつつあります。管理サー
バー無しで。。
Swarm
クラウドファンディングのプラットフォーム
Storjcoin X
分散型ストレージサービス
Gems
分散型メッセンジャーアプリ
LTBcoin
「Let's Talk Bitcoin」というビットコインのPodcastサービスの広告枠の利用等
に使用
- 8. 8
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
まずはBitcoinを使ってみましたか?
EthereumやBitcoinCoreなどいろいろ環境
はありますが、
今回は、Hyperledgerを使い、仮想通貨だ
けではなくビジネスにつかえるブロック
チェーン環境を学びます。
- 10. 10
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
この学びの対象者は?
→Bitcoinなどに使われているブロックチェーンを操
作しながら理解・体験したい人。簡単なプログラム
を理解できる人。Docker,Linuxの基本コマンドが分
かる人。
Ethereumと比較したい人。
ブロックチェーンアプリを作りたい人。
WindowsのDocker環境を前提としています。
Macでも動作するとは思いますが未検証です(たぶん
volumeのフォルダー指定をMacに合わせれば大丈夫
かと)。
教えないことは?
→ブロックチェーンの専門家ではないので。。。
- 11. 11
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
講師
Gashfara,Inc.代表
デジタルハリウッド大学院客員講師
茂木健一
mogi@gashfara.com
kenichi.mogi@tcmobile.jp
http://facebook.com/mogiken
http://www.slideshare.net/mogiken1
自己紹介
[プロフィール/実績]
もぎ・けんいち●青山学院大学大学院卒。Gashfara,Inc.代表。本社はハワイですが出社したことなし。
ホノルルマラソンには参加w
青山学院大学大学院卒:エニックスでオリジナルゲーム制作(Z80アセンブラ CP/M)、SmallTalkで
人工知能開発(企業買収)。
(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッション
ウォーカー(えびもえのEC)など数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファ
ラ・インクをUSで起業。システム開発ではゲーム、TOL(ツタヤオンライン)の立ち上げ。動画配
信システム(USENのGate01:Gyaoの前進)、電子マネーシステム(Bitcash)、ECフルフィルメント
システムなど、多彩な分野を経験。IT関連教育では1998年ころからデジハリの2.5階に間借りしな
がら教育コンテンツ作成(JIB社)。Brew、Java、セキュリティーなどの講師として活躍。現在、
(株)HUGGを設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノ
モバイルにて技術サポート。
【著書】
BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516の極意[共著](秀和
システム)
- 17. 17
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinとは
・2009年から運用が始まった仮想通貨。単
位:BTC
・管理サーバーを持たず、ルールに基づいた
P2Pネットワーク上に信用のもと構築・運用
・手数料が安い
・信用はブロックチェーンの仕組み。
・誰でも情報にアクセスして検証することが
できる
・取引所で現金化も可能
・実店舗でも利用可能。
http://jpbitcoin.com/shops
※ここがわかりやすい。
http://gigazine.net/news/20131007
-what-is-bitcoin/
- 18. 18
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ブロックチェーンとは
・この解説が一番わかり易い。
http://www.slideshare.net/cookle/5-58379474
こまかいロジックはBitcoinのソースコードを
読むのが正解らしい。。。
※ポイントは。。。。
チェーンの改ざんを抑止するためにハッシュ値の計算(マイニング)
する難しさを定期的に調整しているが、調整が間に合わないような高速
演算できる環境を持ち込まれると長いチェーンを作成されてしまい、改
ざんできる余地がある。→完璧ではない。十分難しい状態のまま。
- 20. 20
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Hyperledgerとは
IBMや日立など大手が参加しているビジネス向
けブロックチェーンプロジェクトです。
Fablicがそのアプリケーションです。
・仮想通貨のような機能はありません
・プライベートネットワークのみ対応
・プログラムはGO、Javaで開発。将来的には
JavaScriptも
・ワールドステートにKey,Value形式のデータ
を保存できる。
- 21. 21
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
3つのサービスからなります。
・メンバーシップサービス
アカウントの管理、権限、証明書発行など
・ブロックチェーンサービス
ブロックチェーンの登録など管理します。
・チェーンコードサービス
GOなどで書かれたプログラムの実行管理
- 25. 25
membersrvc:
image: hyperledger/fabric-membersrvc
command: membersrvc
vp0:
image: hyperledger/fabric-peer
ports:
- "7050:7050"
- "7051:7051"
- "7052:7052"
environment:
- CORE_PEER_ADDRESSAUTODETECT=true
- CORE_VM_ENDPOINT=http://172.17.0.1:2375
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=vp0
- CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
- CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
- CORE_SECURITY_ENABLED=true
- CORE_SECURITY_ENROLLID=test_vp0
- CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
volumes:
- '/c/Users/mogi:/share'
links:
- membersrvc
command: sh -c "sleep 5; peer node start --peer-chaincodedev"
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
"mogi"の部分は自分の環境に合わせてください。volumesではWindowsの
c:Usersmogiのフォルダーをコンテナ内では/shareにマウントすることを指定し
ています。
- 29. 29
3.ビルドします.
cd /share/Documents/Docker/HyperLedger 保存先に移動
go build -o chaincode_example02
chaincode_example02が作成されれば成功。
4.peerサーバに登録して実行待ちにする。まだブロックチェーンには登録され
ていない。
CORE_CHAINCODE_ID_NAME=mycc
CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02
「Received REGISTERED, ready for invocations」というメッセージが表示され
れば成功。
myccという名前で登録。ポートは7051(なぜ7051なのかCurlでは7050を指定。要
調査:ToDo)。実行中にしないとこのあとのcurlでの実行時にエラーになる。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
- 32. 32
1.ログイン
アカウントjimでログイン。ログインしないと実行できない。
echo '{"enrollId": "jim","enrollSecret": "6avZQLwcUe9b"}' |curl -X POST -H
"Content-Type: application/json" -d @- http://localhost:7050/registrar
2.myccをDeploy。登録して初期化する。最初に実行が必要。jimアカウントで
登録初期化。 methodにdeployを指定 init関数を実行してaさんに100,bさんに200
を設定。2回実行しても初期化されない。
echo '{ "jsonrpc": "2.0", "method": "deploy", "params": {"type":
1,"chaincodeID":{"name": "mycc" }, "ctorMsg": { "args":["init", "a", "100", "b",
"200"]}, "secureContext": "jim" }, "id": 1 }' |curl -X POST -H "Content-
Type: application/json" -d @- "http://localhost:7050/chaincode"
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
- 33. 33
3.実行 methodをinvokeにする。関数invokeを実行する。aさんからbさんに10
を送金。 "message":"2b0f20ad-b04c-4d06-ae78-b445d5356732"が返ってくる。
これがトランザクションID
echo '{ "jsonrpc": "2.0", "method": "invoke", "params": {"type":
1,"chaincodeID":{"name": "mycc" }, "ctorMsg": { "args":["invoke", "a", "b",
"10"]}, "secureContext": "jim" }, "id": 2 }' |curl -X POST -H "Content-
Type: application/json" -d @- "http://localhost:7050/chaincode"
4.クエリー実行。methodをqueryにする。関数queryを実行する。aさんの残高
90を返す。
echo '{ "jsonrpc": "2.0", "method": "query", "params": { "type": 1,
"chaincodeID":{ "name":"mycc" }, "ctorMsg": {"args":["query",
"a"]}, "secureContext": "jim" }, "id": 3 }' |curl -X POST -H "Content-
Type: application/json" -d @- "http://localhost:7050/chaincode"
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Hinweis der Redaktion
- 弊社がご提供しているソリューション内容です。
企画から運営・保守にいたるまでを一気通貫で、
軸となるコンシューマ向けの大規模Webシステムをはじめ、スマホアプリ、ゲーム開発などをご提供しております。
特に大きな実績として、大規模ECシステム、求人検索サイトの開発となっております。
他にも音楽DLサイトや、業務を効率する管理系のシステムの実績も多数あります。
(30秒)