狠狠撸
Submit Search
贬测辫别谤濒别诲驳别谤のチュートリアルで理解する基干システム向けブロックチェーンハンズオン
?
Download as PPTX, PDF
?
10 likes
?
4,857 views
健一 茂木
顿辞肠办别谤を使って贬测辫别谤濒别诲驳别谤贵补产濒颈肠の环境を作り、サンプルを解説します。
Read less
Read more
1 of 37
Download now
Downloaded 54 times
More Related Content
贬测辫别谤濒别诲驳别谤のチュートリアルで理解する基干システム向けブロックチェーンハンズオン
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のチュートリアルで理解する基幹システム向けブロックチェーンハンズ オン
2.
2 Hyperledgerのチュートリアルが理解できたので共 有します。ほかにわからないことはたくさんあるの で気づいた点はフィードバックください。 IBMのCloudにあるHyperledgerはバージョンが古く サンプルが動かないようです。 ほんと情報が少ないです。 6 目的
3.
3 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 みなさんBitcoin知ってますか?
4.
4 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 逮捕されたり。。。仮想だし。。。 なんか怖いですよね
5.
5 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 マウントゴックスの件は、不正会計や かってに送金されただけで、Bitcoinの セキュリティーをがハックされたわけ ではないのです。
6.
6 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 上下しながら取引されています。
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を使い、仮想通貨だ けではなくビジネスにつかえるブロック チェーン環境を学びます。
9.
9 「Hyperledgerのインストール」ページを参考にインストールをしておいてくださ い。 狠狠撸ShareのスライドをDownloadしておくと、テキストのコピペが楽になりま す。 6 事前準備
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の極意[共著](秀和 システム)
12.
12 成長を実現させるシステム”モバイルトータルソリュー ション” Web システム 1 スマホ アプリ 2 ゲーム アプリ 3 モバイルトータルソリューション B2B2C ? コンシューマ向けの大規模Webシステムの開発からアプリ?ゲーム開発までをマルチデバイスで対応 高い技術力
市場ニーズとマッチ 大規模 Webシステム に強い Java,PHP Strong1 最先端技術?独自 フレームワークで 効率的な 開発 Strong2 高トラフィック、 インフラ ネットワーク に強い Strong3 プライマリー ベンダー、 ヒアリング? 要件定義 に強い StrongⅠ 情報資産の活用 最先端と 知見に強い StrongⅡ 最先端のマルチ デバイス ウェアラブルに 強い StrongⅢ Mashup Awards 5年連続 受賞 会社名 株式会社テクノモバイル 設 立 2008年 資本金 2,500万円 代 表 播田 誠 従業員数 100名(グループ合計) 本社所在地 〒 107-0062 東京都港区南青山7-1-5 コラム南青山 5F 開発室 〒771-0134 徳島県徳島市川内町平石住吉209-5 徳島健康科学総合センター 3F
13.
ベンチャー企業に誘われていろいろと! TOL,BitCash,TokyoGirlsCollection,G yaoとか立ち上げに参加。もちろんデジハリも 。
14.
最近はカップル向けアプリの企業を立ち上げ! Co-Founderで! 1億2千万円集めて2年間で使い きりました!ごめんなさいorz
15.
勉強会やってます! 最近は ドローン飛ばしたり Bitcoinを使って 募金サイトつくっ たり Androidアプリの 先生やってます バイオリン イスラエルのブロックチェ ーンスタートアップに Join
16.
経営&サービス目線で創業期のシステムを設計?開 発するのが得意です。特許も考えます。 おもしろいシステムしか作りません( ?`д??)??? 最近の勉強会の内容はスライドシェアで共有してま す。 http://www.slideshare.net/mogiken1
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のソースコードを 読むのが正解らしい。。。 ※ポイントは。。。。 チェーンの改ざんを抑止するためにハッシュ値の計算(マイニング) する難しさを定期的に調整しているが、調整が間に合わないような高速 演算できる環境を持ち込まれると長いチェーンを作成されてしまい、改 ざんできる余地がある。→完璧ではない。十分難しい状態のまま。
19.
19 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 ?この書籍がわかりやすい。おすすめ http://amzn.to/2gcfcb2
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などで書かれたプログラムの実行管理
22.
22 DockerにHyperledgerの環境を作成します。Windows環境で説明しますが、Mac でも問題ないと思います(未検証)。参考:https://goo.gl/xRYUHr 1.Docker Toolboxのインストール https://www.docker.com/products/docker-toolbox からDockerToolboxをダウン ロードしてインストールしてください。デフォルトのままインストールを進めて OKです。 インストールされたDocker
Quickstart Terminalを起動して下記のようなターミナ ルが表示されればインストールはOKです。 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Hyperledgerのインストール
23.
23 2.HyperledgerのDockerイメージのDownload Hyperledgerは2つのプロセス「memberサーバー」「peerサーバー」からな ります。 Dockerで下記のコマンドを実行しDockerイメージをDownloadしてください。 docker pull hyperledger/fabric-membersrvc:latest docker
pull hyperledger/fabric-peer:latest 下記のコマンドでpullしたイメージが表示されれば成功です。 docker images COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6
24.
24 1.docker-composeを使った起動設定を行います。複数のコンテナを管理するた めに使います。 docker-compose.ymlというファイルを下記のようなパスに作成します。"mogi" の部分は自分の環境(Windowsのログインアカウント)に合わせてください。デ フォルトではWindowsのDockerはc:Usersの自分のアカウント以下のフォルダー にしかアクセスできません。つまり「d:DockerTest」などのフォルダーは指定 できません。mogi以下のパスは自由な場所で大丈夫です。 作成場所例: c:UsersmogiDocumentsDockerHyperLedgerdocker-compose.yml docker-compose.ymlの内容は次ページになります。Windowsのテキストエディ タなどで編集してください。 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 Hyperledger起動
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にマウントすることを指定し ています。
26.
26 2.起動 Dockerで、下記のように1で作成したdocker-compose.ymlまで移動します。 cd /c/Users/mogi/Documents/Docker/HyperLedger/ 下記のコマンドで起動します。 docker-compose up 起動しているかどうかは新しいDockerTerminalを起動して下記のコマンドで確認 できます。 docker
ps -a コンテナ名は hyperledger_membersrvc_1 hyperledger_vp0_1 終了はCtrl+Cで。正式な方法はあるかも? COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6
27.
27 デフォルトのアカウント情報が既に登録されています。 新しいDockerTerminalを開き下記のコマンドでメンバーサーバーにログインしま す。 docker exec -it
hyperledger_membersrvc_1 /bin/bash アカウント情報を確認しましょう。users:がアカウント情報です。 vi $GOPATH/src/github.com/hyperledger/fabric/membersrvc/membersrvc.yaml アカウントjimをよくサンプルで使います。 jim: 1 6avZQLwcUe9b bank_a 1=role(1:client, 2: peer, 4: validator, 8: auditor:要調査:ToDo) 6avZQLwcUe9b=パスワード COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 デフォルトのアカウント情報の確認
28.
28 プログラムをGo言語などで記述し、peerサーバーにチェーンコードとして登録 することにより、外部からプログラムを実行することができます。 1. /shareにマウントしたフォルダーにチュートリアルプログラムをダウン ロードします。 exampleにあるコードに日本語でコメントを追記しています。peerサーバーで wgetを使いダウンロードしてもOKです。 https://drive.google.com/open?id=0Bw5FRKM4Lv-SRXBRMTJZVXJxZ1E 保存先例: c:UsersmogiDocumentsDockerHyperLedgerchaincode_example02.go 2.peerサーバーにログインします。 docker exec
-it hyperledger_vp0_1 /bin/bash COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 チェーンコードの登録
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
30.
30 Curlを使い、チェーンコードを実行する。これがアプリケーションになります。 今回のサンプルchaincode_example02.goにも記述されているように下記の4つ の関数を用意する必要があります。これらをCurlで実行します。 Init関数 初期化処理を記述する デプロイ操作時に実行される(ブロックチェーンに登録される?要調査:ToDo) 1回のみ実行。2回目は無視される(OKのstatusは返ってくる)。 チェーンコードプロセスを再起動すれば再度初期化を実行できる。 再実行しても登録済みのKey,Valueの値はそのまま。 Invoke関数 一般的な取引に当たるようなものを記述する Query関数 データの参照を行うような処理を記述する main関数 chaincodeプロセスの起動。固定のプログラム。 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 チェーンコードの実行
31.
31 新しくDockerTerminalを開きpeerサーバーにログイン。 docker exec -it
hyperledger_vp0_1 /bin/bash ※WindowsなどホストPCなどの外部からCurlで実行することも可能。localhost は192.168.99.100のように「docker-machine ls」で表示されるIPアドレスになる。 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
34.
34 Curlの実行結果と、コードを見ながら解説します。 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 chaincode_example02.goの解説
35.
35 chaincode_example02.goをmyccとmycc1として別の名前でチェーンコードに登 録すると、別のスコープとしてKey,Valueが登録されるのが確認できます。 チェーンコード間の連携は04、05のサンプルにあります。 https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 Key、Valueのスコープ
36.
36 key,valueの高級な検索機能をHyperledgerに期待していたが、サンプルを見ても Keyから1つ取り出すか、 RangeQueryStateを使って全件取り出すかくらいのサ ンプルしかなく検索性はわるいかも? shimライブラリのAPIを見るとCreateTableみたいのがあるがサンプルがなく使 い方が不明。 知っている人はフィードバックください。ToDo ライブラリのAPI https://goo.gl/y5J8uB COPYRIGHT(C) TECHNOMOBILE
ALL RIGHTS RESERVED. 6 ブロックチェーンの最大のデメリット 検索性はよいのか?
37.
37 COPYRIGHT(C) TECHNOMOBILE ALL
RIGHTS RESERVED. 6 さらにHyperledgerを学ぶには ?http://amzn.to/2fO9uuo
Editor's Notes
#13:
弊社がご提供しているソリューション内容です。 企画から運営?保守にいたるまでを一気通貫で、 軸となるコンシューマ向けの大規模Webシステムをはじめ、スマホアプリ、ゲーム開発などをご提供しております。 特に大きな実績として、大規模ECシステム、求人検索サイトの開発となっております。 他にも音楽DLサイトや、業務を効率する管理系のシステムの実績も多数あります。 (30秒)
Download