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でお話させて頂いたものになります。

Taiji HAGINO

April 26, 2019
Tweet

More Decks by Taiji HAGINO

Other Decks in Technology

Transcript

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

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

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

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

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

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

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

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

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

    ネットワークを起動します。 2. ローカルのFabric設定に必要なDockerイメージがダウンロードされ、ネットワーク が起動します。 3. ネットワークが設定されると、出⼒ウィンドウが表⽰されます。
  14. スマートコントラクトのインスタンス化 (準備) 1. LOCAL FABRIC OPS コンソールの Installed ドロップダウンの下にあ る

    +Install をクリックします。 2. こちらのピアを選択します: peer0.org1.example.com
  15. 1. LOCAL FABRIC OPS コンソールの Instantiated ドロップダウンの下 の +Instantiate をクリックします。

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

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