Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware...

113
Table of Contents Lab Overview - HOL-2088-01-EMT - VMware Blockchain – Getting Started ....................... 2 Lab Guidance .......................................................................................................... 3 Module 1 - Introduction to VMware Blockchain ................................................................. 9 Introduction........................................................................................................... 10 Introduction to Blockchain .................................................................................... 11 VMware Blockchain ............................................................................................... 14 Core VMware Blockchain Infrastructure ................................................................ 16 VMware Blockchain UI Walkthrough ...................................................................... 19 Conclusion............................................................................................................. 44 Module 2 - Using VMware Blockchain to Manage Supply Chains ..................................... 46 Introduction........................................................................................................... 47 Introduction to the Supply Chain Use Case ........................................................... 48 The VMware Sample Supply Chain Distributed Application (DApp) ....................... 49 Working with Supply Chain Distributed Application .............................................. 55 Conclusion............................................................................................................. 73 Module 3 - Zero Knowledge Proofs with QEDIT ............................................................... 75 Introduction........................................................................................................... 76 Blockchain Privacy ................................................................................................ 77 An Example of Zero Knowledge Proofs .................................................................. 78 QEDIT Sample Supply Chain Distributed Application ............................................ 79 Conclusion............................................................................................................. 91 Module 4 - Data Anchoring ............................................................................................. 93 Introduction........................................................................................................... 94 Introduction to Data Anchoring and PencilDATA Chainkit ...................................... 95 Conclusion........................................................................................................... 100 Module 5 - The Promise of Blockchain, A Fully Functional DApp .................................. 102 Introduction......................................................................................................... 103 Ocean Plastic ...................................................................................................... 104 Introduction to the Dell Boomi Ocean Plastics dApp ........................................... 106 Hands-on Labs Interactive Simulation: Putting it all Together, A Fully Functional Dapp ................................................................................................................... 110 Conclusion........................................................................................................... 111 HOL-2088-01-EMT Page 1 HOL-2088-01-EMT

Transcript of Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware...

Page 1: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Table of ContentsLab Overview - HOL-2088-01-EMT - VMware Blockchain – Getting Started.......................2

Lab Guidance .......................................................................................................... 3Module 1 - Introduction to VMware Blockchain ................................................................. 9

Introduction........................................................................................................... 10Introduction to Blockchain .................................................................................... 11VMware Blockchain ............................................................................................... 14Core VMware Blockchain Infrastructure ................................................................ 16VMware Blockchain UI Walkthrough ...................................................................... 19Conclusion............................................................................................................. 44

Module 2 - Using VMware Blockchain to Manage Supply Chains.....................................46Introduction........................................................................................................... 47Introduction to the Supply Chain Use Case ........................................................... 48The VMware Sample Supply Chain Distributed Application (DApp).......................49Working with Supply Chain Distributed Application .............................................. 55Conclusion............................................................................................................. 73

Module 3 - Zero Knowledge Proofs with QEDIT ............................................................... 75Introduction........................................................................................................... 76Blockchain Privacy ................................................................................................ 77An Example of Zero Knowledge Proofs.................................................................. 78QEDIT Sample Supply Chain Distributed Application ............................................79Conclusion............................................................................................................. 91

Module 4 - Data Anchoring ............................................................................................. 93Introduction........................................................................................................... 94Introduction to Data Anchoring and PencilDATA Chainkit ......................................95Conclusion........................................................................................................... 100

Module 5 - The Promise of Blockchain, A Fully Functional DApp ..................................102Introduction......................................................................................................... 103Ocean Plastic ...................................................................................................... 104Introduction to the Dell Boomi Ocean Plastics dApp ...........................................106Hands-on Labs Interactive Simulation: Putting it all Together, A Fully FunctionalDapp ................................................................................................................... 110Conclusion........................................................................................................... 111

HOL-2088-01-EMT

Page 1HOL-2088-01-EMT

Page 2: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Lab Overview -HOL-2088-01-EMT -

VMware Blockchain –Getting Started

HOL-2088-01-EMT

Page 2HOL-2088-01-EMT

Page 3: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Lab GuidanceNote: It will take about 90 minutes to complete this lab. You should expect tofinish all modules during your time. The modules build on each other so youshould start at the beginning and proceed from there.

This is an introductory blockchain lab focused on VMware Blockchain, partner solutions,and smart contracts.

Lab Module List:

• Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic) This modulewalks you through the basics of blockchain, explains how VMware Blockchaindifferentiates itself, and walks you through the web interface.

• Module 2 - Using VMware Blockchain to Manage Supply Chains (30 minutes)(Advanced) In this module you will deploy a smart contract. You will also create,store and transfer assets using the smart contract. All of these actions will bedone in the context of a supply chain app that has been built on top of VMwareBlockchain.

• Module 3 - QEDIT Zero Knowledge Proofs (30 minutes) (Advanced) This moduleintroduces you to the concept of zero knowledge proofs and shows what animplementation of them would look like using QEDIT's partner solution on top ofVMware Blockchain.

• Module 4 - Data Anchoring (15 minutes) (Advanced) This module introduces youto the concept of data anchoring and shows what an implementation of it wouldlook like using PencilData's partner solution called Chainkit, running on top ofVMware Blockchain.

• Module 5 - Putting it all Together, a Fully Functional Dapp (30 minutes)(Advanced) This module will show you the user's point of view when using a web-based DApp built on top of VMware Blockchain. This module will be delivered viaiSim.

Lab Captains: Anoop Jalan, Staff SE; Gintaras Pelenis, Blockchain Specialist SE

This lab manual can be downloaded from the Hands-on Labs Document site found here:

http://docs.hol.vmware.com

This lab may be available in other languages. To set your language preference and havea localized manual deployed with your lab, you may utilize this document to help guideyou through the process:

http://docs.hol.vmware.com/announcements/nee-default-language.pdf

HOL-2088-01-EMT

Page 3HOL-2088-01-EMT

Page 4: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Disclaimer

This session may contain product features that are currently underdevelopment.

This session/overview of the new technology represents no commitment fromVMware to deliver these features in any generally available product.

Features are subject to change, and must not be included in contracts,purchase orders, or sales agreements of any kind.

Technical feasibility and market demand will affect final delivery.

Pricing and packaging for any new technologies or features discussed orpresented have not been determined.

• “These features are representative of feature areas under development. Featurecommitments are subject to change, and must not be included in contracts,purchase orders, or sales agreements of any kind. Technical feasibility and marketdemand will affect final delivery.”

Location of the Main Console

1. The area in the RED box contains the Main Console. The Lab Manual is on the tabto the Right of the Main Console.

HOL-2088-01-EMT

Page 4HOL-2088-01-EMT

Page 5: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

2. A particular lab may have additional consoles found on separate tabs in the upperleft. You will be directed to open another specific console if needed.

3. Your lab starts with 90 minutes on the timer. The lab can not be saved. All yourwork must be done during the lab session but you can click the EXTEND toincrease your time. If you are at a VMware event, you can extend your lab timetwice, for up to 30 minutes. Each click gives you an additional 15 minutes.Outside of VMware events, you can extend your lab time up to 9 hours and 30

minutes. Each click gives you an additional hour.

Alternate Methods of Keyboard Data Entry

During this module, you will input text into the Main Console. Besides directly typing itin, there are two very helpful methods of entering data which make it easier to entercomplex data.

Click and Drag Lab Manual Content Into Console ActiveWindow

You can click and drag text and Command Line Interface (CLI) commands directly fromthe Lab Manual into the active window in the Main Console.

Accessing the Online International Keyboard

You can also use the Online International Keyboard found in the Main Console.

<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><ahref="http://www.youtube.com/watch?v=xS07n6GzGuo" target="_blank">Try watching this video on www.youtube.com</a>, or enableJavaScript if it is disabled in your browser.</div></div>

HOL-2088-01-EMT

Page 5HOL-2088-01-EMT

Page 6: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

1. Click on the Keyboard Icon found on the Windows Quick Launch Task Bar.

Click once in active console window

In this example, you will use the Online Keyboard to enter the "@" sign used in emailaddresses. The "@" sign is Shift-2 on US keyboard layouts.

1. Click once in the active console window.2. Click on the Shift key.

Click on the @ key

1. Click on the "@ key".

Notice the @ sign entered in the active console window.

HOL-2088-01-EMT

Page 6HOL-2088-01-EMT

Page 7: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Activation Prompt or Watermark

When you first start your lab, you may notice a watermark on the desktop indicatingthat Windows is not activated.

One of the major benefits of virtualization is that virtual machines can be moved andrun on any platform. The Hands-on Labs utilizes this benefit and we are able to run thelabs out of multiple datacenters. However, these datacenters may not have identicalprocessors, which triggers a Microsoft activation check through the Internet.

Rest assured, VMware and the Hands-on Labs are in full compliance with Microsoftlicensing requirements. The lab that you are using is a self-contained pod and does nothave full access to the Internet, which is required for Windows to verify the activation.Without full access to the Internet, this automated process fails and you see this

watermark.

This cosmetic issue has no effect on your lab.

Look at the lower right portion of the screen

HOL-2088-01-EMT

Page 7HOL-2088-01-EMT

Page 8: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Please check to see that your lab is finished all the startup routines and is ready for youto start. If you see anything other than "Ready", please wait a few minutes. If after 5minutes your lab has not changed to "Ready", please ask for assistance.

HOL-2088-01-EMT

Page 8HOL-2088-01-EMT

Page 9: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Module 1 - Introduction toVMware Blockchain

HOL-2088-01-EMT

Page 9HOL-2088-01-EMT

Page 10: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

IntroductionWelcome to Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic)

This Module contains the following lessons:

• Introduction to Blockchain - This lesson introduces to the basic concepts aroundblockchain. This is a reading only module, and if you are comfortable withblockchain in general, you can skip this lesson.

• VMware Blockchain - This lesson introduces you to the VMware Blockchainservice, and describes some common use cases for it. This is a reading onlymodule.

• Core VMware Blockchain Infrastructure - This lesson explains the logicalarchitecture of VMware Blockchain. This is a reading only module.

• VMware Blockchain UI - In this lesson you will begin to explore the UI for VMwareblockchain and see how it applies to some of the concepts we covered in earlierlessons.

HOL-2088-01-EMT

Page 10HOL-2088-01-EMT

Page 11: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Introduction to BlockchainVMware Blockchain™ is a managed service that enables businesses to createdecentralized business networks. It offers customers enterprise grade decentralizedtrust, enabling them to transact and share data securely even in environments where upto 1/3 of the network participants are malicious.

VMware Blockchain is based on Project Concord, an open-sourced core comprised of thefollowing,

• a scalable and energy efficient consensus engine• a high-performance storage layer• a modular SMR (State Machine Replication) component enabling support for

Ethereum, Hyperledger and DAML smart contracts.

To understand VMware Blockchain, you must first familiarize yourself with the coreblockchain concepts.

What is Blockchain

In traditional data management systems, data is stored in a central location and usersrely on a trusted central authority for retrieving information and updating data. Theyalso expect the authority not to maliciously modify the data. In many cases, it isimpossible to find a single entity that all users can trust, who never fails, and cannot becompromised.

Blockchain is a decentralized distributed ledger enabling parties who may notnecessarily trust each other to continuously append and validate data in a series ofcryptographically linked data structures called blocks. With blockchain, a new system ispossible where each network participant maintains a local copy of the ledger they canindependently validate. A consensus protocol is utilized by all parties to communicateand vote on subsequent ledger updates, fully distributing and decentralizing trust.

The cryptographically linked data structure stored by each participant is append only.Once data has been verified and added to a block, the network will not allow the data tobe deleted, only appended. Each block consisting of ledger transactions iscryptographically linked or chained to the next block using a cryptographic hashfunction. This makes the blockchain auditable in addition to having the property of beingindependently verifiable by all network participants.

Some blockchains support user custom code called smart contracts that govern howdata is stored or manipulated on the ledger. Smart contracts contain business logic thatcan describe or model a legal agreement or business process between two or moreparties. There are various blockchain implementations with various approaches.Blockchains are generally designed to support the following operational models,permissionless (public) or permissioned.

HOL-2088-01-EMT

Page 11HOL-2088-01-EMT

Page 12: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The table shows the differences between permissioned and permisionless blockchain.

How Consensus Protocols Secure Blockchains

One way for parties who may not necessarily trust one another to distribute trust amongthemselves, is to run some distributed protocol to guarantee that all replicas see aconsistent view of the committed shared ledger. This protocol is often called aconsensus protocol.

Blockchain Replicas use a consensus protocol to agree on which transactions have beenverified and committed to the blockchain. There are two main methods of consensus:

• Proof of Work: Often used in permissionless blockchains, this usually employs acompute intensive process called mining to add transactions to the ledger. Yourability to mine new blocks is based on your ability to solve a cryptographicpuzzle. Adding more compute power enables you to solve more cryptographicpuzzles, leading to an increase in your chances in solving the puzzle first. Trust isdistributed by assuming that the adversary controls only a small fraction of thecompute power of the entire network.

• Byzantine Fault Tolerance (BFT): In a permissioned blockchain, one can use muchmore efficient consensus protocols. These protocols can obtain much betterthroughput and a lower time to transaction finality. For example, Bitcoin obtainsfewer than five transactions (tx) per second and in the usual case an hour tofinalize a transaction. In contrast, BFT protocols can obtain hundreds or eventhousands of tx per second and might take less than a second to finalize.

VMware Blockchain’s employs a Scalable Byzantine Fault Tolerant (SBFT) replicationprotocol that obtains better performance than PBFT and other solutions in large-scaledeployments. In SBFT, each replica holds equal voting power on the network. Trust isdistributed by assuming that the adversary controls only a small fraction of the totalvoting power of the overall network.

To learn more about SBFT, please refer to the SBFT whitepaper.

HOL-2088-01-EMT

Page 12HOL-2088-01-EMT

Page 13: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

What is a Decentralized Application (DApp)?

The prevalent model of software applications is centralized data storage. Decentralizedapplications rely instead on a distributed ledger for storage instead of centralizedstorage systems and make use of smart contracts to interact with the ledger.

Unlike traditional applications, DApps are hosted on distributed ledgers or blockchains.DApps are inherently highly available given multiple replicas can store a copy of theDApp and the ledger increasing availability and tolerance to faults.

DApps also benefit from the protection they gain from the underlying consensusprotocols employed. Unlike blind data replication employed by traditional storagesystems, DApps that run on VMware Blockchain operate correctly even when a minorityof the network participants behave maliciously.

What is a Smart Contract?

Smart contracts are similar to stored procedures in that they contain the business logicthat updates the ledger. Unlike stored procedures, smart contracts operate on adistributed ledger and all operations via the smart contract are validated by the majorityof network participants before being committed to the ledger.

This enables businesses that have joined a network to write the network rules in a smartcontract and utilize the distributed ledger to enforce those rules.

With VMware Blockchain, you can write smart contracts for Hyperledger Fabric (GoLang,NodeJs), Ethereum (Solidity, EVM Bytecode) and DAML (Digital assets modellinglanguage) all backed by an enterprise grade decentralized trust platform.

HOL-2088-01-EMT

Page 13HOL-2088-01-EMT

Page 14: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

VMware BlockchainVMware Blockchain is a fully managed enterprise grade decentralized trust platform.This enables organizations who may not necessarily trust one another to transact orshare data securely in a permissioned consortium.

With VMware Blockchain, you can provision and stand up local or global blockchaininstances. You can also build business networks and are only required to bring smartcontracts or DApps.

At provisioning time, customers can specify the consortium name, number ofparticipants and node geographic location.

Key VMware Blockchain features:

• Public cloud, private cloud, and on-premises deployment for managed datareplicas

• Enterprise-ready security, fault tolerance, and scalability• Developer-friendly interfaces and support for Ethereum, Hyperledger Fabric and

DAML contract languages• Robust monitoring and fleet management dashboards and API’s• Support for federated identity management (IDM)

This lesson includes the following topics:

• Why Use VMware Blockchain• What Key Concepts Do I Need to Know

Why Use VMware Blockchain

VMware Blockchain technology alleviates the complexity around managing blockchain'sinfrastructure so that organizations can concentrate instead on building applications.

VMware Blockchain has enterprise grade security features including its highly scalableconsensus protocol that enable organizations to share information securely acrossorganizational boundaries in a permissioned network.

There are six main differentiating factors:

• SaaS solution and the ability to integrate SaaS with local replicas.• Multi-cloud solution with a distributed trust so that users are not locked into a

single cloud provider.• Scalable BFT engine with faster throughput than other forms of BFT and solutions

based on mining.• Tools, such as a UI and API, to manage and audit blockchains.

HOL-2088-01-EMT

Page 14HOL-2088-01-EMT

Page 15: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

• Support for multiple smart contract languages on the same platform reducingoverall cost of ownership.

• Seamlessly migrate contracts originally written for Ethereum EVM, HyperledgerFabric and DAML with no code changes and benefit from the greater security,scalability and throughput of VMware Blockchain.

Some of the common VMware Blockchain use cases include:

• Financial Services: Settlement and clearing, identity management, and protectingsensitive data.

• Manufacturing: Fraud detection, proper disposal of expired goods, end-to-endtracking of goods in the supply chain, conflict material tracking such as, diamond,gold, and tin, tracking plastic harvested from the oceans for recycling.

• Telecommunications: Settlement and clearing, consent management such as, donot call, securing identity.

• Media: Identity management and protecting sensitive data.• Government: Deed transfer and recording, and identity management

What Key Concepts Do I Need to Know?

VMware Blockchain is a distributed trust platform that enables Blockchain Replicas(Replicas), who may not necessarily trust one another, to share data or transact in apermissioned business network. The VMware Blockchain core natively supportspluggable State Machine Replication (SMR) atop a Byzantine fault tolerant (BFT)replication protocol.

VMware Blockchain makes assumptions that the network is permissioned. Measures areestablished to prevent or detect bad behavior because Replicas within a network mighthave incentives to behave maliciously, or their systems might be compromised.

Overall, VMware Blockchain enables the network to operate correctly even if a subset ofnetwork Replicas behave dishonestly. These guarantees do not depend on synchronyassumptions of the network, and a violation of message delivery deadlines might resultin a momentary lack of progress, not in consistency or safety violations.

VMware Blockchain allows organizations to scale the number of Replicas in the networkto increase availability and increase fault tolerance.

HOL-2088-01-EMT

Page 15HOL-2088-01-EMT

Page 16: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Core VMware Blockchain InfrastructureVMware Blockchain is comprised of three core components; in this lesson we will discusstwo of them: the VMware Blockchain Consensus Engine and the VMware BlockchainService.

• VMware Blockchain Consensus Engine - Maintains the blockchain state, runssmart contracts, and participates in consensus decisions.

• VMware Blockchain Service - Provides external interface of the VMwareBlockchain Consensus Engine, which provides an HTTP-based API and a UI.

VMware Blockchain Deployment Service, which is part of VMware Blockchain Service,accepts HTTP requests to deploy and manage VMware Blockchain. The VMwareBlockchain Service interfaces with the data center infrastructure such as VMware VMC,AWS, and SoftLayer to start the appropriate services.

VMware Blockchain uses a noSQL like database for organization, user, and smartcontract metadata. A load balancer is required for directing the external traffic to theappropriate VMware Blockchain Service instances.

This lesson includes the following topics:

• VMware Blockchain Consensus Engine• VMware Blockchain Service

VMware Blockchain Consensus Engine

The core VMware Blockchain Consensus Engine runs on an open-source decentralizedtrust infrastructure for blockchains called Project Concord.

VMware Blockchain Consensus Engine implements a new scalable Byzantine FaultTolerant (BFT) replication protocol that addresses the challenges of scalability anddecentralization. The VMware Blockchain Consensus Engine provides a critical layer forany blockchain solution because updates to the VMware Blockchain are made based onthe agreed upon statements in the VMware Blockchain Consensus Engine.

There are two types of trust systems:

• Centralized: Rely on a single entity to commit and to run transactions.• Decentralized: Responsibility for committing and running transactions is

distributed and replicated between multiple replicas to provide strong faulttolerance guarantees.

When defining a BFT replication protocol, the fundamental parameter is the letter f. Thisparameter captures the maximum number of nodes that a malicious agent can fully

HOL-2088-01-EMT

Page 16HOL-2088-01-EMT

Page 17: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

control. The malicious agent can adaptively decide if these f nodes can fail, send fakemessages, or even send different messages to different nodes.

A BFT replication protocol is correct if it maintains both liveness and safety against amalicious agent controlling f nodes. A BFT replication protocol has two functions:

• Liveness: Guarantees that the client requests are committed in a timely mannerno matter how forcefully the malicious agent controlling f nodes try to blockthem.

• Safety: Guarantees that all replicas and all clients have the same view no matterhow forcefully the malicious agent controlling f nodes try to cause disagreement.

Sometimes, nodes can fail without being maliciously attacked. Nodes can fail, forexample, due to power, network, or hypervisor failure. As a best practice, these nodesmust always be protected.

The parameter f is the optimal minimal number of nodes or trust domains needed,which is computed by the formula n=3f+1. To survive f malicious node failures andmaintain safety in asynchronous environments, you need n=3f+1 nodes.

VMware Blockchain Consensus Engine uses a primary-based protocol which provides anovel view-change protocol of both safety and liveness. Each node is connected to a UIor API front-end node, and a database to store the Smart Contracts.

VMware Blockchain Service

VMware Blockchain Service provides deployment, management, and monitoringservices for VMware Blockchain. VMware Blockchain Service is a highly available andscalable service deployed in AWS under VMware’s Cloud Services Platform (CSP).

HOL-2088-01-EMT

Page 17HOL-2088-01-EMT

Page 18: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

VMware Blockchain Service has REST APIs for the UI and CLIs to interact with. It isintegrated with a Federated Authentication system that allows you to authenticate withyour own authentication infrastructure. It provides a full tenant isolation. VMwareBlockchain Service consists of several micro services.

The VMware Blockchain Service uses the VMware Blockchain Deployment Service fordeployment and configures new VMware Blockchain instances.

Key elements of the VMware Blockchain Service include:

• Deploy existing blockchain nodes using the VMware Blockchain DeploymentService in a hosted environment and on-premise. The deployed blockchain nodesare securely connected using an overlay network. The network can span multipledata center sites.

• Run the configuration service and securely configure the VMware Blockchain keysbut makes no copy of this information to keep VMware Blockchain independentand secure.

• Add nodes to a given VMware Blockchain.• Monitor the health of the nodes on VMware Blockchain.• Upgrade the VMware Blockchain node software.• Deploy and validate smart contracts.

With VMware Blockchain Service you can perform the following tasks:

• Integration with monitoring and notification services gives you real-time healthchecks and alerts.

• Developer support for the Contract Compiler service allows you to edit, load, andprovide tools for working with smart contracts.

• Use the VMware Blockchain Deployment Service to deploy and manage VMwareBlockchain. The VMware Blockchain Deployment Service is separate from theVMware Blockchain itself.

VMware Blockchain Service plays no part in authorization or operations on the VMwareBlockchain. If the VMware Blockchain Service is isolated from the VMware Blockchain,management and monitoring functions are impacted, but the VMware Blockchainoperations continue unimpeded.

HOL-2088-01-EMT

Page 18HOL-2088-01-EMT

Page 19: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

VMware Blockchain UI WalkthroughYou can use the VMware Blockchain UI to view the detailed and overall status of thecomponents. You can also create and manage smart contracts or use the availablesample DApps

Please note, that due to the immutability of blockchain, some of the screen shotsprovided in the user manual may not match what you see in the VMware Blockchainuser interface.

Launch Chrome

1. Open Chrome browser in Windows by double-clicking on the Google Chromedesktop shortcut.

HOL-2088-01-EMT

Page 19HOL-2088-01-EMT

Page 20: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Prepare the Browser

You may want to adjust the the Zoom on Chrome to better see the screen. In order to dothis follow these steps:

1. Click on the Customize and Control button (three dots next to the URL)2. Next to the Zoom option, click the minus sign (-) one to reduce the zoom to 90%.3. Click anywhere on the screen other than the drop down menu to close the menu.

Navigate to the VMware Blockchain UI

1. Click on the VMware Blockchain UI bookmark.

HOL-2088-01-EMT

Page 20HOL-2088-01-EMT

Page 21: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Log in to the VMware Blockchain User Interface

1. Enter [email protected] for the Username2. Enter VMware1! for the Password3. Click Next

HOL-2088-01-EMT

Page 21HOL-2088-01-EMT

Page 22: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Explore the VMware Blockchain UI Navigation Pane

You will be presented with the VMware Blockchain user interface and main dashboard.On the left hand side of the user interface you will see a number of options which youcan use to navigate the UI.

1. On the top of this panel is the Deploy option. You would use this option to createa new consortium.

2. Right now the Dashboard is selected.

HOL-2088-01-EMT

Page 22HOL-2088-01-EMT

Page 23: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

VMware Blockchain Dashboard

From the dashboard you can view the overall status of the VMware Blockchain. On thisscreen you can see:

1. What the relative node health is.2. The number of Smart Contracts deployed on the blockchain.3. The number of blocks in the current blockchain.4. How many total transactions those blocks contain. Note that there is not a one to

one correlation between blocks and transactions.5. You can also find a list of the nodes or replicas, along with details about those

replicas and each one's health. Pay attention to the fact that in thisimplementation the Hostnames are replica0, replica1, replica2, and replica3. Alsopay attention to the fact that the IP addresses are 172.18.0.x addresses. This willbe important later.

6. There is also a list of all of the smart contracts deployed on this blockchain.7. Use the scroll bar to scroll to the bottom of the panel

Please note, that if you are taking modules in random order, you may see more or lessblocks and transactions in UI

HOL-2088-01-EMT

Page 23HOL-2088-01-EMT

Page 24: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

VMware Blockchain Dashboard (Continued)

Further down the main dashboard, you see:

1. The list of the most recent blocks along with the Index and Hash for that block.2. The hash for the transactions. Further to the right (offscreen) you would also see

the Nonce value for the transaction.3. Click on Smart Contracts in the Navigation panel.

HOL-2088-01-EMT

Page 24HOL-2088-01-EMT

Page 25: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Smart Contract UI

This part of the dashboard allows you to view and manage Smart Contracts. From hereyou can deploy smart contracts manually or learn how to connect to truffle. Truffleconsists of a development environment, a testing framework and an asset pipeline forEtherium development. There are a number of things see on this screen:

1. The CONNECT WITH TRUFFLE button will provide instructions for connectingwith tools to help manage and deploy smart contracts.

2. You can also use the DEPLOY button to manually deploy smart contracts.3. There is a list of the smart contracts currently deployed on the blockchain. This

list includes the name of the Smart contract...4. ...and the Owner of that smart contract, or the entity that deployed the contract

on the blockchain.

In the lab, the contracts were deployed with truffle, and so the Name of the smartcontract is the hex value that represents the contract on the chain. If the contract hadbeen deployed directly, you would see a human readable name there.

5. Click on the name of the topmost contract.

HOL-2088-01-EMT

Page 25HOL-2088-01-EMT

Page 26: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Smart Contract Details

On this screen, you can see the details of the smart contract you selected. Much of theinformation is blank because these contracts were deployed via truffle. On this screenyou can see the following:

1. The Execute tab would allow you to execute functions supplied by the smartcontract.

2. The Source, Bytecode, and Metadata tabs would allow you to see the sourcecode for the smart contract, the bytecode, and the metadata respectively.

3. You can also see the Version of the smart contract. This is important as thecontracts are stored on the block. This means that a deployed contract cannot bedeleted or changed. Deploying the new contract with an incremented version willallow for updating the contract.

4. The Update button will allow you to update an existing smart contract by addinga new contract to the blockchain with a new version number.

5. Click on Blocks in the Navigation panel.

HOL-2088-01-EMT

Page 26HOL-2088-01-EMT

Page 27: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Blocks UI

This screen allows you to examine the details for each block in the blockchain. The listof blocks is in reverse chronological order with the most recent block on the top of thelist.

1. Initially you will see the index for the block (an incremental number that helpsidentify the block) and...

2. the hash (which identifies each block with a unique value) for the block.3. Click on the chevron next to the top block in the list to see details about that

block.4. In the expanded details, notice that you can additionally now see the following:

Parent Hash - The Hash value for the block before this one. Compare the ParentHash value for the block you are looking at to the block immediately prior to itand you will see that they match.Nonce - A sequence order number that can serve various purposes.Size - The size of the block.

5. Also note the double rectangle symbol next to some of the numbers. This iconallows you to easily copy that value to the clipboard.

6. Click on the topmost block's hash or index to see more details about the block.

HOL-2088-01-EMT

Page 27HOL-2088-01-EMT

Page 28: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Block detail

In this detailed screen you can once again see:

1. The Hash,2. The Parent Hash,3. Nonce, and4. Size.5. Additionally you can see the transactions that make up this block, along with

their:6. Hash,7. Nonce, and8. Status, as appropriate.9. Click on Blocks in the Navigation panel.

HOL-2088-01-EMT

Page 28HOL-2088-01-EMT

Page 29: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Locate the First Block in the Chain

This screen allows you to examine the details about each block in the blockchain. Thelist of blocks is in reverse chronological order with the most recent block on the top ofthe list.

1. Using the scrollbar, scroll down so you can see the page indicator for the list ofblocks.

2. Choose the rightmost value in the page list. The size of your page list may vary.

HOL-2088-01-EMT

Page 29HOL-2088-01-EMT

Page 30: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The Genesis Block

1. Click on the chevron to the left of the block with an index of 0. This is a specialblock called the Genesis block. It is the first block in the chain.

2. Notice that the Index for the block is 0.3. Also notice that they Parent Hash for the block is also a Hex 0. Those indicators

help to identify the genesis block.4. Click on Transactions in the Navigation Pane.

HOL-2088-01-EMT

Page 30HOL-2088-01-EMT

Page 31: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Transactions UI

This screen lets you see all the transactions that have been stored on the blockchain.Again, these transaction are recorded with the most recent on top.

1. On this screen you can see the Hash value for the Transaction. This is acryptographic representation of the transaction.

2. You will also see the Nonce for the transaction.3. Along with the status.4. Click on the chevron to the left of the Hash of the topmost transaction.

HOL-2088-01-EMT

Page 31HOL-2088-01-EMT

Page 32: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Transactions UI (Continued)

You can now see some additional details for the transaction. It is worth noting that youwould get the exact same details if you clicked on the Hash for the transaction.

1. The expanded details show the From address (this is often the source address ofthe assets being acted on),

2. the To address (this is often the destination address of the assets being acted on),3. the Value (this is often the amount of the asset that is being tracked or acted

upon),4. and the Input (this can be additional details about the transaction, the

information for building out a smart contract or a number of other payloads forthe transaction).

5. Click on APIs under Developers to see the API Explorer UI.

HOL-2088-01-EMT

Page 32HOL-2088-01-EMT

Page 33: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

API Explorer UI

One of the key differentiators of VMware Blockchain is the ease with which developerscan interact with it. The API Explorer UI allows you to see the documentation for theREST API for interacting with VMware Blockchain.

1. Feel free to scroll up and down to see the various APIs that are available.2. When you are done, finish by scrolling so that the /concord/members API is on top

of the screen and click on that API. This particular API call lists the nodes that aremembers, or replicas, in a particular blockchain instance.

HOL-2088-01-EMT

Page 33HOL-2088-01-EMT

Page 34: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The /concord/members API

You can now see the documentation for the get /concord/members API call:

1. The documention will list the Parameters for the API call. This particular APIdoes not have any parameters you can pass to it, so that section says:

2. No parameters.3. Scroll the window down so the Responses section is on the top of the screen.

HOL-2088-01-EMT

Page 34HOL-2088-01-EMT

Page 35: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The /concord/members API (Continued)

The Responses section outlines what the API can return when it is called. This caninclude:

1. A response Code. The HTTP Status 200 (OK) code indicates that the request wasprocessed successfully on the server. This is the response code you will see in allthe API calls. If you get a code other than 200, it indicates that there was somesort of problem running the REST API call.

2. A Description of the output. In this case it will be the members of the blockchaincluster. This output will be in json format. It will also show you an example ofwhat the actual output will look like.

3. If there are Links that are returned, you will also see those here.4. Use the scroll bar to scroll back up to the top of the description of the /concord/

members API.

HOL-2088-01-EMT

Page 35HOL-2088-01-EMT

Page 36: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Try the /concord/members API

The API will also allow you to experiment with the various API calls.

1. To do this start by clicking on the Try it out button.

Try the /concord/members API (Continued)

1. Note again that the Parameters section says No parameters. If you could passthe API call parameters, you would have the chance to enter them into text fieldshere.

2. Next click the Execute button to run the API call.

HOL-2088-01-EMT

Page 36HOL-2088-01-EMT

Page 37: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Try the /concord/members API (Continued)

Let us examine the rest of the output of the /concord/members API call.

1. Look under the Responses section to see:2. The Curl command that was run to get the output we will examine. This

command will include the URL for the request, the format for the output and therequirements for authorization to run the API. The curl command is often used tointeract with REST based APIs from the command line.

3. You can also see the Request URL that actually calls the API. It does not includethe blockchain instance specific information required to run the API. You can seethis Request URL at the beginning of the curl statement above, after the GETcommand.

4. Using the scrollbar, scroll down so Server response is at the top of the screen.

HOL-2088-01-EMT

Page 37HOL-2088-01-EMT

Page 38: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Try the /concord/members API (Continued)

Under Server Response you will see the output from the curl command that was runabove. This output includes:

1. The response Code that the curl command returned. Remember when we lookedat the documentation before, it told us the response code would be 200.

2. The Response Body includes the hostname and the address (or IP address)among other things. You may remember we asked you to pay attention to thehost names and IP addresses when you were looking at the Dashboard screenearlier. This output should match one of those entries.

3. The Download button would allow you to download a json file with theResponse Body in it.

4. The Response Headers include the header information that was returned withthe json file as a result of the REST call made to the API via the curl commandabove.

Via the API explorer a developer could experiment with the various REST calls that areavailable through VMware Blockchain. It is also worth noting two other specific API callsthat you could see if scrolled down. One is the GET call, /concord/eth which would listthe Etherium named procedures that are available for access via this API. Thoseprocedures would be invoked using the PUT call /concord/eth. In this case Etheriumprocedures are available because the lab is based on an Etherium compatibleblockchain.

HOL-2088-01-EMT

Page 38HOL-2088-01-EMT

Page 39: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

5. Click Samples in the Navigation Pane to find what else the VMware Blockchain UIoffers.

Sample Application(s)

In this part of the UI you have access to the Sample applications that are provided withVMware Blockchain. As this lab is written with pre-release code there is only one sampleapplication.

1. You will be working with the Supply Chain application in the following modules.We have already set up the application for you in this lab.

2. The VIEW SOURCE link would normally take you to the GitHub page for theSupply Chain sample application, however this lab environment does not haveInternet access so the link will not work. We have supplied a link to the SupplyChain DApp in the conclusion of this module.

3. Click on Users to see the last part of the VMware Blockchain UI.

HOL-2088-01-EMT

Page 39HOL-2088-01-EMT

Page 40: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Users

From this part of the UI you can view and manage users in your blockchainimplementation. Most of the information on this screen is self explanatory, butOrganization and Role bear some explaining. There are a number of roles a user canhave. To understand these roles, you must understand two entities within blockchainimplementations.

• Organization or Org - This is self-contained entity, made up of users, who wantto leverage a blockchain based application or a blockchain implementation.Sometimes this could be a company, but depending on the scope of theblockchain, this could be a business unit inside a company.

• Consortium - A blockchain deployment. For example, ten banks, each of whichwould be an org, might each operate a node in the blockchain, of which a certainquorum must be achieved to reach consensus. For our purposes, a Consortium ismade up of Orgs.

Now that you understand Organizations and Consortiums, let's look at the possible rolesyou can have.

• Org User - The end user who wants to use an application built on blockchain or isengaging in transactions. For example, this might be an individual buying orselling an asset.

HOL-2088-01-EMT

Page 40HOL-2088-01-EMT

Page 41: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

• Org Developer - A person who is managing and writing smart contracts orapplications that will leverage the blockchain infrastructure.

• Org Admin - A person who is responsible for managing an organization,including managing the Org Users.

• Consortium Admin - A person responsible for managing which Orgs aremembers of a Consortium.

• Systems Admin - A person responsible for managing a blockchainimplementation.

From this interface you can create users.

1. Click on the Actions dropdown2. Click on Add User

Adding Users

From this window you can create new users for your blockchain implementation. Createa new user with the following parameters:

1. First Name: Test2. Last Name: User3. Email: [email protected]. Password: VMware1!

HOL-2088-01-EMT

Page 41HOL-2088-01-EMT

Page 42: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

5. Confirm Password: VMware1!6. Role: Org Developer7. Click SUBMIT.

Editing Users

You can also edit existing users from here. We aren't going to edit the admin to preventany interference with future modules. However we are going to look at the Edit Userinterface:

1. Click on the checkbox next to Test User to select it.2. Click on the Actions drop down.3. Click on Edit User.

HOL-2088-01-EMT

Page 42HOL-2088-01-EMT

Page 43: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Editing Users (Continued)

Once again, we aren't going to edit the admin to prevent any interference with futuremodules.

1. Take a look at the Edit User window and click CANCEL.2. To prepare for the next module, after you close the Edit User window, click on

Dashboard in the Navigation pane.

This completes the current module.

HOL-2088-01-EMT

Page 43HOL-2088-01-EMT

Page 44: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

ConclusionIn this module you learned a little about blockchain in general, and then youlearned about benefits and value that the VMware Blockchain service bringsyou. You then learned a little about the architecture of this service, and finallyyou had the chance to tour the UI, including the API explorere that allows youto see how you can interact with VMware Blockchain via that API.

You've finished Module 1

Congratulations on completing Module 1.

If you are looking for additional information on VMware Blockchain or the other topicsdiscussed in this module, try one of these:

• For the latest information on VMware Blockchain, visit https://blogs.vmware.com/blockchain.

• To try or get involved with the Concord Open Source project, visit it's GitHub siteat https://github.com/vmware/concord-bft

• To see the sample smart contracts and Supply Chain DApp VMware has created,visit our sample site on GitHub at: https://github.com/vmware-samples/vmware-blockchain-samples

• For more information on what the research arm of VMware is doing withblockchain, please visit: https://research.vmware.com/projects/vmware-blockchain

Proceed to any module below which interests you most.

• Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic) Thismodule walks you through the basics of blockchain, explains how VMwareBlockchain differentiates itself, and walks you through the web interface.

• Module 2 - Using VMware Blockchain to Manage Supply Chains (30minutes) (Advanced) In this module you will deploy a smart contract. You will alsocreate, store and transfer assets using the smart contract. All of these actions willbe done in the context of a supply chain app that has been built on top ofVMware Blockchain.

• Module 3 - Zero Knowledge Proofs with QEDIT (30 minutes) (Advanced) Thismodule introduces you to the concept of zero knowledge proofs and shows whatan implementation of them would look like using QEDIT's partner solution on topof VMware Blockchain.

• Module 4 - Data Anchoring with Chainkit (15 minutes) (Advanced) Thismodule introduces you to the concept of data anchoring and shows what animplementation of it would look like using PencilData's partner solution calledChainkit, running on top of VMware Blockchain.

HOL-2088-01-EMT

Page 44HOL-2088-01-EMT

Page 45: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

• Module 5 - The Promise of Blockchain, a Fully Functional DApp (30minutes) (Advanced) This module will show you the user's point of view whenusing a web-based Dapp built on top of VMware Blockchain. This module will bedelivered via iSim.

How to End Lab

To end your lab click on the END button.

HOL-2088-01-EMT

Page 45HOL-2088-01-EMT

Page 46: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Module 2 - Using VMwareBlockchain to Manage

Supply Chains

HOL-2088-01-EMT

Page 46HOL-2088-01-EMT

Page 47: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

IntroductionWelcome to Module 2 - Using VMware Blockchain to Manage Supply Chains (30 minutes)(Advanced)

This Module contains the following lessons:

• Introduction to the Supply Chain Use Case - This lesson explains why supplychains are a great use case for blockchain and introduces the sample dApp createby VMware.

• The VMware Sample Supply Chain Distributed Application (DApp) - This lessonhelps you prepare for working with the sample supply chain application.

• Working with the VMware Supply Chain Distributed Application - This lesson hasyou exploring sample supply chain processes while using the sample distributedapplication.

HOL-2088-01-EMT

Page 47HOL-2088-01-EMT

Page 48: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Introduction to the Supply Chain UseCaseBlockchain is a platform that contains blocks of data about transactions betweenparties. The data structure within blockchain links these blocks of data to create aledger of all the transactions. The data is cryptographically authenticated to preventalteration and spread of any corrupt entry.

Blockchain has several participant nodes, or replicas, that have full or partial copies ofthe blockchain. The participant nodes act as validators and consumers of theblockchain. A consensus algorithm allows all the participating nodes in the blockchain toagree on what data needs to be added to the ledger and verified as accurate.

One use case of blockchain is to track different types of transactions in a supply chain ina secure and transparent manner. Starting from the manufacturer to the sale of theproduct, every transaction in the supply chain is documented to reduce costs andminimize human error. The sample supply chain decentralized application (dApp) usessmart contracts, which are self-executing contractual promises, stored on a blockchainthat no single entity controls, and everyone can trust. The sample supply chain dAppcan be used on VMware Blockchain or other Ethereum-based blockchains.

HOL-2088-01-EMT

Page 48HOL-2088-01-EMT

Page 49: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The VMware Sample Supply ChainDistributed Application (DApp)In this lesson you will be logged in to VMware Blockchain's UI and the UI for the SupplyChain dApp. You will be using both of these interfaces as you work through the lab.

Please note, that due to the immutability of blockchain, some of the screen shotsprovided in the user manual may not match what you see in the VMware Blockchainuser interface.

Launch Chrome

1. Open Chrome browser in Windows by double-clicking on the Google Chromedesktop shortcut.

HOL-2088-01-EMT

Page 49HOL-2088-01-EMT

Page 50: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Prepare the Browser

You may want to adjust the the Zoom on Chrome to better see the screen. To do thisfollow these steps:

1. Click on the three horizontal dots in next the to URL bar in the browser.2. Next to the Zoom option, click the minus sign (-) one to reduce the zoom to 90%.3. Click anywhere on the screen other than the drop down menu to close the menu.

Open the Necessary UIs

1. Open a a new Chrome tab by clicking on the new tab button.2. In the first tab launch the VMware Blockchain UI.3. In the second tab launch the VMware Supply Chain UI.

HOL-2088-01-EMT

Page 50HOL-2088-01-EMT

Page 51: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Log in to the VMware Blockchain User Interface

1. Enter [email protected] for the Username2. Enter VMware1! for the Password3. Click Next

You can also proceed to the VMware Supply chain UI in a new tab and enter same usercredentials and password now, or you can continue step by step, and login later.

HOL-2088-01-EMT

Page 51HOL-2088-01-EMT

Page 52: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Explore the VMware Blockchain UI Start Page

If you have taken Module 1, you should already be familiar with the VMware BlockchainUser Interface. If you skipped module 1 and you are not familiar with the VMwareBlockchain UI, we highly encourage you to take that module first.

You will be presented with the VMware Blockchain user interface and main dashboard.

In the dashboard you see that in this lab environment we have:

1. four replica nodes...2. three deployed Smart Contracts...3. multiple blocks and transactions already existing.

You can also see node health, internal IP adresses, transaction and block details.

Please do not close this tab, as you will be switching between the VMware Supply ChaindAPP and VMware Blockchain UI so you can observe how particular actions reflect acrosssystems.

Please note, that if you are taking modules in random order, you may see more or lessblocks and transactions in the UI

HOL-2088-01-EMT

Page 52HOL-2088-01-EMT

Page 53: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Switch to the Supply Chain dApp

Please select the 2nd tab, with the VMware Supply Chain application UI

Log in to the Supply Chain dApp UI

1. Enter [email protected] for the Username2. Enter VMware1! for the Password3. Click Next

HOL-2088-01-EMT

Page 53HOL-2088-01-EMT

Page 54: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Introduction to the Supply Chain dApp UI

You will be presented with the VMware Supply Chain application UI. On the front page ofthe UI you can see:

1. There are no active orders.2. There are four nodes belonging to sample blockchain consortium members:

Farmer, Distributor, Storage, Auditor and SuperMarket3. You have been logged in with the Farmer role active. Please click on Farmer to see

the different roles you can use in this demo application.

In the next lesson, you will start working with the VMware Supply chain application.

HOL-2088-01-EMT

Page 54HOL-2088-01-EMT

Page 55: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Working with Supply Chain DistributedApplicationThis sample supply chain distributed application is simulating order processing and thesupply chain involved between a supermarket and a farmer. In the following steps youwill follow a successful path between consortium members.

Enter an Order

We start by acting as a farmer entering an order that he or she has received for 1000bushels of apples. We will then track this order through the entire supply chain to thesuper market.

1. Click on New Order

Create the Order

Enter the details for the order that this farmer is going to fulfil.

1. Select Apples from a drop down menu2. Enter 1000 in amount field3. Click a Create Order button

HOL-2088-01-EMT

Page 55HOL-2088-01-EMT

Page 56: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Please observe the sample animation between nodes: this order was recorded on adistributed ledger running on top of all of the blockchain nodes belonging to this supplychain consortium. This is a fundamental principle of blockchain technology. Atransparent and distributed ledger ensures that all members see exactly the sametransactions.

Confirm Order Creation

1. You can see a new order and its status and its contract ID2. A new supply chain process was started with respective actions associated to

different consortium members, who each have different roles.3. In this window, you can also view the order details.4. Notice that two new actions are available for the farmer role.5. Click on the role area of the app five times to change the Farmer role to the

various other roles, and check if the Approve Order actions are still available.

The actions you can perform on the order are limited by the role you hold. In an actualproduction DApp there would be some sort of user management that would preventsomeone from changing roles as easily as we do here in the lab.

HOL-2088-01-EMT

Page 56HOL-2088-01-EMT

Page 57: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Understanding Access Control

Access control is one of the most common coding patterns because Blockchain smartcontracts are open source and need the right authority to be delegated to theappropriate user. This sample supply chain application uses an Order Access Controlsmart contract to allocate specific actions to the appropriate user roles.

modifier onlyFarmer() {require(

msg.sender == farmer,"Only the Farmer has access."

);_;

}

This is sample Access Control code, which allows only Farmers to approve Orders.

HOL-2088-01-EMT

Page 57HOL-2088-01-EMT

Page 58: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Approve the Order

1. Please confirm that the current role is Farmer. If it isn't click on the role areauntil the current role is Farmer.

2. Click Approve to indicate that the farmer is accepting and fulfilling the order.3. Notice the Validate Order actions are greyed out. As we move through the

application in various roles, we won't call this out every time, but you will be ableto look at the various tasks that can be done and see that most of them aregreyed out for each role. The roles will only be able to act on the order in the waythey are supposed to.

HOL-2088-01-EMT

Page 58HOL-2088-01-EMT

Page 59: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Confirm Commiting the order to the Blockchain

You will notice an Alert pop up. Blockchain is an immutable ledger, meaning, that anytransaction written to a blockchain, cannot be undone.

1. Click OK to approve the order.

This pop up alert will appear every time you make a change that will be commited tothe chain. For sake of brevity, we won't include a screenshot of the alert every time,though we will remind you to click OK.

Supply Chain Process

1. Please notice, that the order was approved by a Farmer.2. The order is now pending Auditor review. In our sample application, an Auditor is

a person validating the quality of a product.

Again, we won't call this workflow out every time, but pay attention to it as you gothrough the lab, and you will see as the supply chain progresses.

HOL-2088-01-EMT

Page 59HOL-2088-01-EMT

Page 60: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Switch to the Auditor Role

Previously, you were acting as the farmer, who has entered an order he received andapproved it for shipping. As the auditor, you will validate that the order is of organicapples and upload documentation stating that you have validated the order.

1. Switch to Auditor view.

HOL-2088-01-EMT

Page 60HOL-2088-01-EMT

Page 61: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Validate the Order

1. Use the scroll bar to scroll down until you can see both the Validate Order Buttonand the Audit Document section.

2. Click on Organic, to validate that the Farmer is shipping organic apples. Eventhough it is not pictured, you will see another Alert letting you know that thisaction can't be undone. Click OK in Pop Up Alert window.

3. After Approval is confirmed, you will be able to click on the Upload button. Pleaseclick on it now.

HOL-2088-01-EMT

Page 61HOL-2088-01-EMT

Page 62: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Upload Certification that the Auditor has Verified andConfirmed the Order.

1. In the File Open window, click to navigate to Desktop, and2. Select the Blockchain Sample Docs folder.3. Select the Organic Certificate.json file.4. Click Open.

HOL-2088-01-EMT

Page 62HOL-2088-01-EMT

Page 63: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Confirm the Upload of the Organic Certificate

You have now successfully create an Order and Validated it as an Auditor.

1. Use the scroll bar to scroll up so you can see the order details.2. Confirm that the Audit Document has been uploaded.

Document storage is usually frowned upon on public blockchains because it isexpensive. But even though it is frowned upon it is necessary for consortiumblockchains to have documents included in the trustless model. In our example we usedthe inEventStore method to store the audit certificate.

You could use the GetDocument method to retrieve the document from a string andcould provide a programmatic option to download the Audit Document.

3. You can also use the GUI, which front ends the API, to download the document.

HOL-2088-01-EMT

Page 63HOL-2088-01-EMT

Page 64: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

There are many ways to store data off-chain and anchor it to a blockchain. You can learnabout data anchoring and the PencilData solution in Module 4.

Change Role to Warehouse Storage

In the supply chain app, the farmer enters and approved the order, the auditor verifiesit, and then the items that are ordered (in this case the 1000 bushels of apples) aremoved into a storage facility. The storage facility then confirms that it received the orderand then records when it releases the order to the distributor.

1. Click in the Role area of the screen to change your role to Storage.

Receive the Order

HOL-2088-01-EMT

Page 64HOL-2088-01-EMT

Page 65: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

1. Use the scroll bar so that you can see the order details.2. Click the Received button to indicate that the apples have arrived at the

warehouse. Click OK on a warning message.3. Notice that the Status of the order has changed.

Release the Order to the Distributor

Once the order is ready to leave the storage warehouse and it is ready to move on tothe distributor, the Storage role needs to release the order.

1. Click Released button. Click OK on a warning message.2. Observe Status changes as goods are released from the warehouse.

Change Role to Distributor

HOL-2088-01-EMT

Page 65HOL-2088-01-EMT

Page 66: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

1. Click in the role selection area of the DApp to select the Distributor role.

Move the Order from Storage to the Store

The distributor is now going to indicate that the apples have left and are on the way tothe super market.

1. Click the In Transit button. Click OK on the warning message.2. Confirm the change in Status to InTransit.

Change Role to Super Market

1. Click in the role selection area of the DApp to select the Super Market Role.

HOL-2088-01-EMT

Page 66HOL-2088-01-EMT

Page 67: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Verify that the order was Delivered to the Super Market

1. Use the scroll bar to scroll the screen until you can see both...2. ...the Status for the order and the Order Received actions.3. Indicate that the bushels of apples have arrived at the store by clicking the

Delivered button. Click OK on the blockchain warning message.4. Notice that the Status has changed again (it will be different from the screenshot

above).

HOL-2088-01-EMT

Page 67HOL-2088-01-EMT

Page 68: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

A Completed Supply Chain Order

You have successfully completed the entire supply chain flow. It moved from when thefarmer enters an order he or she has received, through the logistics chain, and finally towhen the super market acknowledges receiving the apples.

1. Through out the entire supply chain flow, regardless of your role, the order status(which was associated with the selected Contract ID) changed based on youractions.

2. As you moved through the process, the workflow was changing and eventuallywas successful.

3. At any point in the process, any consortium member is able to download theAudit Document.

HOL-2088-01-EMT

Page 68HOL-2088-01-EMT

Page 69: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Further Exploring the DApp.

Let's examine a few more features of the Supply Chain DApp and how it connects to theblockchain underneath.

1. Scroll the right pane of the window all the way down using the scrollbar.2. Notice the Recall Order action is greyed out. As it says, only the farmer or auditor

can recall an order.3. Click on the role area of the window once to change your role back to the farmer.

HOL-2088-01-EMT

Page 69HOL-2088-01-EMT

Page 70: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Recalling an Order and Examining Transactions

Let's examine a few more features of the Supply Chain DApp and how it connects to theblockchain underneath.

1. Notice that now that your role is Farmer again, ...2. ... you are now able to recall the order. This is also related to the access control

that we discussed before.3. On the bottom of that part of the screen you can see the entire list of

transactions and their respective status updates. These were created as youprogressed through the supply chain.

Switch to the Blockchain UI

HOL-2088-01-EMT

Page 70HOL-2088-01-EMT

Page 71: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

1. Click on the VMware Blockchain tab in Chrome.

Log Back in to the VMware Blockchain UI (If Necessary)

Depending on how long it took to complete the previous step, you may need to log backin to the Blockchain UI. If you are presented with the Login screen, perform the followingsteps.

1. Enter [email protected] for the Username2. Enter VMware1! for the Password3. Click Next

HOL-2088-01-EMT

Page 71HOL-2088-01-EMT

Page 72: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Viewing the Blockchain

When you return to the Blockchain UI, you may notice a number of new blocks andtransactions. The actual number may vary based on how you progressed through thelab:

1. You can see the number of new blocks...2. ... and examine the blocks in the UI here.3. You can see the number of new transactions...4. ...and examine the transactions in the UI here.

These were generated by your actions in the lab. Every time someone invokes actions indistributed applications, they are stored in transactions and appended as new blocks ina blockchain. You can see how certain transactions are progressing by observing theirNonce.

If you click on any those transactions created during this module and explore them, youshould note, that the To: field represents the contract ID in the Supply chain UI.

This concludes module 2.

HOL-2088-01-EMT

Page 72HOL-2088-01-EMT

Page 73: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

ConclusionIn this module you:

• Learned about the Supply chain use case and worked with a sample VMwareSupply chain distributed application (DApp)

• Explored a sample supply chain process - creating an order, shipping it, andperforming an audit.

You've finished Module 2

Congratulations on completing Module 2.

If you are looking for additional information on VMware Blockchain or the other topicsdiscussed in this module, try one of these:

• For the latest information on VMware Blockchain, visit https://blogs.vmware.com/blockchain.

• To try or get involved with the Concrod Open Source project, visit its GitHub siteat https://github.com/vmware/concord-bft

• To see the sample smart contracts and Supply Chain DApp VMware has created,visit our sample site on GitHub at: https://github.com/vmware-samples/vmware-blockchain-samples

• For more information on the what the research arm of VMware is doing withblockchain, please visit: https://research.vmware.com/projects/vmware-blockchain

Proceed to any module below which interests you most.

• Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic) Thismodule walks you through the basics of blockchain, explains how VMwareBlockchain differentiates itself, and walks you through the web interface.

• Module 2 - Using VMware Blockchain to Manage Supply Chains (30minutes) (Advanced) In this module you will deploy a smart contract. You will alsocreate, store and transfer assets using the smart contract. All of these actions willbe done in the context of a supply chain app that has been built on top ofVMware Blockchain.

• Module 3 - Zero Knowledge Proofs with QEDIT (30 minutes) (Advanced) Thismodule introduces you to the concept of zero knowledge proofs and shows whatan implementation of them would look like using QEDIT's partner solution on topof VMware Blockchain.

• Module 4 - Data Anchoring with Chainkit (15 minutes) (Advanced) Thismodule introduces you to the concept of data anchoring and shows what animplementation of it would look like using PencilData's partner solution calledChainkit, running on top of VMware Blockchain.

HOL-2088-01-EMT

Page 73HOL-2088-01-EMT

Page 74: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

• Module 5 - The Promise of Blockchain, a Fully Functional DApp (30minutes) (Advanced) This module will show you the user's point of view whenusing a web-based Dapp built on top of VMware Blockchain. This module will bedelivered via iSim.

How to End Lab

To end your lab click on the END button.

HOL-2088-01-EMT

Page 74HOL-2088-01-EMT

Page 75: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Module 3 - ZeroKnowledge Proofs with

QEDIT

HOL-2088-01-EMT

Page 75HOL-2088-01-EMT

Page 76: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

IntroductionWelcome to Module 3 - Zero Knowledge Proofs with QEDIT (30 minutes) (Advanced)

This Module contains the following lessons:

• Blockchain Privacy - This lesson is a brief reading only module that discussessome of the risks of a shared ledger system.

• An Example of Zero Knowledge Proofs - This brief reading only lesson outlines ananalogy to help you understand the concept of zero knowledge proofs.

• QEDIT Sample Supply Chain Distributed Application - This module walks youthrough how zero knowledge proofs can improve the sample supply chainapplication we looked at in the previous module.

HOL-2088-01-EMT

Page 76HOL-2088-01-EMT

Page 77: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Blockchain PrivacyThe supply chain use case in Module 2 involved one farmer, one warehouse, onedistributor and one supermarket. However, in a real-world scenario, such a supply chainwould likely involve dozens of actors. And since the blockchain is a shared ledger, adetailed record of commercial activity would be visible to all the participants using thenetwork. This level of transparency raises a serious privacy problem – no companywould want its competitors to know who they’re trading with, which goods they aresourcing, or what their purchase prices are. For the supermarket to remain competitive,its sensitive business data must be kept confidential. Privacy is also critical for otherblockchain use cases including cross-organization and cross-border payments, tradefinancing, securities trading, and clearing & settlement. So how is privacy preserved ona blockchain?

Zero-knowledge proof cryptography is the leading and most robust method forachieving transactional privacy. A zero-knowledge proof is a tool that enables one partyto prove to another party that they know certain information without revealing anyunderlying details about the data they’ve shared. For example, a zero knowledge proofcould be used to prove that someone has minimally sufficient funds in their bankaccount, without ever revealing their actual account balance.

VMware has partnered with QEDIT to offer a complete privacy-preserving blockchainservice. QEDIT is an enterprise asset transfer solution that provides a high-level API andseveral native SDKs for confidentially transferring ownership of an asset. Using zero-knowledge cryptography, QEDIT generates a proof that attests to the validity of anygiven transaction and this proof, rather than the transactional data, gets committed to ablock in VMware Blockchain. VMware’s partnership with QEDIT empowers enterprisecustomers to enjoy best-of breed transactional privacy without any expertise incryptography. Implementation is swift and seamless, allowing you to focus resources onyour application layer, business logic, and user experience.

To learn more about zero-knowledge proofs and how they can be used to achieveblockchain privacy please visit https://qed-it.com. The website includes productdocumentation, downloadable SDK libraries, developer guides, and more.

HOL-2088-01-EMT

Page 77HOL-2088-01-EMT

Page 78: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

An Example of Zero Knowledge ProofsHow can something be proven without sharing or revealing any underlying data? Let’sexplore a simple example to better understand this concept.

You are handed a standard deck of 52 playing cards and are asked to randomly set asidea card without revealing which card was picked. Let’s suppose you drew a red card.

You are then asked to prove the color of the card without revealing its suit or whether itis a face card or a number card. In order to do so, you show the other party all 26 blackcards from the deck, effectively proving that the card that you picked must be red. Thissimple game is an example of a zero-knowledge proof. It definitively proves your card isred without revealing any information other than this fact.

Each step in the above example could be achieved with equivalent techniques usingmathematics and advanced cryptography. Leveraging these cryptographic tools, QEDITperforms transactions by generating zero-knowledge proofs that attest to the validity ofa transaction while preserving privacy. Confidential transactional details like theidentity of the sender and receiver, as well as the value of the asset being transferred,are kept fully private.

HOL-2088-01-EMT

Page 78HOL-2088-01-EMT

Page 79: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

QEDIT Sample Supply ChainDistributed ApplicationPlease note, that due to blockchain immutability, some of the screen shots provided in auser manual, may not match exact view in VMware blockchain user interface

In this module we have extended the supply chain use case to include two farmers, twodistributors and a storage warehouse. Let’s see how the participants’ private businessdata is preserved using QEDIT.

Open Chrome

1. If it is not already open, please open the Chrome browser in Windows by double-clicking on the Google Chrome desktop shortcut.

Open the New Supply Chain Application

1. Click the QEDIT Supply Chain bookmark in the Chrome bookmarks bar.

As mentioned before, this is a modified version of the supply chain application you usedin Module 3. We assume some familiarity with that DApp in this module.

HOL-2088-01-EMT

Page 79HOL-2088-01-EMT

Page 80: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Examine the Secured Supply Chain DApp

1. This page displays the QEDIT Supply Chain app interface as viewed by anauthorized employee of a storage warehouse. The inventory currently includes1000 apples and no bananas or oranges.

2. Below the inventory, you can see a history of orders. Note that the stock of 1000apples was actually acquired in two separate transactions: 400 apples werereceived from Farmer 1 and 600 apples were received from Farmer 2. The detailsof all order transactions are private and only visible to the two parties involved inany particular transaction. In this example, the details of the order for 400 applesfrom Farmer 1 are known only to Farmer 1 and the storage warehouse; Farmer 2is not aware of the order placed by her competitor (Farmer 1). We refer to theorder transaction history as private data and will later see how this private data isused to prove the validity of the transaction.

3. Each order row includes a View Block link. Click on View Block for the order of400 apples to view the corresponding VMware Blockchain block that includes thetransaction.

HOL-2088-01-EMT

Page 80HOL-2088-01-EMT

Page 81: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Viewing a Secured Block

This block does not contain any private data. The fields:

1. Type,2. From,3. and Value...

are not available since this data is confidential. Most importantly, it should not be visibleto Farmer 1’s competitor (Farmer 2).

4. The To field only reveals the address of the smart contract being used, and notthe address of the recipient.

Instead of storing private data, the block contains a zero-knowledge proof attesting to(or proving) the validity of the transaction. Although other blockchain participants donot know who the sender or receiver are, or what good was shipped, they can be certainthat the sender was the owner of the asset (in this example, apples, bananas, ororanges), and that the asset was not double spent. In other words, it was not previouslysold to someone else. We refer to committed proofs on the blockchain as public dataand will later show how this public data is used to prove the validity of a transaction.

HOL-2088-01-EMT

Page 81HOL-2088-01-EMT

Page 82: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Viewing a Public Transfer

We saw that in a private transaction performed using QEDIT, the details of thetransaction are not visible to the Blockchain participants. In contrast, let's take a look ata transaction that was performed by calling a smart contract directly, not throughQEDIT, and see what private information is visible to all Blockchain participants.

1. Scroll down to see that one of the blocks in the blockchain is marked as a PublicTransfer.

2. Click on the disclosure triangle to view more details about the block.

Since the transactional details were made public, data is displayed in the

3. Type,4. From,5. and Value fields.

HOL-2088-01-EMT

Page 82HOL-2088-01-EMT

Page 83: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

All blockchain participants are able to view information about the sender, the recipient,and the amount and type of assets that were transferred.

Private Shipment of Items

Now let’s ship some apples from the storage warehouse (Storage 1) using a privatetransaction:

1. Click New Shipment.2. Select Apples from the Item drop down list.3. In the Amount field, enter 1000.4. From the To drop down list select Distributor 1.5. When you submit this order, you will see a short animation explaining the process

and the section below describes each step in greater detail. Click SendShipment to submit the order.

After the transaction is authorized, a zero-knowledge proof attesting to its validity isgenerated by QEDIT and then committed to a new block in VMware Blockchain. Thelatest order is now added to your private order history.

HOL-2088-01-EMT

Page 83HOL-2088-01-EMT

Page 84: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Proving a Transaction Using Zero-Knowledge Proofs

In the previous section you transferred 1000 apples from Storage 1 to Distributor 1. Inthis section we will explain the process of generating a zero-knowledge proof thatattests to the validity of that transaction.

The proving process begins by fetching the relevant private and public data related tothis transaction. In this case, the private data includes two separate orders for 400 and600 apples received from Farmers 1 and 2 respectively, as they are the sources for the1000 apples currently being transferred to Distributor 1. The public data includes thetwo relevant proofs on the blockchain attesting to the validity of these two ordersreceived from the farmers.

HOL-2088-01-EMT

Page 84HOL-2088-01-EMT

Page 85: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Zero-Knowedge Proof Logic Circuit

The private and public data are the input of a logic circuit that enforces all therequirements that must be met in a valid transaction. The logic circuit ensures that thefollowing requirements are all satisfied:

• The assets being transferred were previously received by the sender• The assets were not previously sent to anyone else by the sender• The aggregate amount of the transfer output is equal to the transfer input• The ownership of the assets was transferred to the receiver.

HOL-2088-01-EMT

Page 85HOL-2088-01-EMT

Page 86: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Zero-Knowedge Proof Logic Circuit (continued)

The calculation of the logic circuit results in a value of 1 or 0. A 1 means all therequirements of a valid transactions were met, and 0 means they were not. However,since the logic circuit contains private data that cannot be shared with others, QEDITremoves all the private data from the circuit calculation and replaces it with small zero-knowledge proofs that attest to the valid calculation of specific logic gates in the circuit.Using this circuit, the public data, and the small proofs of valid logic gate calculations, averifier can be certain that a transaction is valid.

HOL-2088-01-EMT

Page 86HOL-2088-01-EMT

Page 87: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Commiting the Proof to the Blockchain

Finally, the circuit, the public data, and the small proofs of valid logic gate calculationsare all serialized into one long string which is committed to a new block on theBlockchain.

The logic circuit shown previously has been dramatically simplified to explain the basicconcept behind QEDIT’s zero-knowledge proof scheme. In reality, these logic circuitscontain thousands of gates that enforce an elaborate set of constraints to provide asecure and robust transaction.

Transactional Privacy

Transactional privacy means that only the participants involved in a transaction areprivy to its details. So when the Storage Warehouse shipped 1000 apples to Distributor1, visibility into the details of the transaction were limited to the Warehouse andDistributor 1. Using QEDIT’s privacy scheme, let’s see how the information madeavailable to Distributor 1 varies from the information made available to its competitor(Distributor 2).

1. In the top right corner, click the Storage 1 user button. The user is changed toDistributor 1. Note that this switch is only possible within the lab. Normally, a

HOL-2088-01-EMT

Page 87HOL-2088-01-EMT

Page 88: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

single user would not have access to multiple competing roles in a distributedtrust environment.

Distributor 1's Point of View

1. The page now displays the QEDIT Supply Chain app interface as viewed byDistributor 1 and the inventory currently includes only the 1000 applestransferred from the Storage Warehouse.

2. Below the inventory you can see the order history of Distributor 1. The mostrecent order shows the 1000 apples that were shipped from the Storage 1Warehouse. Note that Distributor 1 does not know the source of these 1000apples or any details about how they were obtained. More specifically, they donot know that 400 apples were received from Farmer 1 and 600 apples werereceived from Farmer 2.

3. Click on the “view block” link to open the corresponding Concord block thatcontains the transaction for 1000 apples.

4. The proof in this block is public data that does not reveal any sensitive detailsabout the transaction.

HOL-2088-01-EMT

Page 88HOL-2088-01-EMT

Page 89: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Distributor 2's Point of View

1. In the top right corner, click the user button to toggle to Distributor 2,(Distributor 1’s competitor). The page now displays the QEDIT Supply Chain appinterface as viewed by Distributor 2.

2. The inventory is empty...3. ... and there is no order history so Distributor 2 is also not able to see any record

of the shipment of 1000 apples from the storage warehouse to Distributor 1.4. Distributor 2 can only see what everyone else with access to VMware Blockchain

sees - the zero-knowledge proofs that have been committed to the blockchain.Although Distributor 2 and other blockchain participants are not aware of theorder placed by Distributor 1 to the storage warehouse, they can be certain that avalid transaction took place.

QEDIT Enterprise Solution

QEDIT abstracts all the complex cryptography required for achieving privacy, andprovides a user-friendly, high-level API and Native client SDKs with support for severalprogramming languages to facilitate blockchain integration. For example, customers cansimply call a method to transfer an asset and QEDIT will automatically generate theappropriate zero-knowledge proof that attests to the validity of the transaction and

HOL-2088-01-EMT

Page 89HOL-2088-01-EMT

Page 90: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

commits it to the Blockchain. The solution can be implemented with minimaldevelopment resources and is suitable for cloud or on-premise deployments.

QEDIT Architecture

QEDIT’s architecture consists of the following components:

• A backend server that exposes the web API, orchestrates the generation andverification of proofs, and connects to the blockchain.

• A database that stores the details of the node’s transactions and copies of thezero-knowledge proofs committed to the blockchain. This data is used togenerate and verify new proofs.

• A messaging queue for communication between the different components.• Stateless proof workers that generate the zero-knowledge proofs. These workers

scale horizontally to deliver the required throughput rates of different use cases.

Using QEDIT, enterprise customers can expedite the development and rollout of privacy-preserving blockchain implementations and get back to focusing on their specificapplication layer, business logic and user experience. To learn more about how QEDITpreserves transactional privacy please download the whitepaper at https://qed-it.com.

This concludes Module 3.

HOL-2088-01-EMT

Page 90HOL-2088-01-EMT

Page 91: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

ConclusionIn this module you learned about:

• How despite the fact that blockchain can provide anonymity, it still needs to besecured to provide complete security.

• How Zero Knowledge Proofs can help provide that security.• How QEDIT's Zero Knowledge Proof solution could be integrated into a DApp, like

the sample supply chain DApp, to help further secure it.

You've finished Module 3

Congratulations on completing Module 3.

If you are looking for additional information on VMware Blockchain or the other topicsdiscussed in this module, try one of these:

• For the latest information on VMware Blockchain, visit https://blogs.vmware.com/blockchain.

• To try or get involved with the Concord Open Source project, visit its GitHub siteat https://github.com/vmware/concord-bft

• To see the sample smart contracts and Supply Chain DApp VMware has created,visit our sample site on GitHub at: https://github.com/vmware-samples/vmware-blockchain-samples

• For more information on the what the research arm of VMware is doing withblockchain, please visit: https://research.vmware.com/projects/vmware-blockchain

• For more information about QEDIT and thier Zero Knowledge Proofs, please visit:https://qed-it.com

Proceed to any module below which interests you most.

• Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic) Thismodule walks you through the basics of blockchain, explains how VMwareBlockchain differentiates itself, and walks you through the web interface.

• Module 2 - Using VMware Blockchain to Manage Supply Chains (30minutes) (Advanced) In this module you will deploy a smart contract. You will alsocreate, store and transfer assets using the smart contract. All of these actions willbe done in the context of a supply chain app that has been built on top ofVMware Blockchain.

• Module 3 - Zero Knowledge Proofs with QEDIT (30 minutes) (Advanced) Thismodule introduces you to the concept of zero knowledge proofs and shows whatan implementation of them would look like using QEDIT's partner solution on topof VMware Blockchain.

HOL-2088-01-EMT

Page 91HOL-2088-01-EMT

Page 92: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

• Module 4 - Data Anchoring with Chainkit (15 minutes) (Advanced) Thismodule introduces you to the concept of data anchoring and shows what animplementation of it would look like using PencilData's partner solution calledChainkit, running on top of VMware Blockchain.

• Module 5 - The Promise of Blockchain, a Fully Functional DApp (30minutes) (Advanced) This module will show you the user's point of view whenusing a web-based Dapp built on top of VMware Blockchain. This module will bedelivered via iSim.

How to End Lab

To end your lab click on the END button.

HOL-2088-01-EMT

Page 92HOL-2088-01-EMT

Page 93: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Module 4 - DataAnchoring

HOL-2088-01-EMT

Page 93HOL-2088-01-EMT

Page 94: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

IntroductionWelcome to Module 4 - Data Anchoring (15 minutes) (Advanced)

This Module contains the following lesson:

• Introduction to Data Anchoring and the PencilDATA Chainkit - This lesson is a briefreading only module that discusses the benefits and versatility that dataanchoring can bring to blockchain. It then introduces you to the PencilDATAChainkit data anchoring solution.

HOL-2088-01-EMT

Page 94HOL-2088-01-EMT

Page 95: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Introduction to Data Anchoring andPencilDATA ChainkitIn most cases, blockchains don’t replace databases. Blockchains enhance databaseswith new levels of data integrity. In the face of growing CyberSecurity threats,blockchain technology offers important new trust guarantees to Apps, Data & Logs.However, storing files, records, binaries or other large blocks of data on a blockchainnetwork can be inefficient. Data Anchoring is a solution to those inefficiencies. In thismodule we will describe how the Chainkit Service offers simple App, Data or Loganchoring on the VMware Blockchain.

What is Data Anchoring?

Data Anchoring, also called blockchain anchoring or signature anchoring, relies on theuse of hashing technology. Rather than storing a full digital asset on the chain, you storea unique hash for that digital asset on the chain, along with some method of identifyingthe asset you are trying to protect. At its most basic, that ID might be a filename or adigital claim ticket pointing to the hash and timestamp it was stored on the blockchain.Note that anchoring does not prevent tampering with the asset in question. Instead,anchoring offers very powerful tamper-detection for the asset, or equally high levels ofattestation that the asset is authentic. Coupled with best practices in data protection(such as frequent recovery points via snapshots, mirrors, backups & archives) dataanchoring raises the levels of system integrity in modern IT / OT environments to theirhighest possible levels.

HOL-2088-01-EMT

Page 95HOL-2088-01-EMT

Page 96: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Why Anchor Apps, Data, and Logs Now?

The most dangerous and popular Cyber Attack on a majority of organizations today isvia identity. By employing proven phishing techniques or merely purchasing resultingstolen credentials from the DarkWeb, most Cyber Criminals are able to walk in throughan organization’s front-door. Valid user credentials are immune to encryption protectionsfor Apps, Data & Logs. The scope and damage of such attacks is amplified when thatabused identity is an Administrative one, with root credentials to databases, networks,servers and other devices. The centralized RBAC administrative authority modelcurrently permits invisible tampering with any App, Datum or Log.

Blockchains offer a decentralized approach to App, Data & Log security. By anchoringthe integrity of any digital asset cryptographically on thousands of independent nodesin a blockchain network, the level of difficulty in tampering with these correspondingassets is raised proportionately, dramatically reducing the likelihood of invisibletampering often down to zero with the right blockchain implementation. Detection ofthese advanced threats now happens automatically in real-time, rather than months oryears later during a manual forensic audit.

HOL-2088-01-EMT

Page 96HOL-2088-01-EMT

Page 97: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The Chainkit Service, by PencilDATA

Chainkit offers "Chain of Custody as a Service" leveraging data anchoring over anumber of public & private blockchain solutions, including VMware Blockchain. To usethis service to protect the integrity of a digital asset, you must first register it with theChainkit service.

In this module, you will see how to protect the integrity of PowerShell files againstaccidental corruption or malicious tampering. To register a file with Chainkit, yourapplication must first generate its corresponding hash value, also sometimes referred toas a digital fingerprint.

Ideally, your application or dApp will generate a hash inside of your own systems. Forsecurity & privacy reasons, Chainkit only ever receives the digital fingerprint (hashvalue) from your app -- it never sees the actual data. To repeat, your original data neverleaves your system, network or firewall, ensuring complete compliance with strict datasecurity and privacy policies most organizations have in production.

Prerequisites to Anchor with Chainkit

Rather than a full blockchain SDK, with proper consideration for token wallets, smartcontracts, governance model, decentralization level, permissioning and performancecost trade-offs to consider, the Chainkit service publishes only a few simple RESTful APIsfor developers to adopt.

HOL-2088-01-EMT

Page 97HOL-2088-01-EMT

Page 98: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Sample Workflow - Send and Register

For this module, you will watch as we simulate a send-receive workflow. To ensureauthenticity or detect tampering, we will register the file being sent by first generatingits hash. Once your app has created this hash, it is registered with the VMwareBlockchain via Chainkit’s register() API. That hash is then stored across the blockchainnetwork along with the timestamp and other optional metadata. For all of thisinformation to be independently verified, the Chainkit Service returns a Claim Ticket orentityId to the registering App. The entityId is always associated with the digital assetit is protecting.

Sample Workflow - Receive and Validate

For the next part of our send-receive workflow, as shown in the upcoming video, the fileis question must be received with a guarantee of authenticity OR with clear detection oftampering. Regardless of the level of CyberSecurity threat, there should be no uncertainstate of integrity. In other words, you should always know whether your file received isauthentic OR has been tampered with - never any state in between.

The Chainkit service offers a verify() API which takes as parameters the entityId and afresh hash (generated independently by the verifier for security purposes) of thereceived file. Chainkit then compares the fresh hash to the original hash stored on theblockchain, as identified via the entityId. Chainkit definitively returns a True or Falseresult, depending on whether the hashes match or not.

File (PowerShell script) Anchoring Demo

To see a demo of Chainkit anchoring in action and get further explanation of how itworks, please watch the following video:

<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><ahref="http://www.youtube.com/watch?v=3286DLkgDZ8" target="_blank">Try watching this video on www.youtube.com</a>, or enableJavaScript if it is disabled in your browser.</div></div>

HOL-2088-01-EMT

Page 98HOL-2088-01-EMT

Page 99: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Using Chainkit to create Secure, Self-Verifying Scripts

There are many important Security & Compliance uses for the blockchain anchoringfunctionality described above. One of those uses is to leverage the Chainkit service toensure that administrative scripts you are using to manage and audit your vSphereenvironment have not been tampered with. This approach detects vSphere / vCentersystem tampering even if the Domain Administrator account has beencompromised! To see how this can be implemented and customized to your needs,please watch the following video.

<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><ahref="http://www.youtube.com/watch?v=WPfNuiPfk78" target="_blank">Try watching this video on www.youtube.com</a>, or enableJavaScript if it is disabled in your browser.</div></div>

HOL-2088-01-EMT

Page 99HOL-2088-01-EMT

Page 100: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

ConclusionIn this module you learned about Data Anchoring and how you can usePencilDATA's Chainkit implementation of it to secure digital assets likeadministrative scripts.

You've finished Module 4

Congratulations on completing Module 4.

If you are looking for additional information on VMware Blockchain or the other topicsdiscussed in this module, try one of these:

• For the latest information on VMware Blockchain, visit https://blogs.vmware.com/blockchain.

• To try or get involved with the Concrod Open Source project, visit its GitHub siteat https://github.com/vmware/concord-bft

• To see the sample smart contracts and Supply Chain DApp VMware has created,visit our sample site on GitHub at: https://github.com/vmware-samples/vmware-blockchain-samples

• For more information on the what the research arm of VMware is doing withblockchain, please visit: https://research.vmware.com/projects/vmware-blockchain

• Learn more about PencilData Chainkit at: https://chainkit.com/pencildata

Proceed to any module below which interests you most.

• Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic) Thismodule walks you through the basics of blockchain, explains how VMwareBlockchain differentiates itself, and walks you through the web interface.

• Module 2 - Using VMware Blockchain to Manage Supply Chains (30minutes) (Advanced) In this module you will deploy a smart contract. You will alsocreate, store and transfer assets using the smart contract. All of these actions willbe done in the context of a supply chain app that has been built on top ofVMware Blockchain.

• Module 3 - Zero Knowledge Proofs with QEDIT (30 minutes) (Advanced) Thismodule introduces you to the concept of zero knowledge proofs and shows whatan implementation of them would look like using QEDIT's partner solution on topof VMware Blockchain.

• Module 4 - Data Anchoring with Chainkit (15 minutes) (Advanced) Thismodule introduces you to the concept of data anchoring and shows what animplementation of it would look like using PencilData's partner solution calledChainkit, running on top of VMware Blockchain.

• Module 5 - The Promise of Blockchain, a Fully Functional DApp (30minutes) (Advanced) This module will show you the user's point of view when

HOL-2088-01-EMT

Page 100HOL-2088-01-EMT

Page 101: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

using a web-based Dapp built on top of VMware Blockchain. This module will bedelivered via iSim.

How to End Lab

To end your lab click on the END button.

HOL-2088-01-EMT

Page 101HOL-2088-01-EMT

Page 102: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Module 5 - The Promise ofBlockchain, A FullyFunctional DApp

HOL-2088-01-EMT

Page 102HOL-2088-01-EMT

Page 103: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

IntroductionWelcome to Module 5 - The Promise of Blockchain, a Fully Functional DApp (30 minutes)(Advanced)

This Module contains the following lessons:

• Ocean Plastic - This lesson is a brief reading only module that discusses theproblem of Ocean Plastic and the Dell family of companies commitment to helpwith this problem. This module does not contain any necessary technicalinformation, but does have useful background information.

• Introduction to the Dell Boomi Ocean Plastics DApp - This reading only lessonexplains the architecture of the DApp we will be examining. This DApp is not onlya good example of what can be done when combining various cutting edgetechnology, but it is also a good template to think about how other DApps shouldbe written.

• Putting it all Together, a Fully Functional DApp - This iSim based module gives youthe chance to work through the application and see how it works, including aview for how we have integrated ML/AI tools.

HOL-2088-01-EMT

Page 103HOL-2088-01-EMT

Page 104: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Ocean PlasticThis reading only lesson discusses why Dell has made various commitments to to helpreduce ocean plastic. There is no technical information in this lesson.

Sources of Ocean Plastics

Ocean plastics come in two main forms. Approximately 20% emanates from ocean-based sources such as fisheries and fishing vessels. The remaining 80% originates fromland-based sources, of which 75% comes from litter and uncollected waste. This isplastic waste that is discarded on the ground due to a lack of sanitation or wastecollection infrastructure. It washes directly into the sea via rivers or drainageways and may also be dumped directly into the ocean. The remaining 25% of the land-based sources is plastic which “escapes” from existing recycling or waste infrastructureand becomes ocean bound. For land-based sources of ocean plastics, the geographicinclusion zone is defined as within 50 km of the seashore.

The Concern about Ocean Plastics

The concern with the extraordinary volume of plastics reaching the oceans and theincreasing levels of plastic toxicity in the food chain are primary drivers forfinding economically and environmentally sound solutions to reducing ocean plastics.Small plastic pieces can be ingested by birds and other animals. Perhaps more troubling,micro-fractured plastics have now been found in plankton. As plastic is consumed bythese organisms and travels up the food chain, the plastic becomes concentrated inthe fatty tissue with an increasing effect of toxicity. The damage is not just confined tothe marine habitats, though: along plastic’s journey from land to waterway to the ocean,there are many opportunities to cause environmental harm. Discarded bottles cancollect water and become breeding grounds for mosquitos – increasing the spread ofvector-borne diseases like malaria, dengue and the Zika virus among others.

Dell's Commitment

In 2017, Dell teamed up with other organizations to reduce the quantity of plasticslittering our planet, congesting our waterways, killing marine life and infiltrating humanfood supply.

Dell’s contribution to this problem was to use in designated products 100% recycledplastics; 25% of which are Ocean-bound plastics. That is, plastics found littered near oramong waterways and that would eventually end up in oceans.

HOL-2088-01-EMT

Page 104HOL-2088-01-EMT

Page 105: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Ocean Plastic Supply Chain

An overview of how the OBP process works: can be summarized in 4 phases

1. Collect: littered plastics are collected from waterways, beaches, shorelines andcoastal areas. Then they are brought in to an aggregation facility. From the aggregationfacility, these plastics are sent to the next stage of the supply chain: the recyclingcenter.

2. Sort: At the recycling center the plastics sourced from the aggregation facility aresorted by type and shipped to manufacturing facilities for processing.

3. Clean & Process: when sorted plastics arrive at the manufacturing facility, they arecleaned, refined and mixed together with high-density polyethylene (HDPE) plastics inthe form of pellets. The mixed plastic pellets are melted, extruded and molded to thedesired specification—a notebook tray—provided by Dell. The manufactured product isthen shipped to Dell.

4. Assemble and Use: At the last stage of the supply chain, the notebook tray,notebook and peripherals are assembled and packaged at a Dell or Dell-authorizedfacility, ready to be shipped to the end user to enjoy her new notebook.

HOL-2088-01-EMT

Page 105HOL-2088-01-EMT

Page 106: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Introduction to the Dell Boomi OceanPlastics dAppIn 2019, a team of people within Dell, Dell Boomi and VMware began thinking about howtheir technologies could aid the Ocean Based Plastics (OBP) sustainability campaign. Toanswer questions like: can the source of ocean-bound plastics throughout the supplychain be proven? and What other problems could be solved as well?

It turns out that technology can play a significant role. And the blockchain andintegration in the supply chain is at the heart of it.

By using VMware Blockchain and the Boomi Platform:

1. It is possible to immediately verify the source of the ocean-bound plastic

2. It is possible to hold to account each actor within the supply chain to reduce the riskof corruption within the supply chain

3. A fast and scalable private blockchain can be created between participants.

This resulted in the creation of a Proof of Concept dApp that combines the power ofcutting edge technology such as ML/AI, IoT, iPaaS, and Blockchain.

Ocean Plastic Story with Boomi and VMware

So how does this all work together? Essentially there are four components:

1. the data source: the blockchain,2. code to write to the data source: the smart contract (in this case based on

Solidity),3. a way to interact with the blockchain and smart contract: a web application

HOL-2088-01-EMT

Page 106HOL-2088-01-EMT

Page 107: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

4. integration of these and any other resources (e.g. applications and web services).

This is a general architecture for most, if not all, Blockchain based solutions. They willhave a dApp that may interface with other systems, which then communicates withSmart Contracts which then manage the blockchain.

Why VMware Blockchain?

For each stage of the OBP supply chain, there is a recurring pattern such that each ofthe components that we mentioned need to be invoked:

• A human needs to interact with the blockchain at each stage by inputting specificpieces of information into the front end application

• Integration plays the essential role of connecting all of the endpoints like smartcontracts, the blockchain, and exposed services like AI, IoT and any other desiredbusiness system process calls. Any or all of these components could be part ofthe application logic—without the user even being aware—to execute the smartcontract and interact with the blockchain.

The OBP use case refers to a permissioned—or private—blockchain; meaning that onlythose participants involved with the OBP supply chain will have access to theblockchain. Not to say that OBP couldn’t implement a public blockchain—either at partsof the supply chain work flow or all of it—it absolutely could. But when speed, scale andprivacy are factors in an enterprise implementation of a distributed ledger technology, aprivate blockchain can have major advantage, today. Why? Because of several reasons,including:

1. Fewer participants in the consensus network and2. the implementation of VMware’s implementation of byzantine fault tolerance.

For now it is sufficient to say that the core concept of blockchain is the same regardlessof its accessibility: it’s distributed, immutable and auditable.

Another benefit of permissioned blockchains is that not all participants who have accessto the blockchain need to execute code within the smart contract. There are someparticipants who can simply read information from a blockchain without needing to writeto it. Consider the “bad actor” scenario: assume that a corrupt government official isinclined to extort a participant of a supply chain for his own personal benefit. Is it moreor less likely for him to engage in corruption if he knew that (1) all participants of atransport had completely transparent record of their shipment and (2), that hissupervisors had access to these transparent records?

Additionally, as a customer who wants to validate the actual source of the recycledplastic of her new product, she doesn’t need access to the smart contract itself; but maywant proof from the blockchain of the packaging provenance.

HOL-2088-01-EMT

Page 107HOL-2088-01-EMT

Page 108: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

The OBP Reference Architecture

The diagram above provides an outline of how the OBP dApp is architected. Note thatthis architecture can also be generalized for any type of supply chain pattern that wehave.

At the heart of this particular reference architecture is the Boomi Integrate Platform. TheBoomi Integrate Platform connects all of these endpoints. In this case, endpoints aredifferent callable features inside of a given pattern or in this case the OBP supply chain.

Those endpoints are comprised of application business logic that is connected to somesort of data source. In other words, these endpoints are each some kind of application orlogic and its data. Then that data becomes input as it transforms in some way or passesto the next endpoint in the process.

To move through all of these disparate endpoints, the OBP solution needs to be able towork though the business logic and the data transformations between each endpointuntil it arrives at an achievable outcome. The Boomi Integrate Platform connects all ofthese disparate endpoints.

Remember when talking about the general architecture of most blockchain applications,there are really three components that are necessary. First, there is a front-endapplication, so that there is some sort of interface to enter data. Next, there's the logicof the blockchain, the rules that bind different parties to agree on a particular set oftransactions that are going to occur. In the OBP solution, some of this logic is written as

HOL-2088-01-EMT

Page 108HOL-2088-01-EMT

Page 109: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Solidity based smart contracts, but it may also be contained in different parts of theapplication. Finally, there's the blockchain itself, which we think of as similar to adatabase; it's a data structure. Unlike normal databases, blockchain is immutable anddistributed in a way that it isn’t owned by a single entity.

In this case, the Boomi Flow Application provides the web front end that allows the userto enter data into the application. The Boomi Flow app then integrates with BoomiIntegrate to communicate with the other various end points such as VMware Blockchain.

Another integration can be seen in this example: One of the things the Boomi teamwanted the application to be able to do was to have the application decide whether acollected item was plastic or not. To accomplish this goal, they used Flow to build a frontend that allowed the user to upload a picture. Boomi Integrate then passed this imageto a Google AI engine via API, which then determined a level of probability whether theitem in the image was plastic or not. That probability is compared with a threshold, andif the probability exceeded the threshold, the item was considered plastic. BoomiIntegrate then made sure this was written to the VMware Blockchain. You will see thisparticular workflow in action in the next part of this module.

There were also a number of other components that could be integrated. For example,while it isn’t shown in this lab, IOT tracking could be incorporated. This might allow forkeeping track of where a shipment is or if a truck carrying a shipment was opened whileen route. An event like that might be important to track and record in the blockchain.This is represented in the bottom left of the architecture document. This IOT integrationcould potentially be based on VMware’s LIOTA and Pulse or other technologies.

The Yellow box on the bottom right side of the architecture represents the ability ofBoomi to integrate with various other systems such as ERP systems or other businessapplications. As mentioned before, the user’s interaction with all of these back-endsystems would be through the Flow interface, which you will see in the next part of thismodule.

HOL-2088-01-EMT

Page 109HOL-2088-01-EMT

Page 110: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

Hands-on Labs Interactive Simulation:Putting it all Together, A FullyFunctional DappThis part of the lab is presented as a Hands-on Labs Interactive Simulation. This willallow you to experience steps which are too time-consuming or resource intensive to dolive in the lab environment. In this simulation, you can use the software interface as ifyou are interacting with a live environment.

In this case, because the OBP dApp is a proof of concept app and is hosted on theInternet, it was not practical to do a live lab with it.

1. Click here to open the interactive simulation. It will open in a new browserwindow or tab.

2. When finished, click the “Return to the lab” link to continue with this lab.

The lab continues to run in the background. If the lab goes into standby mode, you canresume it after completing the module.

HOL-2088-01-EMT

Page 110HOL-2088-01-EMT

Page 111: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

ConclusionIn this module you learned about:

• The impact of Ocean Based Plastics (OBD)• The architecture of the OBP Dapp, including how Dell's Boomi integrates all the

componants.• Had the chance to go though an iSim that walked through the application in

various roles.

You've finished Module 5

Congratulations on completing Module 5.

If you are looking for additional information on VMware Blockchain or the other topicsdiscussed in this module, try one of these:

• For the latest information on VMware Blockchain, visit https://blogs.vmware.com/blockchain.

• To try or get involved with the Concord Open Source project, visit its GitHub siteat https://github.com/vmware/concord-bft

• To see the sample smart contracts and Supply Chain DApp VMware has created,visit our sample site on GitHub at: https://github.com/vmware-samples/vmware-blockchain-samples

• For more information on the what the research arm of VMware is doing withblockchain, please visit: https://research.vmware.com/projects/vmware-blockchain

• If you want to learn more about VMware Pulse IoT Center, please consider takinglab HOL-2047-01-ISM - Launch Your Machine Learning Workloads inMinutes on VMware vSphere.

• If you want to learn more about VMware Pulse IoT Center, please consider takinglab HOL-2089-01-EMT - VMware Pulse IoT Center.

Proceed to any module below which interests you most.

• Module 1 - Introduction to VMware Blockchain (30 minutes) (Basic) Thismodule walks you through the basics of blockchain, explains how VMwareBlockchain differentiates itself, and walks you through the web interface.

• Module 2 - Using VMware Blockchain to Manage Supply Chains (30minutes) (Advanced) In this module you will deploy a smart contract. You will alsocreate, store and transfer assets using the smart contract. All of these actions willbe done in the context of a supply chain app that has been built on top ofVMware Blockchain.

• Module 3 - Zero Knowledge Proofs with QEDIT (30 minutes) (Advanced) Thismodule introduces you to the concept of zero knowledge proofs and shows what

HOL-2088-01-EMT

Page 111HOL-2088-01-EMT

Page 112: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

an implementation of them would look like using QEDIT's partner solution on topof VMware Blockchain.

• Module 4 - Data Anchoring with Chainkit (15 minutes) (Advanced) Thismodule introduces you to the concept of data anchoring and shows what animplementation of it would look like using PencilData's partner solution calledChainkit, running on top of VMware Blockchain.

• Module 5 - The Promise of Blockchain, a Fully Functional DApp (30minutes) (Advanced) This module will show you the user's point of view whenusing a web-based Dapp built on top of VMware Blockchain. This module will bedelivered via iSim.

How to End Lab

To end your lab click on the END button.

HOL-2088-01-EMT

Page 112HOL-2088-01-EMT

Page 113: Table of Contents - VMwaredocs.hol.vmware.com/HOL-2020/hol-2088-01-emt_pdf_en.pdf · VMware Blockchain. • Module 4 - Data Anchoring(15 minutes) (Advanced) This module introduces

ConclusionThank you for participating in the VMware Hands-on Labs. Be sure to visithttp://hol.vmware.com/ to continue your lab experience online.

Lab SKU: HOL-2088-01-EMT

Version: 20191101-124032

HOL-2088-01-EMT

Page 113HOL-2088-01-EMT