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
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
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
発表者は何⼈の数学者に尋ねるべきですか︖ 2. 答えが正しいために何⼈の数学者が同意する必要がありますか︖ 3. 数学が答えに同意しない場合、または発表者が悪い答えを選択した場合はどうなりますか︖ à 全員が、良い答えを構成することに同意する必要があります P M M M M M M M M M M A A A a puzzle a process a problem a policy
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
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
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(); }
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
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