93
Table of Contents Lab Overview - HOL-1988-01-EMT - VMware’s Blockchain Technology – Getting Started .2 Lab Guidance .......................................................................................................... 3 Module 1 - Lab Overview (30 minutes) ............................................................................. 9 Introduction........................................................................................................... 10 Introduction to Blockchain .................................................................................... 11 VMware UI Screens (User/Developer) .................................................................... 15 VMware UI Screens (Admin) .................................................................................. 26 Conclusion............................................................................................................. 38 Module 2 - Smart Contract Setup (30 minutes) ............................................................... 40 Introduction........................................................................................................... 41 Create a Smart Contract Using the UI .................................................................. 42 Working with Smart Contracts ............................................................................. 54 Smart Contract Creation - The Old Way ................................................................ 67 Conclusion............................................................................................................. 70 Module 3 - Transaction Management and Reliability (30 minutes) .................................. 72 Introduction........................................................................................................... 73 Managing Transactions with VMware's Blockchain Technology ............................. 74 VMware's Blockchain Technology's Resilience ....................................................... 79 Conclusion............................................................................................................. 91 HOL-1988-01-EMT Page 1 HOL-1988-01-EMT

Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Table of ContentsLab Overview - HOL-1988-01-EMT - VMware’s Blockchain Technology – Getting Started .2

Lab Guidance .......................................................................................................... 3Module 1 - Lab Overview (30 minutes) ............................................................................. 9

Introduction........................................................................................................... 10Introduction to Blockchain .................................................................................... 11VMware UI Screens (User/Developer).................................................................... 15VMware UI Screens (Admin) .................................................................................. 26Conclusion............................................................................................................. 38

Module 2 - Smart Contract Setup (30 minutes)............................................................... 40Introduction........................................................................................................... 41Create a Smart Contract Using the UI .................................................................. 42Working with Smart Contracts ............................................................................. 54Smart Contract Creation - The Old Way ................................................................ 67Conclusion............................................................................................................. 70

Module 3 - Transaction Management and Reliability (30 minutes)..................................72Introduction........................................................................................................... 73Managing Transactions with VMware's Blockchain Technology .............................74VMware's Blockchain Technology's Resilience....................................................... 79Conclusion............................................................................................................. 91

HOL-1988-01-EMT

Page 1HOL-1988-01-EMT

Page 2: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Lab Overview -HOL-1988-01-EMT -

VMware’s BlockchainTechnology – Getting

Started

HOL-1988-01-EMT

Page 2HOL-1988-01-EMT

Page 3: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

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's blockchain technology andsmart contracts.

Lab Module List:

• Module 1 - Lab Overview (30 minutes) (Basic) This module walks you through thebasics of blockchain, explains how VMware's blockchain technology differentiatesitself, and walks you through the web interface.

• Module 2 - Smart Contract Setup (30 minutes) (Advanced) In this module you willdeploy a smart contract. You will also create, store and transfer assets using thesmart contract.

• Module 3 - Transaction Management and Reliability (30 minutes) (Advanced) Thismodule allows you to explore transactions in VMware's blockchain technology.You will also test VMware's consensus layer resiliency by shutting down ablockchain node, executing a transaction, and building a new block on theblockchain.

Lab Captains: Anoop Jalan, Staff SE; Gintaras Pelenis, Sr. 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

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.

HOL-1988-01-EMT

Page 3HOL-1988-01-EMT

Page 4: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Technical feasibility and market demand will effect 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.

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.

HOL-1988-01-EMT

Page 4HOL-1988-01-EMT

Page 5: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

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.

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

<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-1988-01-EMT

Page 5HOL-1988-01-EMT

Page 6: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

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-1988-01-EMT

Page 6HOL-1988-01-EMT

Page 7: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

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-1988-01-EMT

Page 7HOL-1988-01-EMT

Page 8: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

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-1988-01-EMT

Page 8HOL-1988-01-EMT

Page 9: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Module 1 - Lab Overview(30 minutes)

HOL-1988-01-EMT

Page 9HOL-1988-01-EMT

Page 10: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

IntroductionWelcome to Module 1 - Lab Overview (30 minutes) (Basic)

This Module contains the following lessons:

• Blockchain Overview - Here you will learn the very basics of what blockchain isand the benefits of VMware's blockchain technology. Note that this lesson hassome basic introductory information on blockchain. If you are already familiarwith concepts like consensus and proof of work, feel free to skip ahead in thelesson to the section on how VMware's blockchain technology differentiates itself.

• VMware UI Screens (User/Developer) - Here you will get a tour of the GUI thatVMware has created for managing blockchain.

• VMware UI Screens (Admin) - Continuing the tour of the UI, with an emphasis onthe administration of the system, as opposed to the blockchain itself.

HOL-1988-01-EMT

Page 10HOL-1988-01-EMT

Page 11: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Introduction to BlockchainThis section will discuss how VMware's blockchain technology differentiates itself fromother blockchain solutions.

VMware Concord

As a modern enterprise public or private you need to work with others in a fast-paceddigital world. You want to rely on the integrity of cross-company workflows and datasharing at the velocity of today’s economy. You and your partners need a new kind ofshared digital trust infrastructure. VMware recently announced Concord, an open-sourced, highly scalable and energy-efficient engine for digital consensus and contractexecution. Concord can be used to power distributed trust infrastructures, includingblockchains. As a leader in enterprise-grade distributed management and securityproducts for over 20 years, VMware knows what enterprises need in their blockchainsolutions. Our vision for blockchain is to surround Concord’s consensus engine withadditional technologies and to realize enterprise grade services that will enable thetrusted information across organizational boundaries. Key elements of that blockchainvision include: customer hosting choice for managed data replicas (public or privatecloud), developer friendly interfaces (such as Ethereum’s contract language), audit andcompliance capabilities, enterprise-ready security and fault tolerance, and integrationwith other VMware enterprise products and services. With VMware digital trustinfrastructure, you and your partners will soon be able to work together inconfidence that your digital transactions can be trusted *and* verified.

Blockchain Overview

The first step in understanding blockchain is to understand what it is. A blockchain is away to decentralize trust by maintaining a replicated shared ledger. In a traditionalcentralized solution, data is stored in a central location and users must trust this centralauthority both for making progress, or adding transactions, and for not maliciouslymodifying the data. In some cases, it is impossible to find a single entity that all userstrust and who is guaranteed to never fail and never be compromised. In such cases,blockchain technology can help by decentralizing the trust to multiple nodes or multipletrust domains.

The shared ledger consists of transactions that are arranged into blocks. Each block isconnected, or chained, to the next block using a cryptographic hash function.Blockchains that support smart contracts allow writing and executing code on theirshared ledger.

There are various blockchain implementations with various approaches. One of the keydifferentiators between different blockchain solutions is whether they arepermissioned or permissionless. In a permissionless (or public) blockchain, anyonecan participate as a miner. In other words, anyone can participate in creating new

HOL-1988-01-EMT

Page 11HOL-1988-01-EMT

Page 12: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

blocks. In a permissioned blockchain, the participants are known and signed usingcryptography. In this case, you need appropriate permissions to participate in theprocess of consensus that creates new blocks.

Blockchain Consensus

Since a blockchain distributes trust among a non-colluding set of nodes or trustdomains, it needs to run some distributed protocol to guarantee that all nodes see thesame consistent view of the committed shared ledger. This protocol is often called aconsensus protocol. This is how nodes reach agreement on what transactions havebeen committed. There are two main ways that consensus can be achieved inblockchains:

Proof of Work and Longest Fork Wins (Nakamoto consensus) - This is how Bitcoin andEthereum currently reach consensus and what most people think of when they think ofblockchain. In this case, the process used to add transactions to the ledger is calledmining. Your ability to mine new blocks is based on your ability to solve a cryptographicpuzzle. The more cryptographic hash functions you can compute per second meansmore chances for you to be the winner by being the first to solve the puzzle. Trust isdistributed by assuming that the adversary controls only a small fraction of the totalhashing power.

Byzantine Fault Tolerance (BFT) - In a permissioned blockchain, one can use much moreefficient consensus protocols. These protocols can obtain much better throughput(transactions per second) and finality time (time until a command is committed). Forexample, Bitcoin obtains less than 5 transactions (tx) per second and 1 hour to finalize atransaction while BFT protocols can obtain hundreds or even thousands of tx per secondand may take less than a second to finalize. BFT protocols typically give each nodeequal voting power. Trust is distributed by assuming that the adversary controls only asmall fraction of the total voting power. Many blockchain solutions are based on PBFTor its new variants like Tendermint. VMware’s blockchain technology is based onConcord which is a new scalable Byzantine Fault Tolerant replication engine that obtainssignificantly better performance than PBFT and Tendermint in large scale deployments.

Learning More

HOL-1988-01-EMT

Page 12HOL-1988-01-EMT

Page 13: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Blockchain is a complex set of technologies working together to provide a set ofservices that facilitate a distributed trust infrastructure. Because of the complexity ofblockchain, it is not practical to build a primer on blockchain itself into this lab. Ratherthis lab will concentrate on how VMware’s blockchain technology differentiates itself invarious use cases. We highly recommend that anyone interested in blockchain doadditional research to better understand the concepts around it.

Key Differentiators of VMware's blockchain technology

VMware’s blockchain technology is built to help alleviate some of the complexity aroundmanaging blockchain so organizations can concentrate on building applications on topof that platform. It is a permissioned blockchain SaaS offering that leverages Concord, anew BFT replication engine that decentralizes trust in a scalable manner. There are sixmain differentiators in VMware’s blockchain technology:

1. It provides both a SaaS solution and the ability to mix SaaS with local replicas. (Notethat in the lab, we do not use the SaaS capabilities, and rely only on local replicas. Thisis not a supported configuration).

2. It is a multi-cloud solution with distributed trust, so that users are not locked in to asingle cloud provider.

3. Because it uses Concord, a scalable BFT engine, this consensus engine scales betterand has higher throughput than other forms of BFT and solutions based on mining.

4. It includes tools, such as a rich UI and API, to help you manage and audit yourblockchain.

5. This solution supports management of multiple blockchains, preventing you frombeing locked in to a single blockchain solution.

6. There is full support for Ethereum Contracts (EVM) so you can leverage your existingdevelopment work.

Use Cases

Uses cases for VMware blockchain technology include:

• Data dissemination (e.g. epidemiology, industrial research, finance)• Asset tracking (e.g. any kind of auditing)• Asset transfer (e.g. financial transactions, IP control)• Verifiable claims (e.g. identity management, voting)

HOL-1988-01-EMT

Page 13HOL-1988-01-EMT

Page 14: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Let's start our examination of VMware's blockchain technology by taking a look at one ofthe differentiators mentioned above: the GUI.

HOL-1988-01-EMT

Page 14HOL-1988-01-EMT

Page 15: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

VMware UI Screens (User/Developer)VMware's blockchain technology includes an intuitive UI and the back-end. This sectiongives an overview of the application developer section of this UI.

The user interface is designed to both share the current state of the entire network andenable individual users to trace specific blocks and transactions for tracking, auditing,troubleshooting or other purposes.

Note: Parts of this lab were written with pre-release code and have been pre-populatedwith data to make the screens more realistic than you would see in a small labenvironment. As such, some of your screens will not match exactly with the screenshotswe have supplied. The use of pre-release code also means that parts of the UI areplaceholders.

Launch Chrome

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

Launch the UI

1. Navigate to the VMware blockchain UI by clicking the VMware blockchaintechnologies bookmark.

HOL-1988-01-EMT

Page 15HOL-1988-01-EMT

Page 16: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Log in to the UI

At the Login screen:

1. Enter admin for the Username2. Enter VMware1! for the Password3. Click Next

HOL-1988-01-EMT

Page 16HOL-1988-01-EMT

Page 17: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

The Dashboard Tab

1. The first screen you should see is the Dashboard. If it isn't showing, click on theDashboard tab.

2. Note the graphical representation of node location on a map of the world. Thelight blue circles represent areas that have replicas. Larger circles representlarger numbers of nodes.

3. You also see a set of live metrics to gauge the activity and health of yourenvironment. Node health is a function of the proportion of active to inactivenodes along with node response rates across the network and indications ofmalicious activity.

4. Hover your cursor over the light blue circle in South America.5. Note that you get a pop up that shows you where the nodes are and if they are

healthy.

HOL-1988-01-EMT

Page 17HOL-1988-01-EMT

Page 18: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Viewing Node Status in the Dashboard Tab

1. Next, hover over the blue circle with a red outline that is in the north west cornerof the United States. The red outline indicates a problem.

2. In the pop-up, notice that the status is Unhealthy. You can easily identifyproblem areas in your implementation with this screen.

3. Now, scroll down to view a list of recent transactions.

Because we are running in a lab environment, it may take up to 10 minutes for all of theblockchain nodes to start. If you don’t see Transactions under the Dashboard menu tab,please wait a couple of minutes and refresh your browser. If you still do not seeTransactions after waiting, please request assistance.

HOL-1988-01-EMT

Page 18HOL-1988-01-EMT

Page 19: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

The Dashboard Tab (continued)

Further down the Dashboard screen, you will see:

1. A scrolling list of the recent transactions, with the most recent on top2. Click on the disclosure triangle (">") to see the details for one of those

transactions.3. By scrolling to the right, you will find that the table has additional columns

displaying the Nonce and Status (not pictured) of each transaction.

The Nonce is a sequence number. Think of it as a check number in a checkbook.

HOL-1988-01-EMT

Page 19HOL-1988-01-EMT

Page 20: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

The Node List

1. Click on the Node List tab to see information about the nodes participating inthis blockchain.

2. There is also a time series graph which depicts how busy your nodes are in termsof blocks being written across all of the nodes.

3. You will also see a set of live metrics to measure your general node health.4. Scroll down to see details about each participating node.

HOL-1988-01-EMT

Page 20HOL-1988-01-EMT

Page 21: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

The Node List (continued)

1. Further down the Node List tab you will see a list of all network nodes.2. Click on the host name for one of the nodes to get more detail on that node.

HOL-1988-01-EMT

Page 21HOL-1988-01-EMT

Page 22: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Node Details

This screen shows you a number of details for the node you clicked on, including but notlimited to:

1. Node Owners, a record of who is operating the node.2. Node Health calculated as a function of the proportion of active to inactive

nodes along with node response rates across the network and indications ofmalicious activity

3. If you were to scroll further down the page, you would be able to see a graphdepicting Network which shows the relationships of this node with others in thenetwork, Node Activity, a map showing the Node Location, and a list oftransactions with the newest on top.

HOL-1988-01-EMT

Page 22HOL-1988-01-EMT

Page 23: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Block List:

1. Click on Block List to open the Block List page. We will use the Block List pageoften as it shows committed blocks and the transactions within them. On thispage you can see the following:

2. A time based representation of Block Activity in the graph.3. A list of Blocks...4. ...with their corresponding Index...5. ...and the Hash for that block6. Block zero (0) shown in the screenshot is known as the genesis block. This is the

first block in a blockchain and does not have a predecessor. Note that dependingon the order you do the lab modules, you may see one or more blocks here, withthe newest on top.

HOL-1988-01-EMT

Page 23HOL-1988-01-EMT

Page 24: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Block Details

1. Click on the disclosure triangle (">") next to the genesis block (block with Indexvalue: 0)

2. Scroll down to see:3. The Parent Hash for that block (Note that for the genesis block the parent is all

zeros. This is because it is the first block and had no parent.)4. The Nonce for that block.5. The Size of that block.

HOL-1988-01-EMT

Page 24HOL-1988-01-EMT

Page 25: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Smart Contracts

1. Click on the Smart Contracts Tab. From this tab you can create and manage smartcontracts. You will learn more about smart contracts in Module 2 of this lab.

2. Note the area under System Admin. This part of the UI will change based on therole of the user logged in to the UI. In this case, the System Admin can manageBlockchains, Consortiums, Organizations, Kubernetes (not pictured), and Users(not pictured). We will examine this section of the GUI next.

HOL-1988-01-EMT

Page 25HOL-1988-01-EMT

Page 26: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

VMware UI Screens (Admin)VMware's blockchain technology consists of a front-end UI/API and the back-end. Thefollowing images show some of the UI screens.

Note: Parts of this lab were written with pre-release code and have been pre-populatedwith data to make the screens more realistic than you would see in a small labenvironment. As such, some of your screens will not match exactly with the screenshotswe have supplied.

Log out of the UI

In order to see the roles that a user can have, lets log out of the UI.

1. In the upper right corner of the screen, click the down arrow to the right ofadmin.

2. Click Log Out.

User Roles

HOL-1988-01-EMT

Page 26HOL-1988-01-EMT

Page 27: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

There are a number of roles a user can have when they login. To understand these roles,you must understand two entities within blockchain implementations.

• 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 that, let's look at the possible roles you can have.

1. In the Login window, click on the down arrow on the same line as Systems Admin.2. This is the list of available roles. These roles are (from the bottom):

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.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.

HOL-1988-01-EMT

Page 27HOL-1988-01-EMT

Page 28: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Log in to the UI

At the Login screen:

1. Enter admin for the Username2. Enter VMware1! for the Password3. Leave the role as Systems Admin4. Click Next

HOL-1988-01-EMT

Page 28HOL-1988-01-EMT

Page 29: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Mangement Menu Items:

1. On the lower-left side of the screen notice where it says System Admin.

This is the part of the menu where you would go to perform a number of administrativetasks for your blockchain environment. Because we are logged in as a Systems Admin,we see all the management options. If we had logged in with one of the other roles, itwould have limited the items we see on this menu. Note that while the menu items maychange, the title of the menu does not. This is because it does not refer to a specificrole, but rather to the fact that this is where the system's administrative tools are. Wewill now look at two key sections of this menu.

HOL-1988-01-EMT

Page 29HOL-1988-01-EMT

Page 30: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Organization Management

1. Click on the Organizations item in the menu. From this screen you can managethe organizations in your blockchain implementation.

2. Click on the Action menu to see that this is where you would go to Add orImport an org.

3. Click Add Org.

HOL-1988-01-EMT

Page 30HOL-1988-01-EMT

Page 31: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Adding an Organization

From this pop-up window, we would be able to add a new organization.

1. Click on the down arrow on the Type line to see the types of orgs you can add.2. We are not going to add an Org at this time, so just click Cancel.

HOL-1988-01-EMT

Page 31HOL-1988-01-EMT

Page 32: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Importing an Organization

1. Back in the Organization Management Window, click Actions again.2. This time select Import Org.

Importing an Organization (continued)

HOL-1988-01-EMT

Page 32HOL-1988-01-EMT

Page 33: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

1. This screen would allow you to import an org by uploading the appropriatecryptographic entities. We will not be importing an org at this time, so just clickCancel.

Deleting an Organization

1. If there were organizations defined, you could check the box in the first columnon the table heading to select all the Orgs.

2. Or you would be able to check a checkbox next to individual Orgs to manage oneor more selected Orgs.

3. Click on the Action menu...4. ... and notice that this is where you could delete the selected Orgs.

HOL-1988-01-EMT

Page 33HOL-1988-01-EMT

Page 34: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

User Management

1. Click on the Users item in the menu. This screen will allow you to manage usersand what they can do in your blockchain implementation. From here you can seea number of details about the users in your implementation.

2. Click on the Actions menu and3. Select Add User

HOL-1988-01-EMT

Page 34HOL-1988-01-EMT

Page 35: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Adding Users

From this screen you would be able to create a new user for helping to manage yourimplementation.

1. Click on the down arrow next to Role to see the possible roles for a user.2. We will not be creating a new user so click on Cancel.

HOL-1988-01-EMT

Page 35HOL-1988-01-EMT

Page 36: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Managing Users

1. Click on the box in the first row of the table to select the first user.2. Click on the Actions menu and note that the Edit User and Delete User items

are no longer greyed out3. Click on Edit User

HOL-1988-01-EMT

Page 36HOL-1988-01-EMT

Page 37: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Editing Users

1. If we had wanted to make changes to the selected user's account, this screenwould allow you to do that. We will not be making any changes to this account, sojust click Cancel.

This concludes the first module of VMware's blockchain technology lab.

HOL-1988-01-EMT

Page 37HOL-1988-01-EMT

Page 38: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

ConclusionIn this module you:

• Learned about some of the basics around blockchain.• Learned about the two parts of the GUI that VMware's blockchain technology

provides.• Took a tour of that interface.

You've finished Module 1

Congratulations on completing Module 1.

If you are looking for additional information on blockchain, try one of these:

• Go to http://www.vmware.com/blockchain• Or use your smart device to scan the QRC Code.• You can also download the VMware blockchain fling from:

https://labs.vmware.com/flings/blockchain-on-kubernetes

Proceed to any module below which interests you most.

• Module 2 - Smart Contract Setup (30 minutes) (Advanced) In this module you willdeploy a smart contract. You will also create, store and transfer assets using asmart contract.

• Module 3 - Transaction Management and Reliability (30 minutes) (Advanced) Thismodule allows you to explore transactions in VMware's blockchain technology.You will also test VMware's consensus layer resiliency by shutting down ablockchain node, executing a transaction, and building a new block on theblockchain.

HOL-1988-01-EMT

Page 38HOL-1988-01-EMT

Page 39: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

How to End Lab

To end your lab click on the END button.

HOL-1988-01-EMT

Page 39HOL-1988-01-EMT

Page 40: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Module 2 - SmartContract Setup (30

minutes)

HOL-1988-01-EMT

Page 40HOL-1988-01-EMT

Page 41: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

IntroductionWelcome to Module 2 - Smart Contract Setup (30 minutes) (Advanced)

This Module covers the following lessons:

• Create a Smart Contract Using the UI - Here you will use VMware's blockchaintechnology's user interface to create a Smart Contract.

• Working with Smart Contracts - Here you will add an asset, transfer an asset andvalidate ownership of the asset, using sample functions of the Smart Contract wecreated.

• Smart Contract Creation - The Old Way - Here you will learn how Smart Contractscan be created using the CLI.

HOL-1988-01-EMT

Page 41HOL-1988-01-EMT

Page 42: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Create a Smart Contract Using the UISmart contracts, also called digital contracts, self-executing contracts, or blockchaincontracts, are code that can help you handle the exchange of assets. This is without theuse of a middle man. For example, one could set up a smart contract that says ifsomeone pays the seller more than the equivalent of $1,000, it will transfer ownershipof a used car over to that person.

VMware's blockchain technology provides full support for Ethereum Virtual Machine(EVM) smart contracts. Contracts are typically written in a high level language likeSolidity and then compiled into EVM bytecode.

The EVM is the runtime environment used for Ethereum’s smart contracts, and shouldnot be confused with virtual machines that are run by vSphere.

Being completely isolated, EVM based smart contracts run the code without any accessto the network, filesystem or any other process. Because of this, smart contracts havelimited access to external resources.

Solidity is a contract-oriented, high-level language for implementing smart contracts. Itwas influenced by C++, Python and JavaScript and is designed to be compiled in EVMBytecode.

The smart contract we are going to use in the lab is already written and saved asAssetHandler_Solidity_Contract.sol file on the desktop. In this lab we will be using the UIfor VMware's blockchain technology to use the smart contract.

Launch Chrome

If the VMware's blockchain UI is already open, skip the next few steps until you get toManaging Smart Contracts.

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

HOL-1988-01-EMT

Page 42HOL-1988-01-EMT

Page 43: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Launch the UI

1. Navigate to VMware's blockchain UI by clicking the VMware blockchaintechnologies bookmark.

Log in to the UI

At the Login screen:

1. Enter admin for the Username2. Enter VMware1! for the Password3. Select the Org Developer role from drop down menu4. Click Next

HOL-1988-01-EMT

Page 43HOL-1988-01-EMT

Page 44: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Managing Smart Contracts

Lets begin by moving to the Smart Contracts portion of the user interface:

1. Click on the Smart Contracts tab on the menu bar. This window is where we cancreate new contracts and work with contracts we have created.

2. Click on Create button

HOL-1988-01-EMT

Page 44HOL-1988-01-EMT

Page 45: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Create a Smart Contract

You will be presented with a new Create Contract window, which will provide you withseveral fields to create a new Smart Contract:

1. From - This field is the account address of the user deploying the contract.2. Contract ID - This field represents the name of a created contract (for example:

"Selling a Used Car", "Selling an Air Superiority Fighter", "leasing 2 Bedroom Flatin Central London, UK", "Buying a stock" or something else that describes thepurpose of the contract.)

3. Version - Due to the nature of blockchain technology, and its immutability,developers may deploy different versions of the same or slightly changed SmartContract code. The version string helps to differentiate between these updates.

4. File - This will open the File Explorer window, where you will be able to select andupload your Smart Contract, written in Solidity. For this lab, we will be using theAssetHandler_Solidity_Contract.sol contract, which you will find on your desktop.

Open an Additional Chrome Tab

Lets create a new Smart Contract in which we will be adding and transferring an assetfrom one owner to another. For demo purposes we will be using "House".

HOL-1988-01-EMT

Page 45HOL-1988-01-EMT

Page 46: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

1. To create a Smart Contract first we need to get the address of the Entity who isinitiating the Smart Contract. Click on the New tab button.

Connect to the VMware Blockchain UI

1. Click on the VMware blockchain technologies bookmark in Google Chrome

Select a Block to Gather Data From

1. Click on the Block List tab, on the left side menu.2. Click on the block with Index of 0.

Because we are running in a lab environment, it may take up to 10 minutes for all of theblockchain nodes to start. If you came directly to Module 2 and you don’t see Blocksunder the Block List menu tab, please wait a couple of minutes and refresh yourbrowser. If you still do not see Blocks after waiting, please request assistance.

HOL-1988-01-EMT

Page 46HOL-1988-01-EMT

Page 47: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Examine the Genesis Block

You will be presented with all the transactions recorded on block zero, which is theGenesis Block. The Genesis Block is the first block of any blockchain solution, and isconfigured when the blockchain is initially deployed. It is unique in each blockchain, inthat it does not reference a previous block.

1. Notice the Parent Hash and Nonce are both all zeros, indicating that this is theGenesis block.

2. Click on the first Transaction in the list

Examine Transaction Details

HOL-1988-01-EMT

Page 47HOL-1988-01-EMT

Page 48: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

You will be presented with transaction details. Here you will see:

1. The transaction hash value. Think of this as the ID of the transaction.2. The transaction status, which indicates whether it was successfully created and

recorded on the blockchain3. The transaction hash value again4. From is which user account sent the transaction. Zeros are here because this was

not user-submitted.5. To is the user account or smart contract that this transaction was sent to.6. Value is the amount of the blockchain's cryptocurrency that was transferred from

the "From" account to the "To" account or contract.7. Nonce is the order number of this transaction. This number is incremented each

time an account sends a transaction.8. Data: (not shown) Data that was sent to the smart contract. This will be the code

of the smart contract itself for the contract-creation transaction, or the argumentsfor the contract's functions otherwise.

Copy an Address to use in our Contract

1. Select and right click on the value in the To field.2. Click Copy so that we capture hash value from To field.

This hash will act as our source address in the Smart Contract we create. We are usingthis "To" address, because you must "pay" for the deployment of the smart contract.The genesis block granted each of these accounts some starting Ether (Ethereum'scryptocurrency), so they have the ability to pay for the contract deployment.

Please do not close this tab, as you will be using it later through out this module

HOL-1988-01-EMT

Page 48HOL-1988-01-EMT

Page 49: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Enter Contract Information

1. Click on Previous Tab, to return to Smart Contract page2. Click in the from From field, and Paste previously copied account address3. Click in Contract ID field and type House4. Click in Version field and type 15. Click on the Choose File button

HOL-1988-01-EMT

Page 49HOL-1988-01-EMT

Page 50: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Select the Smart Contract File

1. Select AssetHandler_Solidity_contract.sol file from Dektop. (You can selectDesktop from left side menu)

2. If due to the desktop resolution you can not see the file, please use the scrollbar, to scroll down and locate it.

3. Click Open

HOL-1988-01-EMT

Page 50HOL-1988-01-EMT

Page 51: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Finish Creating the Contract

1. Click on the Create button

View the New Smart Contract

1. You can now see that you have successfully created a new Smart Contract.Contract deployment or any other action is a transaction on a blockchain.

Now lets validate that this transaction was successful.

HOL-1988-01-EMT

Page 51HOL-1988-01-EMT

Page 52: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Validate the Creation of the Smart Contract

1. Return to previous tab, which we used to copy the block address2. Click on the Block List tab

HOL-1988-01-EMT

Page 52HOL-1988-01-EMT

Page 53: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Examine the Newly Created Block

Notice that after you created a new Smart Contract there is a new block in theblockchain.

1. Lets investigate it. Click on the newest block, it will probably have an Index valueof 1, unless you did the modules out of order.

Examine the Newly Created Transaction

1. Click on the disclosure triangle (">") to expand the transaction details.2. On the Status line, observe that the successful creation of a Smart Contract

results in a successful transaction, which then results in the creation of a newblock on the blockchain.

3. Notice that the From address is the one we copied and pasted a few steps ago.4. The Contract Address shows the address at which the contract is now available.

Please do not close this tab, as you will be using it later through out this module

HOL-1988-01-EMT

Page 53HOL-1988-01-EMT

Page 54: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Working with Smart ContractsYou have successfully created a new Smart Contract, which enables users ororganisations to create and transfer assets between accounts. In our lab we use a SmartContract which exposes 3 functions to users:

1. addNewAsset - this function adds assets to a specific user or organisation2. ownerOf - this function allows you to validate if the owner of a smart contract has

a specific asset in its account3. transfer - this function allows you to execute the smart contract and transfer

assets from one account to another.

Since smart contracts are automatically executed code, we can perform all thosefunctions without the use of a middle man.

In this lesson you will work with all 3 functions:

• First you will add a new asset called "House" to the Smart Contract owner.• Second you will validate if the account has the "House" asset.• Third you will execute the Smart Contract we deployed to transfer the "House"

from the original account to a new owner.• And finally we will validate that the asset was successfully transfered.

HOL-1988-01-EMT

Page 54HOL-1988-01-EMT

Page 55: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Return to the Smart Contracts View

1. Click on the First tab in Chrome, where you created the Smart Contract.2. Click on the Smart Contracts tab3. Click on your newly created Smart Contract

Add a New Asset Using a Smart Contract

HOL-1988-01-EMT

Page 55HOL-1988-01-EMT

Page 56: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

We need to confirm the version of the smart contract we want to work with, even ifthere is only one version.

1. Click on Select Version2. Select version 1

Explore Smart Contract Details

You will be presented with Smart Contract details

1. This includes the Smart Contract Name, Owner, Version and the Address ofthis particular Smart Contract

2. You will also see three buttons that allow you to to download Source Code,Bytecode and Metadata for the Smart Contract, respectively.

3. You will also see the functions that this Smart Contract offers.4. Click on the down arrow in the Function field.5. Select the AddNewAsset function.

HOL-1988-01-EMT

Page 56HOL-1988-01-EMT

Page 57: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Add a New Asset to the Smart Contract

You may need to scroll down the page to view all the fields fully.

Now lets add an asset to the current Smart Contract owner

1. Select the entire Owner hash value, and copy it. It should be similar to:0x0ae0d7d9db3b6c7da28652e47bbc1e299ef4555c. The entire Owner hash isnot shown in the UI, so please make sure you capture the entire value. You candouble click the value or make sure as you drag across you capture the entirevalue.

2. Click on the Gas field, and enter 1. Smart contract execution is metered. Youmust specify how much 'energy' you are willing to pay to run this transaction onthis smart contract.

3. Click on the From field and paste the owner value we had copied earlier. This isthe user account that is sending this transaction to be recorded.

4. Click on the Account field and and again paste the owner value we had copiedabove. This is the user account that we want to mark as the owner of this newasset.

5. Click on the Asset field and enter House. This is the name of the asset.6. Click Send. By clicking send button, you will create a new transaction, create a

new block on blockchain, and record this transaction in the new block.

HOL-1988-01-EMT

Page 57HOL-1988-01-EMT

Page 58: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Confirm the Creation of the Transaction

1. You will see that the new transaction was created, which added "House" as anasset to the Smart Contract owner. Lets validate this transaction.

The transaction hash may be different, in our example it is:0x8c70164ced4d997b5b558d7a925eeac238077f79218fc2167f15206a4519b031

HOL-1988-01-EMT

Page 58HOL-1988-01-EMT

Page 59: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Validate the Transaction

1. Click on the second tab in Chrome.2. Click on Block List.3. Click on the newest block on the top of the list. If you are doing the modules in

order, it will be the one with an Index of 2.

HOL-1988-01-EMT

Page 59HOL-1988-01-EMT

Page 60: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Compare the Hashes

1. Click the down arrow next to the transaction to expand transaction details2. You can compare the Hash value with the hash value we saw in the green box in

the previous tab (you can double check, by switching between tabs.)3. The Input value is an encoding of the arguments we used in the other tab: the

function to be called, the owner of the asset, and the asset name (in hex).

At this point, you have successfully created a Smart Contract, added a new asset called"House", and recorded this transaction on a new block.

HOL-1988-01-EMT

Page 60HOL-1988-01-EMT

Page 61: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Validating Ownership of an Asset

1. Click on the first tab in Chrome.2. Click on Smart Contracts in the menu bar.3. Click on the Smart Contract with the Contract ID of House.

Select the Smart Contract Version

HOL-1988-01-EMT

Page 61HOL-1988-01-EMT

Page 62: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

1. Click on the down arrow next to Select Version.2. Select version 1

Validate who owns the Asset Named "House"

Now you will use the ownerOf function to validate which account has ownership of anasset named "House"

1. Select the Owner hash value and copy it. Again, the entire Owner hash is notshown in the UI, so please make sure you capture the entire value. You candouble click the value or make sure as you drag across you capture the entirevalue.

2. Click on the down arrow on the Functions line, and select ownerOf3. Click in the Gas field, and enter 1

HOL-1988-01-EMT

Page 62HOL-1988-01-EMT

Page 63: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

4. Click in the From field and paste the Owner hash value we copied above. In thislab we use a simplified example, where the same account that owns an asset isquerying for the ownership of that asset, but in a real life scenario any externalaccount or application may check specific account assets. For example, when onewants to pay with crypto currency, the smart contract/seller needs to ensure thatthe buyer owns a certain amount of currency in its wallet.

5. Click in the asset field, and type House.6. Click on the Call button. By clicking the Call button, the Smart Contract will only

read data from the blockchain, and will not generate a new transaction or block.This is different from the Send button which does generate a new transaction andblock. In this case, we only need to know which account owns the asset namedHouse.

The Preview button will show you the JSON that would be created by this command.This can be useful to developers building an application on top of VMware Blockchain.

View the Output of the ownerOf Function

1. After calling ownerOf function in the Smart Contract, the function returns a hashvalue which is the same as...

2. ... the hash of the owner with leading zeroes added (those zeroes are added bySmart Contract code)

This validates, that the current owner, has an asset named "House" in his or heraccount.

HOL-1988-01-EMT

Page 63HOL-1988-01-EMT

Page 64: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Transferring an Asset

Now lets transfer the asset "House" from the current owner to a new owner

1. Select the Owner hash and copy it. The entire Owner hash is not shown in theUI, so please make sure you capture the entire value. You can double click thevalue or make sure as you drag across you capture the entire value.

2. Click on the down arrow next to Functions, and select transfer3. Click in the Gas field and type 14. Click in the From field and paste the owner hash value which we copied above.5. Click in the from field in the Function Parameters section and paste the owner

hash value which we copied above.6. Click in the to field and paste the owner hash value which we copied above.

IMPORTANT - After you paste the value, select this field and using the keyboardmove the cursor to the end of the hash and change the last letter or number adifferent, valid Hex character (Numbers from 0 to 9, or letters from a to f). Thiswill create a new unique hash, which will represent the new owner. The to fielddoesn't have to have an address that already exists, unlike the from field.

7. Click in the asset field and type House.8. Click the Send button.

HOL-1988-01-EMT

Page 64HOL-1988-01-EMT

Page 65: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Verify that the Function Completed Successfully

1. After you hit the send button, a new transaction and a new block were created.The Asset "House" was transfered from the old owner to a new owner.

Lets validate the new owner of asset "House"

HOL-1988-01-EMT

Page 65HOL-1988-01-EMT

Page 66: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Validating the Transfer of an Asset

1. Select the Owner hash value and copy it, making sure you capture the entirevalue.

2. Click on the down arrow next to Functions, and select the function ownerOf3. Click in the Gas field, and enter 1.4. Click in the From field and paste the owner hash value, which we copied above.

Note that this address is just the address making the inquiry. It doesn't have toown the asset.

5. Click in the asset field, and type House6. Click on the Call button.7. Pay attention to the hash value returned in the green box. The returned hash

value should have same hash value as the owner, with the last characterchanged, and should reflect the To field hash value in the previous exercise(transfer of assets)

In this module, we have successfully created a new Smart Contract, and performed anumber of function calls:

• We added a new Asset to an account• We validated the ownership of that Asset• We performed an Asset transfer from the original account to a newly created

account• We then validated the new ownership of the Asset

HOL-1988-01-EMT

Page 66HOL-1988-01-EMT

Page 67: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Smart Contract Creation - The Old WaySmart contracts are automatically executed code that can help you handle theexchange of assets. This is without the use of a middle man. For example, you could setup a smart contract that says if someone pays you more than the equivalent of $1,000,you will transfer ownership of a used car over to that person. Smart Contracts take thebusiness rules or legal language around this exchange and build them into code on theblockchain. Smart Contracts are also called digital contracts, self-executing contracts,blockchain contracts, or chain code (HyperLedger).

In the past, implementing and managing smart contracts was complicated and errorprone. Just to provide context, we will walk you through the process here, but we will notactually be completing these steps. This lesson is completely optional. Feel free to skipto the end of the lesson.

Hash Definitions

Before we discuss creating smart contracts, let's define some of the hashes that you willsee throughout the process. Each hash identifies a different thing, and they are notinterchangeable.

• Account addresses: these will have 40 hex digits after the "0x". These namespecific users of the blockchain. They are based on the public key of the account.This may appear in "from" or "to" fields of a transaction.

• Contract addresses: these look exactly like account addresses, because theyare. They share the same namespace, and (as an exception to what was saidabove) *can* be used almost anywhere an account address can be used. Acontract is an account with code attached. This will only appear in a "to" field, ora "contract address" field of a transaction.

• Transaction hashes: these will have 64 hex digits after the "0x". This is a hashof the contents of the transaction. This will not be used for anything other thanlooking up the contents of the transaction.

• Block hashes: these will also have 64 hex digits after the "0x". This is a hash ofthe contents of the block (the transactions). This will not be used for anythingother than looking up the contents of the block.

Compile the Smart Contract

The first step would normally be to compile the smart contract, like any other piece ofcode to be executed. This would require a tool like Solidity for Ethereum contracts, andthe command would look something like this:

solc AssetHandler.sol --bin --abi -o target

HOL-1988-01-EMT

Page 67HOL-1988-01-EMT

Page 68: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Get the contract ABI in a variable

Once the smart contract was complied, if you wanted to use it with Ethereum, youwould need to use the geth console for Ethereum to deploy that contract. When youcompiled the contract, it would have created an AssetHandler.abi file and placed it in afolder named "target" (as specified in the command above). You would then have tocopy this file's contents into the AssetHandlerABI variable creation command and issueit from the geth console.

The command below would take the variable definitions from our compiled contract andput them in into our new handler.

varAssetHandlerABI=eth.contract([{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"asset","type":"string"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"asset","type":"string"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"asset","type":"string"}],"name":"addNewAsset","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}])

Get the contract bytecode in a variable

The compilation step would have also created an AssetHandler.bin file in the "target"folder. This is the actual contract code that we want to be executed when we call anymethod on that contract. You would have to copy its contents (quite a bit of text), anduse them to issue the var command from the geth console. A truncated version of anexample of that command might look like:

var AssetHandlerBytecode='0x03405A2 - rest of file contents here'

Get the deployment configuration in a variable

Deploying a contract is a transaction, which requires an account. This account isrepresented by an account ID. In Ethereum, to make things easier, we can also use"eth.coinbase" (without quotes) instead of supplying the actual account ID (which ispretty long). Think of eth.coinbase as a convenient name for the user loged into thisconsole.

The data field in the next command provides the actual bytecode of the contract thatwe want to create. In the geth console you might then have to run something like:

var deploy={from:"0x262C0D7AB5FFD4EDE2199F6EA793F819E1ABB019", data:AssetHandlerBytecode,gas:2000000}

The from field contains the account ID in the example above. The gas is how much youare willing to pay to execute this transaction.

HOL-1988-01-EMT

Page 68HOL-1988-01-EMT

Page 69: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Initiate a transaction for contract creation

This command will create a new transaction and output the ID of that transaction on theconsole.

var AssetHandlerPartialInstance=AssetHandlerABI.new(deploy)

After the transaction is committed to the blockchain (via mining in Ethereum or viaConcord), it will be ready to use.

As you can see, the process of compiling and deploying a new smart contract iscomplicated and prone to error due, in part, to the long commands that need to beentered. Smart Contract management via the GUI provided by VMware's blockchaintechnology makes this process much easier.

HOL-1988-01-EMT

Page 69HOL-1988-01-EMT

Page 70: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

ConclusionIn this module you learned:

• How to create Smart Contracts using the CLI tools• How to create Smart Contracts using the VMware's blockchain technology's user

interface• How to execute sample functions: add a new Asset, check the owner of an asset,

and finally transfer the asset from one owner to another.

You've finished Module 2

Congratulations on completing Module 2.

If you are looking for additional information on blockchain, try one of these:

• Go to http://www.vmware.com/blockchain• Or use your smart device to scan the QRC Code.• You can also download the VMware blockchain fling from:

https://labs.vmware.com/flings/blockchain-on-kubernetes

Proceed to any module below which interests you most.

• Module 1 - Lab Overview (30 minutes) (Basic) This module walks you through thebasics of blockchain, explains how VMware's blockchain technology differentiatesitself, and walks you through the web interface.

• Module 3 - Transaction Management and Reliability (30 minutes) (Advanced) Thismodule allows you to explore transactions in VMware's blockchain technology.You will also test VMware's consensus layer resiliency by shutting down ablockchain node, executing a transaction, and building a new block on theblockchain.

HOL-1988-01-EMT

Page 70HOL-1988-01-EMT

Page 71: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

How to End Lab

To end your lab click on the END button.

HOL-1988-01-EMT

Page 71HOL-1988-01-EMT

Page 72: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Module 3 - TransactionManagement and

Reliability (30 minutes)

HOL-1988-01-EMT

Page 72HOL-1988-01-EMT

Page 73: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

IntroductionWelcome to Module 3 - Transaction Management and Reliability (30 minutes) (Advanced)

This Module covers the following lessons:

• Managing transactions with VMware's blockchain technology - Here you will learnhow to view details of transactions using the UI for VMware's blockchaintechnology.

• VMware's blockchain technology's resilience - Here you will explore how VMware'sblockchain technology can survive the loss of a node and still committransactions and append blocks. You will also examine the self healingcapabilities of VMware's blockchain technology.

HOL-1988-01-EMT

Page 73HOL-1988-01-EMT

Page 74: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Managing Transactions with VMware'sBlockchain TechnologyAn important part of Blockchain interaction is inspection of transactions. VMware'sblockchain technology provides an easy-to-use visual interface to help you audit yourtransactions.

Note: Parts of this lab were written with pre-release code and have been pre-populatedwith data to make the screens more realistic than you would see in a small labenvironment. As such, some of your screens will not match exactly with the screenshotswe have supplied.

VMware's blockchain technology includes an intuitive UI and the back-end. This sectiongives an overview of how to view transactions with this UI.

Launch Chrome

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

Launch the UI

1. Navigate to VMware's blockchain technology UI by clicking the VMwareblockchain technologies bookmark.

HOL-1988-01-EMT

Page 74HOL-1988-01-EMT

Page 75: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Log in to the UI

At the Login screen:

1. Enter admin for the Username2. Enter VMware1! for the Password3. Click Next

HOL-1988-01-EMT

Page 75HOL-1988-01-EMT

Page 76: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Accessing Transactions from the Dashboard Tab

There are a number of ways you can see transactions in the UI.

1. First place to see and manage transactions is via the Dashboard tab. Click onthat tab now.

2. Now drag the scrollbar on the right side of the screen most of the way down

HOL-1988-01-EMT

Page 76HOL-1988-01-EMT

Page 77: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Viewing Transactions on the Dashboard Tab

Further down the Dashboard screen you will see:

1. A scrolling list of the recent transactions, with the most recent on top2. Click on the disclosure triangle (">") to see the details for one of those

transactions.3. By scrolling to the right, you will find that the table has additional columns

displaying the Nonce and Status (not pictured) of each transaction.4. You can also see details about the transaction by clicking on the transaction's

hash. Do so now.

Because we are running in a lab environment, it may take up to 10 minutes for all of theblockchain nodes to start. If you don’t see Transactions under the Dashboard menu tab,please wait a couple of minutes and refresh your browser. If you still do not seeTransactions after waiting, please request assistance.

HOL-1988-01-EMT

Page 77HOL-1988-01-EMT

Page 78: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Transaction Details

Another way to examine transactions on the blockchain is via the Block List tab. TheTransaction detail page offers another view of the contents of a single transaction.

HOL-1988-01-EMT

Page 78HOL-1988-01-EMT

Page 79: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

VMware's Blockchain Technology'sResilienceIn this lesson we will focus on one of the foundations of VMware's blockchain technology- the consensus layer or Concord.

Concord is a scalable decentralized trust infrastructure for blockchains. Concordimplements a new Byzantine Fault Tolerant algorithm that addresses the challenges ofscalability and decentralization. Unlike many previous BFT systems that performed wellonly when centralized around less than 20 replicas, Concord is optimized fordecentralization and can easily handle more than 100 active replicas.

The consensus layer provides a critical layer for any blockchain solution - it is the wayupdates to the blockchain are agreed upon.

Concord provides a fast consensus layer, with great scalability, performance and sub-second time to finality.

Note that in this lab, we do not use the SaaS capabilities of VMware's blockchaintechnology, and rely only on local replicas. This is not a supported configuration.

A core offering in this lab is showing how the VMware Blockchain providesdecentralized trust. In a centralized trust system, you rely on a single entity tocommit transactions and to execute them. In a decentralized trust system, theresponsibility for committing transactions and executing them is distributed andreplicated between multiple nodes to provide strong fault tolerance guarantees. In apermissioned blockchain like VMware Blockchain this trust decentralization is obtainedby implementing a Byzantine Fault Tolerant (BFT) replication protocol. This BFTreplication is the core trust decentralization technology that we are offering in Concord.

When defining a BFT replication protocol there is one fundamental parameter. We usethe letter f to define this parameter. This parameter captures that maximum number ofmalicious nodes that the attacking adversary can fully control. The adversary controlsthe f nodes and can adaptively decide if these nodes should crash, send fake messagesor even equivocate (send different messages to different nodes). A BFT replicationprotocol is correct if it maintains both liveness and safety in the face of such anadversary controlling f nodes. Keep in mind that nodes can crash even if this is not donemaliciously. Of course, you would still be protected in this case.

Once you fix this parameter f, then this leads to the optimal minimal number of nodesor trust domains needed. This optimal number is computed by the formula n=3f+1. Inthis lab we run a configuration that is resilient to an adversary controlling f=1 nodes,

HOL-1988-01-EMT

Page 79HOL-1988-01-EMT

Page 80: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

this is the reason we have 4 replicas (n=3f+1=4). In other words, to survive f maliciousfailures and maintain safety in asynchronous environments you need n=3f+1 nodes.

In a nutshell, liveness is the property that “good things will eventually happen” andsafety is the property that “bad things will never happen”. In the context of a BFTconsensus protocol, liveness guarantees the client requests will be committed in atimely manner no matter how hard f malicious nodes try to block them, and safetyguarantees that all replicas and all clients see the same view (there is no “double-spend”) no matter how hard f malicious nodes try to cause disagreement.

Concord BFT uses a primary based protocol (following Paxos, Raft and PBFT). In suchprotocols the system advances in virtual rounds called views. In any given view, onenode is chosen to be a primary and all other nodes are designated to be replicas in thisview. If the primary fails or misbehaves then a view-change protocol is used toautomatically move to a new view with a new primary. The view-change protocol istypically the most complex part of a BFT replication engine. Concord provides a novelview-change protocol that provides both safety and liveness.

As was mentioned, the environment consists of 4 Concord nodes. Each node isconnected to a UI/API Front-end node, and a database to store the Smart Contracts.

In the following steps you will validate that all 4 nodes are running, and that you cancommit transactions and blocks.

Then you will experiment with abruptly shutting down one of the blockchain nodes,verify the cluster state, try to write a transaction to the cluster with a failed node, andobserve how Concord can handle node failure while still providing consensus andappending new blocks to the blockchain.

In Modules 1 and 2 of this lab you managed VMware's blockchain technology using theGUI. In this module we will also be using the CLI. In the instructions, we will walk youthrough how to do this.

Launch Chrome

If the VMware blockchain UI is already open, skip the next few steps until you get toView Existing Blocks.

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

HOL-1988-01-EMT

Page 80HOL-1988-01-EMT

Page 81: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Launch the UI

1. Navigate to the VMware blockchain UI by clicking on the VMware blockchaintechnologies bookmark.

Log in to the UI

1. Click in the Username Field and enter admin2. Click in the Password Field and enter VMware1!3. Select the Systems Admin role4. Click the Next Button

HOL-1988-01-EMT

Page 81HOL-1988-01-EMT

Page 82: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

View Existing Block(s)

1. You will be presented with the VMware blockchain GUI. Click on the Block Listtab.

Examine the Genesis Block

1. Click on the block with an Index of 0.

HOL-1988-01-EMT

Page 82HOL-1988-01-EMT

Page 83: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Because this block has an index of zero, we know it was the first block in the chain,which is called the Genesis Block.

If you are doing this module after completing Module 1 and/or Module 2, you may seemore than one block in the UI.

View the Transactions in the Genesis Block

1. You will see multiple transactions which are stored in the block you clicked on.These blocks are stored on nodes, or replicas.

If you have completed Module 2, you are familiar with how new blocks can be createdusing Smart Contracts leveraging Ethereum Geth client calls through the APIs providedby VMware's blockchain technology.

You will now generate new blocks with simple Shell script which leverages this API andobserve how they are being committed.

Log in to the Ubuntu Container Host

1. Click on the PuTTY icon in the taskbar

HOL-1988-01-EMT

Page 83HOL-1988-01-EMT

Page 84: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Start a PuTTY Session

1. Select the pre-created holuser@bcnode session.2. Click Open.

Confirm that PuTTY has Connected Successfully

You will be automatically logged into the terminal of the Ubuntu server

For a better experience, you may want to maximize the PuTTY window

HOL-1988-01-EMT

Page 84HOL-1988-01-EMT

Page 85: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Examine the Components of VMware's BlockchainTechnology

1. Inside the PuTTy session, type or copy the following command docker container lsThis command lists all the docker containers running on the Ubuntu host. Asmentioned in introduction of this module, in this lab there are:

2. 4 vmweb containers - which are the Concord nodes.3. 1 vmwebui container - the UI and API front end.4. 1 Cockroach DB container - used as a location for Smart Contract metadata

storage.

Generate a New Block and Transaction Using the CLI

This lab will use two scripts for testing the creation of blocks. These scripts are calledsendTx1.sh and sendTx2.sh. These two scripts are located in the /home/holuser/HOL1988 directory

Please type or copy/paste following commands:

cd HOL1988

sudo bash ./sendTx1.sh

You may need to click enter/return twice.

sendTX1.sh is simple script which uses the API to create a transaction.

HOL-1988-01-EMT

Page 85HOL-1988-01-EMT

Page 86: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Confirm the Creation of a New Block

1. Now return to the blockchain UI (you may need to Refresh browser or click onBlock List). You will see the new block that was created.

You can investigate blocks and transactions on your own. Module 1 and Module 3 havedetailed walkthroughs and explanations.

Stop One of the Concord Nodes

Now lets stop one of the nodes and try to create new blocks.

1. Please type following commands in PuTTY: docker-compose pause vmweb4

This will pause one of the nodes. This simulates the node disconnecting from the rest ofthe network.

HOL-1988-01-EMT

Page 86HOL-1988-01-EMT

Page 87: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Validate That There are Only Three Nodes Running

1. In the PuTTY terminal enter the following command: docker container ls2. Notice that vmweb4 is shown as paused, and only three nodes are running.

Attempt to Create a Transaction with Only Three Replicas

Now run the SendTx2.sh script to create a new value transfer transaction with only 3 outof 4 nodes running.

1. In the PuTTY window type: sudo bash ./sendTx2.sh

As you can see, Concord allows you to tolerate the loss of up to a third of your nodes,while still maintaining consensus and providing finality for transactions.

HOL-1988-01-EMT

Page 87HOL-1988-01-EMT

Page 88: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

Confirm the Creation of a New Block and Transaction

Now return to the blockchain UI (may need to Refresh browser or click on Block List)to confirm that a block has been created.

1. Click on the newly created block. This is the block with highest Index number.

Examine the New Transaction

HOL-1988-01-EMT

Page 88HOL-1988-01-EMT

Page 89: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

1. Click on the transaction in the block.

Confirm the Status of the New Transaction

1. Check Transaction status. Even with 3 nodes out of 4 working, Concord stillprovides consensus and transaction finality.

Restore the Fourth Node

Now lets bring the fourth node back up. VMware's blockchain technology has built inself-healing mechanisms, which allows it to recover from accidental or malicious nodeinterrupts. This means that the fourth node or replica will sync back up with the otherthree replicas.

1. Return to PuTTY console and type docker-compose unpause vmweb42. Confirm that you see a green done message.

Confirm the Health of the Cluster

1. In the PuTTY session enter: docker container ls

HOL-1988-01-EMT

Page 89HOL-1988-01-EMT

Page 90: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

2. Notice that all 4 containers and the nodes they contain are running again, whichindicates that the cluster is healthy.

As we are using tech preview code in this lab, you can't see Node health in the UI in thecurrent code. This is why we used the docker container list command to confirm allfour replicas were running. This feature will be available with GA code release.

In this section, we have seen how Concord can tolerate node loss and still maintainreplication resiliency. Concord has been tested for deployments on a world-scale WAN.We also saw how it can still reach consensus and finality with part of the nodes downand then self heal itself after restart.

HOL-1988-01-EMT

Page 90HOL-1988-01-EMT

Page 91: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

ConclusionIn this module you learned:

• How to view the details of transactions using the GUI for VMware's blockchaintechnology.

• About Concord's replication technology.• How to simulate the failure of a node, and execute new transactions to observe

the technology's resiliency.• How VMware's blockchain technology can tolerate disconnected nodes, and self

heal on restart.

You've finished Module 3

Congratulations on completing Module 3.

If you are looking for additional information on blockchain, try one of these:

• Go to http://www.vmware.com/blockchain• Or use your smart device to scan the QRC Code.• You can also download the VMware blockchain fling from:

https://labs.vmware.com/flings/blockchain-on-kubernetes

Proceed to any module below which interests you most.

• Module 1 - Lab Overview (30 minutes) (Basic) This module walks you through thebasics of blockchain, explains how VMware's blockchain technology differentiatesitself, and walks you through the web interface.

• Module 2 - Smart Contract Setup (30 minutes) (Advanced) In this module you willdeploy a smart contract. You will also create, store and transfer assets using asmart contract.

HOL-1988-01-EMT

Page 91HOL-1988-01-EMT

Page 92: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

How to End Lab

To end your lab click on the END button.

HOL-1988-01-EMT

Page 92HOL-1988-01-EMT

Page 93: Table of Contents - VMware · 2020-02-10 · This is an introductory blockchain lab focused on VMware's blockchain technology and smart contracts. Lab Module List: • Module 1 -

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-1988-01-EMT

Version: 20200210-210332

HOL-1988-01-EMT

Page 93HOL-1988-01-EMT