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

HyperledgerFabricでブロックチェーンを始めてみる

 HyperledgerFabricでブロックチェーンを始めてみる

本資料は2019年7月13日開催のOSC名古屋での登壇資料です。
IBM Cloudへのログイン/アカウント作成はこちらから:
https://ibm.biz/Bdz2Ju

Taiji HAGINO

July 13, 2019
Tweet

More Decks by Taiji HAGINO

Other Decks in Technology

Transcript

  1. DEVELOPER ADVOCATE in TOKYO Tokyo Team is a part of

    Worldwide Developer Advocate Teams! Developer Advocate City Leader AKIRA ONISHI WW Developer Advocate KYOKO NISHITO WW Developer Advocate TAIJI HAGINO WW Developer Advocate AYA TOKURA Program Manager TOSHIO YAMASHITA WW Developer Advocate NORIKO KATO Client Developer Advocate YASUSHI OSONOI Digital Developer Advocate JUNKI SAGAWA @taiponrock
  2. @taiponrock 20 リスクの低減 ビジネスエコシステムの最適化 新たな価値の創造 改ざん、不正に対し、 透明性⾼い取引の記録と共有を実現 ビジネスプロセスの改善 現⾏ビジネスモデルにとらわれない ⾮効率性を排除した新しいビジネスモデルを創造

    ブロックチェーン活⽤の進展 ブロックチェーンは、ビットコインに代表される仮想通貨から、⾦融業界の決済処理、そして⾮⾦融業界も含 む新たなビジネスモデル創造へと活⽤範囲を広げています。 仮想通貨 契約管理 資産管理 サプライチェーン マネジメント 貿易⾦融 本⼈確認 IoT 保険 国際送⾦ 証券取引 ⾦融業界の 決済処理中⼼の拡張 ⾮⾦融業界への拡張 複数の業界を跨った処理連携
  3. @taiponrock 22 改めてブロックチェーンの特性と適⽤分野を考える スマート・コントラクト ü 必ず実⾏されるコントラクト 分散台帳技術 ü 参加者で同じ内容の台帳を保持 ü

    改ざんできない ü 取引履歴・来歴を持つ ブロックチェーンの特性が活かせるエリアの例 ü 複数参加者で情報を共有することにより新しいビジネス的価値を創出できるエリア ü 取引の改竄防⽌により、資産の正当性を担保することが必要なエリア ü 資産の来歴を共有することにより、ビジネス・プロセスを変⾰できるエリア ü 取引プロセスの⾃動化により、迅速性と正確性の向上が期待できるエリア
  4. @taiponrock 23 ブロックチェーンである理由は 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
  5. @taiponrock 27 TradeLens IBMとMaerskが共同開発する国際貿易のデジタル化を⽬指した業界プラットフォーム ペーパレス・トレード パッキング リスト 輸出書類 船荷証券(B/L) 出荷指⽰書

    送り状 (インボイス) 出荷情報パイプライン 原産地証明書 危険物申告書 ISF 事前申告書 通関許可書 原産地証明書 貨物特有の証明書 輸⼊書類 ⽀払済 インボイス コン テナ 追跡 開始 空 コ ン テ ナ の ピ ク ア プ 空 コ ン テ ナ の 到 着 予 定 時 刻 登 録 空 コ ン テ ナ の 到 着 時 刻 実 績 登 録 コ ン テ ナ へ の 搭 載 コ ン テ ナ 総 重 量 検 査 ︵ VGM ︶ コ ン テ ナ 封 鎖 コ ン テ ナ の ピ ク ア プ ゲ ト イ ン 予 定 時 刻 登 録 輸 出 ⽤ ゲ ト 通 過 時 刻 実 績 登 録 コ ン テ ナ の タ ミ ナ ル 出 発 予 定 時 刻 登 録 コ ン テ ナ の 船 積 み 輸 出 申 告 ・ 許 可 通 知 書 確 認 MRN 番 号 発 ⾏ コ ン テ ナ の タ ミ ナ ル 出 発 時 刻 実 績 登 録 コ ン テ ナ の タ ミ ナ ル 到 着 予 定 時 刻 登 録 温 度 の モ ニ タ リ ン グ コ ン テ ナ の 荷 揚 げ 予 定 時 刻 登 録 輸 ⼊ 申 告 ・ 許 可 通 知 書 確 認 検 査 対 象 コ ン テ ナ の 選 別 コ ン テ ナ の タ ミ ナ ル 到 着 時 刻 実 績 登 録 コ ン テ ナ の 荷 揚 げ ゲ ト ア ウ ト 予 定 時 刻 登 録 輸 ⼊ ⽤ ゲ ト の 通 過 時 刻 実 績 登 録 コ ン テ ナ の ⽬ 的 地 到 着 予 定 時 刻 登 録 コ ン テ ナ の ⽬ 的 地 到 着 時 刻 実 績 登 録 コ ン テ ナ 開 封 コ ン テ ナ か ら の 積 み 降 ろ し 空 コ ン テ ナ の ピ ク ア プ 準 備 完 了 空 コ ン テ ナ の ピ ク ア プ 空 コ ン テ ナ の 空 コ ン テ ナ 保 管 所 到 着 輸出者 海貨業者 陸上輸送 税関 港湾 船社 海貨業者 陸上輸送 輸⼊者 港湾 税関
  6. @taiponrock 28 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 サプライチェーン アーリーアダプター
  7. @taiponrock 今⽇やること IBM Blockchain Platform Extension for VS Codeを使 ⽤してNode.jsスマートコントラクトをパッケージ化す

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

    ローカルのHyperledger Fabric Networkを起動します。 3. ピアノードにチェーンコードをインストールします。 4. ピアノードでチェーンコードをインスタンス化します。 5. Global Financeアプリケーションを使って、 fabric-network npmライ ブラリを使ったAPI呼び出しを通してHyperledger Fabricネットワーク とやり取りします。管理者はアプリケーションを使⽤して新しい参加者 を作成することもできます。
  9. @taiponrock 必要なコンポーネント • 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
  10. @taiponrock コンポーネント補⾜ IBM Blockchain Platform Extension for VS Code は、Hyperledger

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

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

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

    を選択して ネットワークを起動します。 2. ローカルのFabric設定に必要なDockerイメージがダウンロードされ、ネットワーク が起動します。 3. ネットワークが設定されると、出⼒ウィンドウが表⽰されます。
  15. @taiponrock 1. LOCAL FABRIC OPS コンソールの Instantiated ドロップダウンの下 の +Instantiate

    をクリックします。 2. こちらのチャネルを選択します: my channel. スマートコントラクトのインスタンス化 (実⾏)
  16. @taiponrock 5. オプションの引数については Enter を押す ことができます。 6. これがうまくインスタンス化されると、ア ウトプットビューに成功した通知とあなた の

    LOCAL FABRIC OPS コンソール の Instantiated の下にリストされたスマー トコントラクトが⾒えるようになります。 スマートコントラクトのインスタンス化 (実⾏)
  17. @taiponrock 1. CAノードにIdentityを追加します。 LOCAL FABRIC OPS コンソールの Nodes ド ロップダウンの下の

    ca.org1.example.com を右クリックして Create Identity を選択して ください。表⽰された⼊⼒ボックスに [email protected] を⼊⼒しEnter を押します。 CAノードにIdentityを追加 GitHubからCloneしたソースコードの中にIdentityの情報や認証に使⽤する鍵ファイル も含まれていますが、ご⾃⾝の環境に合わせ書き換える(置き換える)必要があります。
  18. @taiponrock 1. WalletをExportします。 2. アプリケーションが認証処理で参照するディ レクトリに、エクスポートしたファイルをコ ピーします。 Walletをエクスポートする 追加したIdentityの情報をアプリケーションが認証に使えるようにするため、VS Code

    のExtensionからWalletをエクスポートします。エクスポート先は任意の場所で結構で す。 対象のディレクトリは以下になります。 GitHubからCloneしたファイルが既に存在して いますので、それらは削除して下さい。 /global-financing-blockchain/web-app/controller/restapi/features/fabric/_idwallet/[email protected]