Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VS CodeとHyperledger Fabricでブロックチェーンを始めてみる

VS CodeとHyperledger Fabricでブロックチェーンを始めてみる

こちらの資料はIBM Cloud Community Summit 2019 Springでお話させて頂いたものになります。

57c9c4b846c73c911cbf795d211904f3?s=128

Taiji HAGINO

April 26, 2019
Tweet

Transcript

  1. Visual Studio Codeと Hyperledger Fabric でブロックチェーンを始めてみる Taiji HAGINO IBM Developer

    Advocate @taiponrock
  2. SPEAKER

  3. Taiji HAGINO IBM Developer Advocate Specialist in Node-RED/Node.js, Swift @taiponrock

    f t in
  4. None
  5. What is Blockchain

  6. 台帳

  7. None
  8. 取引開始 現在

  9. トランザクション トランザクション トランザクション トランザクション 取引開始 現在

  10. トランザクション トランザクション トランザクション トランザクション 取引開始 現在 ブロック チェーン

  11. 集中管理サーバー サーバー型

  12. P2P(Peer to Peer)型

  13. だから

  14. 分散台帳

  15. 16 リスクの低減 ビジネスエコシステムの最適化 新たな価値の創造 改ざん、不正に対し、 透明性⾼い取引の記録と共有を実現 ビジネスプロセスの改善 現⾏ビジネスモデルにとらわれない ⾮効率性を排除した新しいビジネスモデルを創造 ブロックチェーン活⽤の進展

    ブロックチェーンは、ビットコインに代表される仮想通貨から、⾦融業界の決済処理、そして⾮⾦融業界も含 む新たなビジネスモデル創造へと活⽤範囲を広げています。 仮想通貨 契約管理 資産管理 サプライチェーン マネジメント 貿易⾦融 本⼈確認 IoT 保険 国際送⾦ 証券取引 ⾦融業界の 決済処理中⼼の拡張 ⾮⾦融業界への拡張 複数の業界を跨った処理連携
  16. 17 様々なブロックチェーン技術とその分類 コンソーシアム /標準化団体 パブリック コンソーシアム /プライベート 暗号通貨 仮想通貨 仮想通貨

    (ビジネス・ユースケース) 汎⽤的な利⽤ ビジネス向けブロックチェーン
  17. 18 改めてブロックチェーンの特性と適⽤分野を考える スマート・コントラクト ü 必ず実⾏されるコントラクト 分散台帳技術 ü 参加者で同じ内容の台帳を保持 ü 改ざんできない

    ü 取引履歴・来歴を持つ ブロックチェーンの特性が活かせるエリアの例 ü 複数参加者で情報を共有することにより新しいビジネス的価値を創出できるエリア ü 取引の改竄防⽌により、資産の正当性を担保することが必要なエリア ü 資産の来歴を共有することにより、ビジネス・プロセスを変⾰できるエリア ü 取引プロセスの⾃動化により、迅速性と正確性の向上が期待できるエリア
  18. 19 ブロックチェーンである理由は A社 パートナー企業 グループ企業 A社 経済圏 ⼀社の信⽤⼒で システムやデータの信頼性を保証 ブロックチェーンの信⽤⼒で

    システムやデータの信頼性を保証 顧客 取引先 APIア ク セ ス 異業種パートナー企業 海外パートナー企業 新規パートナー企業 同業他社 当局 台帳 台帳 台帳 台帳 台帳 台帳 ブロックチェーン 業種や国境をまたがる協業を促進 8 i / /10/1 2 / A I M A  9a BC 9ao h 9a BC 9ao h n API    I c I I p k t t t t t t  l r
  19. 20 商⽤化が進む業界ブロックチェーンプラットフォーム 貿易物流 地⽅創⽣ ⾷の信頼 グローバル実績 貿易物流 貿易⾦融 デジタルID ⾷の信頼

    ⽇本での注⼒分野 国際送⾦ デジタル通貨 資格証明 医療・製薬 卒FIT対応
  20. 21 今年に⼊り国内で様々な取り組みがされています。

  21. 22 今年に⼊り国内で様々な取り組みがされています。

  22. 23 TradeLens IBMとMaerskが共同開発する国際貿易のデジタル化を⽬指した業界プラットフォーム ペーパレス・トレード パッキング リスト 輸出書類 船荷証券(B/L) 出荷指⽰書 送り状

    (インボイス) 出荷情報パイプライン 原産地証明書 危険物申告書 ISF 事前申告書 通関許可書 原産地証明書 貨物特有の証明書 輸⼊書類 ⽀払済 インボイス コン テナ 追跡 開始 空 コ ン テ ナ の ピ ク ア プ 空 コ ン テ ナ の 到 着 予 定 時 刻 登 録 空 コ ン テ ナ の 到 着 時 刻 実 績 登 録 コ ン テ ナ へ の 搭 載 コ ン テ ナ 総 重 量 検 査 ︵ VGM ︶ コ ン テ ナ 封 鎖 コ ン テ ナ の ピ ク ア プ ゲ ト イ ン 予 定 時 刻 登 録 輸 出 ⽤ ゲ ト 通 過 時 刻 実 績 登 録 コ ン テ ナ の タ ミ ナ ル 出 発 予 定 時 刻 登 録 コ ン テ ナ の 船 積 み 輸 出 申 告 ・ 許 可 通 知 書 確 認 MRN 番 号 発 ⾏ コ ン テ ナ の タ ミ ナ ル 出 発 時 刻 実 績 登 録 コ ン テ ナ の タ ミ ナ ル 到 着 予 定 時 刻 登 録 温 度 の モ ニ タ リ ン グ コ ン テ ナ の 荷 揚 げ 予 定 時 刻 登 録 輸 ⼊ 申 告 ・ 許 可 通 知 書 確 認 検 査 対 象 コ ン テ ナ の 選 別 コ ン テ ナ の タ ミ ナ ル 到 着 時 刻 実 績 登 録 コ ン テ ナ の 荷 揚 げ ゲ ト ア ウ ト 予 定 時 刻 登 録 輸 ⼊ ⽤ ゲ ト の 通 過 時 刻 実 績 登 録 コ ン テ ナ の ⽬ 的 地 到 着 予 定 時 刻 登 録 コ ン テ ナ の ⽬ 的 地 到 着 時 刻 実 績 登 録 コ ン テ ナ 開 封 コ ン テ ナ か ら の 積 み 降 ろ し 空 コ ン テ ナ の ピ ク ア プ 準 備 完 了 空 コ ン テ ナ の ピ ク ア プ 空 コ ン テ ナ の 空 コ ン テ ナ 保 管 所 到 着 輸出者 海貨業者 陸上輸送 税関 港湾 船社 海貨業者 陸上輸送 輸⼊者 港湾 税関
  23. 24 IBM Food Trust WalmartとIBMが協業した⾷の安⼼・安全を提供するプラットフォーム 10⼈中1⼈ が毎年⾷中毒にかかり、 42万⼈が死亡 4⼈に1⼈ の消費者のみが、

    今⽇の⾷のシステムを信頼 80% の⾷品メーカーで 紙ベースの業務が存在 1 / 3 の⽣鮮果物と野菜が、 品質劣化を理由に廃棄 追跡 証明書管理 鮮度分析 消費者アプリ モジュール ブロックチェーン 専⽤モジュールを通じてサプライチェーン全体の情報へ安全にアクセス IBM Food Trust Dole, Nestlé, Unilever, Driscoll’s, Golden State Foods, Kroger, McCormick and Company, McLane Company, Tyson Foods, Walmart サプライチェーン アーリーアダプター
  24. スマートコントラクト

  25. スマートコントラクト コントラクト(契約)をスマートに⾏うプロトコル スマートコントラクト=契約の⾃動化 契約の条件確認から履⾏まで、⾃動的に実⾏可能 取引プロセス⾃動化 決済期間の短縮や不正防⽌、⾃動化によるコスト削減への期待から、各国 で取り組みが活発。 ブロックチェーン上でスマートコントラクトを利⽤すると、P2P型取引で ある⾮中央集権型のサービスを実現可能。

  26. スマートコントラクトのフロー 契約定義 イベント 契約履⾏ 決済 ⾃動実⾏

  27. ⾃動販売機もスマートコントラクトの⼀種

  28. Hyperledgerでのスマートコントラクト Chaincode https://hyperledger-fabric.readthedocs.io/en/release- 1.4/chaincode.html

  29. Build APPLICATION

  30. アプリを作ってみる︕

  31. https://ibm.biz/Bdzce8 なにはともあれ先ずはIBM Cloudのアカウント!

  32. https://developer.ibm.com/patterns/global- financing-use-case-for-blockchain/ IBM Blockchain Platform Extension for VS Code でグローバルファイナンスブロックチェーンアプリを作る

  33. バイヤーによる発注 お店による商品提供元への連絡 配送業者による配達 ⾦融機関による⽀払い処理 USECASE ① ② ③ ④

  34. 今⽇やること IBM Blockchain Platform Extension for VS Codeを使 ⽤してNode.jsスマートコントラクトをパッケージ化す る

    この拡張機能を使⽤して、Hyperledger Fabricネット ワークのローカルインスタンスをセットアップし、その 上にコントラクトをインストールしてインスタンス化す る
  35. None
  36. VS Code⽤のIBM Blockchain Platform Extensionを使⽤して、以下のこ とを⾏います。 1. スマートコントラクトをパッケージ化します。 2. ローカルのHyperledger

    Fabric Networkを起動します。 3. ピアノードにチェーンコードをインストールします。 4. ピアノードでチェーンコードをインスタンス化します。 5. Global Financeアプリケーションを使って、 fabric-network npmライ ブラリを使ったAPI呼び出しを通してHyperledger Fabricネットワーク とやり取りします。管理者はアプリケーションを使⽤して新しい参加者 を作成することもできます。
  37. 必要なコンポーネント • VSCode version 1.26 or greater • Node v8.x

    or greater and npm v5.x or greater • Yeoman (yo) v2.x • Docker version v17.06.2-ce or greater • Docker Compose v1.14.0 or greater
  38. コンポーネント補⾜ IBM Blockchain Platform Extension for VS Code は、Hyperledger Fabric

    環境への接続を含む、スマートコントラクトの開発、テスト、および展 開を支援するように設計されています。 Hyperledger Fabric v1.4 は、高度な機密性、回復力、柔軟性、およびス ケーラビリティを提供するモジュラーアーキテクチャーに支えられた分 散型元帳ソリューションのプラットフォームです。 Visual Studio Code は、最新のWebおよびクラウドアプリケーションの 構築およびデバッグ用に再定義および最適化されたコードエディタです。
  39. ⼿順

  40. 1. Clone the repo 2. Use the VS Code extension

    to set up a smart contract on a basic Fabric network 3. Run the application シンプルな 3ステップ
  41. リポジトリのクローン git clone https://github.com/IBM/global-financing-blockchain.git

  42. VS Code extension でFabricネットワーク にスマートコントラクトを設定する 1. Visual Studio Code を開き

    contract フォルダを開きます。 2. F1 キーを押します。 3. IBM Blockchain Platform: Package a Smart Contract Project を選択します。
  43. VS Code extension でFabric ネットワークにスマートコ ントラクトを設定する 1. IBM Blockchain Platform

    拡張ボタンをクリックします。 2. パッケージ化されたコントラクトが⼀番上に表⽰され、ブ ロックチェーン接続が⼀番下に表⽰されます。
  44. ローカルでFabricを設定する 1. LOCAL FABRIC OPS のメニューをクリックし Start Fabric Runtime を選択して

    ネットワークを起動します。 2. ローカルのFabric設定に必要なDockerイメージがダウンロードされ、ネットワーク が起動します。 3. ネットワークが設定されると、出⼒ウィンドウが表⽰されます。
  45. ローカルでFabricを設定する 1. LOCAL FABRIC OPS の下に、スマートコ ントラクトをインストールしてインスタン ス化するためのオプション、あなた の Channels

    の情報、 Nodes の下のピア、 そして Organizations の下の organization msp が表⽰されます。
  46. スマートコントラクトのインスタンス化 (準備) 1. LOCAL FABRIC OPS コンソールの Installed ドロップダウンの下にあ る

    +Install をクリックします。 2. こちらのピアを選択します: peer0.org1.example.com
  47. 3. globalfinancing@0.0.1 コントラクトを選択します スマートコントラクトのインスタンス化 (準備)

  48. 4. スマートコントラクトのインストールが成功したことの通知と LOCAL FABRIC OPS コンソールの Installed の下にリストされているスマートコントラクトが表⽰ されます。 スマートコントラクトのインスタンス化

    (準備)
  49. 1. LOCAL FABRIC OPS コンソールの Instantiated ドロップダウンの下 の +Instantiate をクリックします。

    2. こちらのチャネルを選択します: my channel. スマートコントラクトのインスタンス化 (実⾏)
  50. 3. globalfinancing@0.0.1 コントラクトを選択します。 スマートコントラクトのインスタンス化 (実⾏) 4. 関数に instantiate と⼊⼒します:

  51. 5. オプションの引数については Enter を押す ことができます。 6. これがうまくインスタンス化されると、ア ウトプットビューに成功した通知とあなた の LOCAL

    FABRIC OPS コンソール の Instantiated の下にリストされたスマー トコントラクトが⾒えるようになります。 スマートコントラクトのインスタンス化 (実⾏)
  52. アプリの実⾏

  53. 1. 新しいターミナルで web-app ディレクトリへ移動します 2. npm installを⾏い、実⾏します $ cd global-financing-blockchain/web-app/

    $ npm install $ npm start
  54. None
  55. CONCLUTIONS

  56. 1. Hyperledger Fabricを使えばかんたん 2. フロントは普通のWebアプリ 3. 読んで勉強するよりアプリを作ること 4. Visual Studio

    Codeならすぐに使える
  57. 58 IBM Champions https://developer.ibm.com/champions/

  58. 59

  59. None
  60. github.com/taijihagino Taiji HAGINO Developer Advocate IBM facebook.com/taiponrock f t in

    linkedin.com/taiponrock @taiponrock THANKS!
  61. DOC ID / Month XX, 2018 / © 2018 IBM

    Corporation