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

IBM Developer Dojo IBP Technical Introduction

IBM Developer Dojo IBP Technical Introduction

本資料は2020年3月4日に開催したIBM Developer Dojo Onlineのマテリアルです。

Taiji HAGINO

March 04, 2020
Tweet

More Decks by Taiji HAGINO

Other Decks in Technology

Transcript

  1. IBM Blockchain Platform: 技術紹介 IBM Blockchain Platformをはじめてみよう V1.4, 24 January

    2020 IBM Blockchain Platform Technical Series Architectural Good Practices Modeling Blockchain Applications What’s New in Technology Using IBM Blockchain Platform Technical Introduction Taiji Hagino IBM Developer Advocacy Tokyo Team Sr. Developer Advocate IBM Champion Regional Director @taiponrock
  2. Hyperledger Fabric コンセプトとコンポーネント Understand the technology that underpins IBM Blockchain

    Platform IBM Blockchain Platform コンポーネント Technical overview of IBM Blockchain Platform 概要 The very basics of Hyperledger Fabric
  3. 4 ブロックチェーンのコンセプト • ブロックチェーンソリューションを構成するビジネスコンセプト: – Assets データ構造としてモデル化 – Contracts アルゴリズムとしてモデル化

    – Transactions アルゴリズムの呼び出しとしてモデル化 – Business Networks ピアツーピアネットワークとしてモデル化 – Participants これらのネットワーク上のノードとしてモデル化 • IBM Blockchain Platform Hyperledger Fabric ベース • 次に、Hyperledger Fabricがこれらのビジネス概念をブロックチェーン開 発者に公開する⽅法を⾒ていきます • また、開発者がソリューションにこれらの概念を実装するのを⽀援する IBM Blockchain Platformツールも検討します。
  4. © 2020 IBM Corporation 5 簡単なコンセンサスの例(1/4)– a puzzle︕ • Situation:

    100⼈のプレゼンターが部屋にいます。そのうち10⼈は数学者です。 • Problem: 質問に答えてください: 2401の平⽅根はいくつですか︖ • Question: 全員が答えに同意できますか︖ You are here! Or here! But not here ;) a puzzle a process a problem a policy P M M M M M M M M M M A A A A P M audience mathematician presenter attendant
  5. © 2020 IBM Corporation 6 簡単なコンセンサスの例(2/4)– a process Solution approach

    1. 発表者はすべての数学者に√2401の計算を依頼します 2. すべての数学者は答えを紙に書き、サインします((デジタル)署名付き) 3. 発表者は、すべての数学者の署名⼊りの回答を収集します 4. ルームアテンダントは、署名された回答のコピーを聴衆のすべてのメンバーに配布します 5. すべての聴衆は、すべての数学者が答えに同意するかどうかをチェックします︕ 6. 全員がOKならば、これが コンセンサス です︕ P M M M M M M M M M M A A A a puzzle a process a problem a policy
  6. © 2020 IBM Corporation 7 簡単なコンセンサスの例(3/4)– a problem Issues 1.

    発表者は何⼈の数学者に尋ねるべきですか︖ 2. 答えが正しいために何⼈の数学者が同意する必要がありますか︖ 3. 数学が答えに同意しない場合、または発表者が悪い答えを選択した場合はどうなりますか︖ à 全員が、良い答えを構成することに同意する必要があります P M M M M M M M M M M A A A a puzzle a process a problem a policy
  7. © 2020 IBM Corporation 8 簡単なコンセンサスの例(4/4) – a policy The

    importance of policy 1. 聴衆は良い答えの⽅針に同意します 2. ポリシーの例 : – すべての数学者が同意しなければならない – 数学者の⼤半は同意しなければならない à このような policy を適⽤することで、全員が良い答えが何になるかについて同意することができます P M M M M M M M M M M A A A a puzzle a process a problem a policy
  8. © 2020 IBM Corporation 10 Hyperledger Fabric マルチパーティートランザクション • トランザクションはシステムへの変更を記述します

    Examples: – 銀⾏残⾼の変化 – 学業資格の取得 – 荷物の配達 • 従来、トランザクションは単⼀の組織によって署名されます – 銀⾏の⽀払い取引への署名 – ⼤学の卒業⼿続きへの署名 – 物流会社の⼩包受領時の署名 • マルチパーティトランザクションはHyperledger Fabricの中⼼です – 例えば 買い⼿と売り⼿の両⽅が⾞の転送⼿続きに署名します – 例えば 物流会社と配送会社は両⽅とも⼩包取引に署名します • マルチパーティトランザクションを理解すると、Fabricを理解できます︕ car transfer transaction: identifier: 1234567890 proposal: input: {CAR1, seller, buyer} signature: input*seller response: output: {CAR1.oldOwner=seller, CAR1.newOwner=buyer} signatures: output*seller output*buyer A transaction to transfer a car is signed by both the buyer and the seller
  9. Hyperledger Fabric コンセプトとコンポーネント Understand the technology that underpins IBM Blockchain

    Platform IBM Blockchain Platform コンポーネント Technical overview of IBM Blockchain Platform 概要 The very basics of Hyperledger Fabric
  10. 12 Hyperledger Fabricのコンポーネントと概念 • Peers • Ledgers • Channels •

    Applications • Policies • Smart Contracts • Certificate Authorities • Ordering Service P1 L P2 L ORG 1 A1 CA1 P S O5 O4 O3 O2 O1 C
  11. © 2020 IBM Corporation Hyperledger Fabricのネットワーク • Hyperledger Fabricネットワークは、ノードのセットで構成されます •

    最も⼀般的なタイプのノードはピア (peer)です – ピアはさまざまな組織によって所有されています – 組織は任意の数のノードを所有できます(2〜3が⼀般的です) • ピアはチャネル (channels)を使⽤して接続されます – チャネルはネットワークの範囲を定義します – 各チャネルには、そのメンバーであるすべてのピアに複製される単⼀のledgerがあり ます P1 P2 ORG 1 P3 P4 ORG 2 P5 P6 ORG 3 C
  12. © 2020 IBM Corporation ネットワークはポリシーを使⽤して管理されます • コンソーシアムの組織は、⼀連のポリシーを使⽤してネットワークを形成する ことに同意します • ネットワークのポリシーは、法律のように各組織の権利をエンコードします

    例: – すべての組織はネットワーク上で同じ権限を持っています – すべての組織は、ネットワークの変更に同意する必要があります – ⼤多数の組織は、ネットワークの変更に同意する必要があります – 特定の組織を含む⼤多数の組織は、変更に同意する必要があります • 合意により可能な法律間の移⾏ • Hyperledger Fabricは全体を通してアイデンティティとポリシーを使⽤します – 組織間の現実世界の関係のように ORG 1 ORG 2 ORG 3 ORG 4 ORG 5 ORG 6 ORG 7 ✓ ✓ ✓ ✓ ✓ ✓ ✓
  13. © 2020 IBM Corporation ledgerを理解する • ledgerは2つのデータ構造で構成されます – A blockchain︓ネットワーク内のピア間で共有され

    るトランザクションの不変のログ – A world state: ブロックチェーンから派⽣した現在 の状態を記録したデータベース • スマートコントラクトはworld stateから読み書きします (RDBのストアドプロシージャのようなものです) • アプリケーションはトランザクションを送信します。各トラン ザクションは、⼀連のパラメーターを使⽤してスマートコント ラクトを呼び出すようネットワークに要求します。 トランザク ションの順序と出⼒は、コンセンサスを通じてネットワークに よって合意されます。 • World stateはprivate data collectionsの収集によって補完 される場合があります A1 Smart Contract addCar(…) { putState(…) } queryCar(…) { return getState(…) } Application contract.submitTransaction( ‘addCar’, ‘CAR2’, ‘Arium’, …); ORG 1 READ {} WRITE {‘CAR2’, …}; SIGNED BY ORG1 Blockchain Transactions CAR1 = {…} CAR2 = {‘Arium’, …} CAR3 = {…} World state Current values P1 Ledger
  14. © 2020 IBM Corporation プライベートおよびパブリックの状態を⽰すledgerの例 Blockchain PUBLIC to all orgs

    all cars CAR1: {TESLA, MODEL S , 2019, REG1} CAR2: {FORD, F150, 2016, REG2} CAR3: {PEUGEOT, 205GT, 1987, REG3} CAR4: {HONDA, CIVIC, 2001, REG4} PRIVATE to DMV, Police car owners CAR1: {JERRY CUOMO} CAR2: {ERIKA PEREZ} CAR3: {ANDY CARELLI} CAR4: {GARI SINGH} PRIVATE to Police CAR1: {REG1, STOLEN} CAR4: {REG4, SPEEDING, NYC} PUBLIC to all orgs view: year<2000 CAR3: {REG3, 1987} T1 Buy CAR1 T2 Register CAR3 T3 Scrap CAR4 T4 Sell CAR1 T5 Sell CAR2 T6 Log stolen CAR1
  15. © 2020 IBM Corporation クライアントアプリケーションの基本構造 • Hyperledger Fabricネットワークと対話するアプリケーションの構 築は⾮常に簡単です :

    1. identityを使いwalletからgatewayへ接続 2. 利⽤可能なnetworkとsmart contractを選択 3. トランザクションをサブミットしてレスポンスを確認 4. gatewayから切断 • ネットワークの処理の複雑さ(コンセンサスなど)は、アプリケー ションプログラマーが意識しなくて良いように隠されています – すべての対話は、Software Development Kit(SDK)を介 して⾏われます P1 A1 ORG 1 S P2 S
  16. © 2020 IBM Corporation アプリケーションがledgerをクエリする⽅法 • ledgerのクエリは、アプリケーションが実⾏できる最も簡単な操作です︕ – 各ピアのledgerを照会して、オブジェクトの値を取得できます。すべてのインスタンスは同じです︕ –

    通常、アプリケーションは⾃分の組織のピアに照会します P1 P2 ORG 1 A2 P3 P4 ORG 2 A3 P5 P6 ORG 3 car1 = contract.evaluateTransaction( ‘queryCar’, ‘CAR1’); A1 {”color”:”blue”, ... } S S S
  17. © 2020 IBM Corporation How applications submit transactions to the

    network • Applications invoke smart contracts installed on endorsing peers to create multi-party transactions • Ordering service groups endorsed transactions into blocks which are distributed to every peer • Every peer validates every transaction using the smart contract's endorsement policy P1 P2 ORG 1 P3 P4 ORG 2 P5 P6 ORG 3 contract.submitTransaction( ‘addCar’, ‘CAR2’, ‘Arium’, …); A1 Ordering service ORG(s) O1 O2 O3 Other apps S P S * * * * * * S S * READ {} WRITE {‘CAR2’, …}; SIGNED BY ORG1 READ {} WRITE {‘CAR2’, …}; SIGNED BY ORG1, ORG2 READ {} WRITE {‘CAR2’, …}; SIGNED BY ORG2 ORG1+ORG2 MUST SIGN © 2020 IBM Corporation How applications submit transactions to the network • Applications use smart contracts installed on endorsing peers to create multi-party txs • Ordering Service groups transactions into blocks which are distributed to every node • Every peer validates every transaction using the smart contract's endorsement policy P1 P2 ORG 1 P3 P4 ORG 2 P5 P6 ORG 3 contract.submitTransaction( ‘addCar’, ‘CAR2’, ‘Arium’, …); A1 Ordering Service ORG(s) O1 O2 O3 Other apps S P S S S 1 READ {} WRITE {‘CAR2’, …}; SIGNED BY ORG1, ORG2 ORG1+ORG2 MUST SIGN 3 4 5 5 5 5 5 5 6 6 6 6 6 6 7 1. Propose 2. Execute 3. Submit 4. Create block 5. Validate 6. Update 7. Notify 2 2 アプリケーションがネットワークにトランザクションをSubmitす る⽅法 • アプリケーションは、endorsingピアにインストールされたスマートコントラクトを呼び出して、マルチ パーティトランザクションを作成します。 • Ordering Serviceは、承認されたトランザクションをブロックにグループ化し、すべてのピアに配布しま す • すべてのピアがスマートコントラクトの承認ポリシーを使⽤してすべてのトランザクションを検証します © 2020 IBM Corporation How applications submit transactions to the network • Applications use smart contracts installed on endorsing peers to create multi-party txs • Ordering Service groups transactions into blocks which are distributed to every node • Every peer validates every transaction using the smart contract's endorsement policy P1 P2 ORG 1 P3 P4 ORG 2 P5 P6 ORG 3 contract.submitTransaction( ‘addCar’, ‘CAR2’, ‘Arium’, …); A1 Ordering Service ORG(s) O1 O2 O3 Other apps S P S S S 1 READ {} WRITE {‘CAR2’, …}; SIGNED BY ORG1, ORG2 ORG1+ORG2 MUST SIGN 3 4 5 5 5 5 5 5 6 6 6 6 6 6 7 1. Propose 2. Execute 3. Submit 4. Create block 5. Validate 6. Update 7. Notify 2 2
  18. © 2020 IBM Corporation アプリケーションゲートウェイについて • 常に変化するネットワークトポロジ – Peers, Orderers,

    CAs, smart contracts, ledgers • ゲートウェイは、ビジネスロジックをトポロジから分離します – クライアントアプリケーションがHOWではなくWHATに 集中できるようにします – クライアントSDKの概念的な部分 • ゲートウェイは、ネットワークとのすべての対話を処理します 1. クライアントSDKは、接続プロファイルを使⽤してピ アの場所を指定します 2. ピアは、利⽤可能なネットワークサービス(ピア、ス マートコントラクトなど)をゲートウェイに返します 3. ゲートウェイオブジェクトを介して、クライアント SDKはチャネルのサービスと対話します ORG 1 ORG 2 A1 const connectionProfile = yaml.safeLoad('../gateway/driveNet.yaml'); const connectionOptions = {..., commitTimeout: 100,... }; const gateway = new Gateway(); await gateway.connect(connectionProfile, connectionOptions); Gateway P1 P2 P3 Connection Profile
  19. 21 複数のネットワークに接続する • アプリケーションは⼀度に複数のネットワークで動作可 能 – 各ゲートウェイインスタンスは複数のチャネルに 接続できます – チャンネルでアクセス可能なすべてのインスタン

    ス化されたスマートコントラクト – 複数のトランザクションをSubmitして評価する – 同じアプリケーション内から複数のゲートウェイ に接続することもできます • 各ネットワークインスタンスは個別のIdentityを使⽤で きます const network1 = await gateway.getNetwork('PaperNet'); const network2 = await gateway.getNetwork('BondNet'); const euroContract = await network1.getContract('EuroCommercialPaperContract'); const bondContract = await network2.getContract('BondContract'); const issueResponse = await euroContract.submitTransaction('issue', 'MagnetoCorp'...); const sellResponse = await bondContract.submitTransaction('sell', 'BOND007'...) ORG 1 ORG 2 A1 Gateway P1 P3 P2 PaperNet BondNet
  20. © 2020 IBM Corporation identity の重要性 P1 P2 ORG 1

    P3 P4 ORG 2 P5 P6 ORG 3 • すべてのコンポーネントには、その組織の認証局(Certificate Authority)によって発⾏されたX.509 identityが関連付けられています • コンポーネントは、そのidentityを使⽤して組織の役割を決定します • この役割は、ネットワークリソースへのアクセスレベルを決定します 例)ledgerの読み取り/書き込み CA1 CA2 CA3 A1 A2 O1 O2 O3 CA4 Ordering ORG(s) A3
  21. © 2020 IBM Corporation walletsを理解する • ウォレットは、コンポーネントが利⽤できるidentityを保存します • アプリケーションは複数のウォレットとidentityを使⽤できます •

    ゲートウェイ接続オプションの⼀部として、アプリケーションはidentityを使⽤してゲートウェイに接続します • Membership Service Provider(MSP)は、チャネルのidentityと役割を⼀意に識別します P1 P2 ORG 1 CA1 A1 1 2 3 P3 P4 ORG 2 CA2 A2 4 ORG1.admin ORG1.member ORG2.member 1 2 4 4 1 MSP Wallet Wallet const userName = ‘[email protected]'; const wallet = new FileSystemWallet('../matt/wallet'); const connectionOptions = { identity: userName, wallet: wallet, …}; await gateway.connect(connectionProfile, connectionOptions);
  22. 24 接続オプションの微調整 • ゲートウェイ接続をカスタマイズできます 接続オプションを使⽤する – ウォレットとidentityはアプリで設定する必要があります – 他のすべてのオプションには、適切なデフォルトがあります •

    Strategyは最も⼀般的な⾏動を元にします。 – e.g. "wait for any/all peers in my organization" • EventStrategies.MSPID_SCOPE_ANYFORTX • EventStrategies.MSPID_SCOPE_ALLFORTX • プログラム可能な対話のためのHandler – ユーザー機能は、関連するトポロジを使⽤して、 トランザクションライフサイクルの適切な時点で 制御を取得します • e.g. startListening(), waitForEvents(), cancelListening()... – ハンドラーロジックをビジネスロジックから分離します – ⾼度な機能。 特別なシナリオにのみ必要 ORG 1 A1 Gateway Connection Options P1 P2 1 Connection Profile Additional Options Gateway.Builder builder = Gateway.createBuilder(); builder.commitHandler( DefaultCommitHandlers.MSPID_SCOPE_ANYFORTX); builder.identity(wallet, "admin").networkConfig(networkConfigPath); Gateway gateway = builder.connect());
  23. © 2020 IBM Corporation 25 まとめ︓クライアントアプリケーションの例 Path walletPath = Paths.get("wallet");

    Wallet wallet = Wallet.createFileSystemWallet(walletPath); // Access file wallet Path networkConfigPath = Paths.get("..", "..", "paper-network", "connection.json"); // Identify a network using a CCP Gateway.Builder builder = Gateway.createBuilder(); // Create gateway to the network builder.commitHandler(DefaultCommitHandlers.MSPID_SCOPE_ANYFORTX); // One peer from my organization to reply builder.identity(wallet, "admin").networkConfig(networkConfigPath); try (Gateway gateway = builder.connect()) { // connect to the gateway Network network = gateway.getNetwork("market1234"); // get the network Contract contract = network.getContract("commercial-paper"); // get contract in network String paper = contract.submitTransaction("issue", "IBM", "1000000", "2019-10-31") // issue paper by IBM contract.submitTransaction("move", paper, "ACME", "900000")) // sell paper to ACME } catch (Exception ex) { ex.printStackTrace(); }
  24. © 2020 IBM Corporation 26 スマートコントラクトのプログラミング • スマートコントラクトは、オブジェクトのライフサイクルを管理します。 例えば createCar、queryCar、updateCar、scrapCar

    ... • クラスとして実装。 メソッドには、JavaScript、TypeScript、Java、Go *の関連するトランザク ションロジックが含まれます • 関連組織のピアにインストールされます。 実⾏すると、デジタル署名されたトランザクション応答が ⽣成されます。 @Contract(name="org.papernet.commercialpaper") @Default class CommercialPaper implements ContractInterface { public Context createContext(ChaincodeStub stub) { return new CommercialPaperContext(stub); } @Transaction public CommercialPaper issue( CommercialPaperContext ctx, String issuer, String value, String date, int faceValue) { // Interact with the ledger getState(existingPaper); putState(newPaper); ... * Go under development
  25. Hyperledger Fabric コンセプトとコンポーネント Understand the technology that underpins IBM Blockchain

    Platform IBM Blockchain Platform コンポーネント Technical overview of IBM Blockchain Platform 概要 The very basics of Hyperledger Fabric
  26. 29 IBMブロックチェーンプラットフォームは、IBMのブ ロックチェーン戦略の重要な部分です Solutions Services Ecosystem IBM Blockchain Platform アイデアから

    プロダクショ ンに⾄るまで、 サービスチー ムと協⼒する 多様なエコシステムを活⽤して戦略的パートナーシップを 構築し、競争上の優位性を創出します 新しいビジネスネットワークとアプリケーションを構築し て参加することにより、業界の重要な課題を解決します 異種環境でブロックチェーンネットワークを 構築して運⽤する Hyperledgerの創設メンバーであるIBMは、オープン ソース、標準、ガバナンスに取り組んでいます
  27. 30 ⾼度なツール Create & manage smart contracts, applications & networks

    オープンテクノロジー Hyperledger Fabric, Containers, Kubernetes あらゆる場所へデプロイ可能 Comprehensive cloud & on-premises options IBM Blockchain Platformの紹介 Hyperledger Fabricネットワークの構築と運用 開発ツール 運⽤ツール on prem IBM Kubernetes Service コンテナの仮想化&オーケストレーション マルチクラウド環境 …
  28. 31 開発ツール 運⽤ツール on prem IBM Kubernetes Service コンテナの仮想化&オーケストレーション マルチクラウド環境

    … IBM Blockchain Platform デプロイオプション • デプロイ先に関係なく、IBM Blockchain Platform製品は1 つだけです。 – 選択したプロバイダーのKubernetesコンテナーイン フラストラクチャ上にあります – Kubernetesは、IBM Blockchain Platformの⼀般的 なロギングおよび管理サービスを提供します • IBM Cloudで実⾏する場合、IBM Blockchain Platformは IBM Cloud Kubernetes Serviceを使⽤します – 無料のIBM Blockchain Platformには無料のIBM Kubernetesティアを使⽤し、有料のIBM Blockchain Platformには有料のIBM Kubernetes ティアを使⽤します。 無料利⽤枠は30⽇後に期限 切れになります • オンプレミスまたはIBM以外のクラウドにデプロイされる場 合、IBM Blockchain PlatformはKubernetes v1.11にデプ ロイされます – 例えば、OpenShift、OKD、Rancher&AEKSが含ま れます
  29. © 2019 IBM Corporation 32 Hyperledger Fabricをはじめる • IBM Blockchain

    Platformにより、Hyperledger Fabricの使⽤を簡単に開始できます • VS CodeマーケットプレイスからVS Code developer tool をダウンロードします。(Linux、Windows、およびMacOS) • ローカルネットワーク、スマートコントラクト、アプリケーションを作成します。 準備ができたらマルチクラウドに移⾏してく ださい https://marketplace.visualstudio.com/items?itemName=IBMBlockchain.ibm-blockchain-platform
  30. 33 IBM Blockchain Platform 管理コンソール • マルチクラウド管理ツール – すべてのIBPコンポーネントを管理する Web

    UI • IBM Cloudでインフラストラクチャを構成 – IKSネットワーク、ストレージ、コン ピューティングを構成する • コンポーネントの接続と管理 – Peer, Orderer, CA, channel... • ポリシーおよびアイデンティティ管理 – Create, update, display channel policies • スマートコントラクトパッケージ管理 – Install, instantiate, upgrade, discover
  31. 34 IBM Cloudでは、ブロックチェーンコンポーネントは IBM Kubernetes Serviceにデプロイされます • ブロックチェーンリソースは⾃分⾃⾝ のKubernetesクラスターにデプロイさ れます

    • これにより、リソース(CPU、スト レージ、メモリ)の制御を維持できま す。 • ブロックチェーン環境に必要なスケー ルアップまたはダウンが可能です • 最初は少額で始めて、規模拡⼤に応じ 費⽤が増えていきます • 秘密鍵の制御を管理します
  32. Your Blockchain Service Your Infrastructure Resources IBM Blockchain Platform The

    instance that lets you deploy and manage your Hyperledger Fabric nodes. Learn more: https://cloud.ibm.com/docs/containers?topic=containers-ibm-cloud-kubernetes-service-technology Operational Console (UI) Hyperledger Fabric Components Certificate Authority Peer Ordering Service Peer Couch GRPC- Web Chaincode CA Orderer Containers IBP VS Code extension (Development Tools) Fluentd Init Init Init GRPC- Web デプロイ概要: IBP & IKS & Storage
  33. Your Blockchain Service Your Infrastructure Resources IBM Blockchain Platform The

    instance that lets you deploy and manage your Hyperledger Fabric nodes. IBM Cloud Kubernetes Service Your compute and memory that you allocate to your blockchain instance Cluster (e.g. 2CPU x 4GB RAM) Worker Node Pod App (Containers) Learn more: https://cloud.ibm.com/docs/containers?topic=containers-ibm-cloud-kubernetes-service-technology Persistent Storage Operational Console (UI) Hyperledger Fabric Components Certificate Authority Peer Ordering Service Peer Couch GRPC- Web Chaincode CA Orderer Containers File Storage (Default) IBP VS Code extension (Development Tools) Fluentd Init Init Init GRPC- Web デプロイ概要: IBP & IKS & Storage
  34. Your Blockchain Service Your Infrastructure Resources IBM Blockchain Platform The

    instance that lets you deploy and manage your Hyperledger Fabric nodes. IBM Cloud Kubernetes Service Your compute and memory that you allocate to your blockchain instance Cluster (e.g. 2CPU x 4GB RAM) Worker Node Pod App (Containers) Learn more: https://cloud.ibm.com/docs/containers?topic=containers-ibm-cloud-kubernetes-service-technology Persistent Storage Operational Console (UI) Hyperledger Fabric Components Certificate Authority Peer Ordering Service Peer Couch GRPC- Web Chaincode CA Orderer Containers CPU & Memory Storage File Storage (Default) IBP VS Code extension (Development Tools) Containers for each component are within the Kubernetes Pod and can be managed as standalone items Each Fabric component is deployed into an individual Pod Fluentd Init Init Init GRPC- Web 1 2 3 1 2 3 デプロイ概要: IBP & IKS & Storage
  35. 38 サマリー • Hyperledger Fabric トランザクション – ストラクチャーがシステム設計とアプリケーションアーキテクチャをドライブ します •

    スマートコントラクト – 分散型台帳に保存されているビジネスオブジェクトのライフサイクル全体のト ランザクション定義が含まれています – 組み込みのコントラクトクラスにより、プログラミングが容易になります • アプリケーション – コンセンサスは複雑ですが、SDKによりアプリケーションが簡単になります – submitTransaction(), evaluateTransaction(), addListener() – 究極のカスタマイズ性のためのゲートウェイ接続オプション • IBM Blockchain Platformの特徴 – マルチクラウドネットワーク、開発者およびオペレーターツール、IBMサービ スおよびサポートを提供します
  36. Thank you Taiji Hagino (@taiponrock) IBM Developer Advocacy Tokyo Team

    Sr. Developer Advocate IBM Champion Regional Director www.ibm.com/blockchain developer.ibm.com/blockchain www.hyperledger.org © Copyright IBM Corporation 2020. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. Any statement of direction represents IBM's current intent, is subject to change or withdrawal, and represents only goals and objectives. IBM, the IBM logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.