using your existing java skills to develop blockchain ...€¦ · a code walkthrough for java...

21
ding Blockchain applications us your existing Java skills to develop Blockch e IBM Blockchain Platform and Hyperledge tone er 2018 tone sing Java hain applications er Fabric

Upload: others

Post on 31-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Building Blockchain applications using Java

Using your existing Java skills to develop Blockchain applications with the IBM Blockchain Platform and Hyperledger Fabric

Simon Stone

V5.13, 4 October 2018

Simon Stone

Building Blockchain applications using Java

Using your existing Java skills to develop Blockchain applications Hyperledger Fabric

Page 2: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Business networks, wealth and markets

Business Networks benefit from connectivity

– Participants are customers, suppliers, banks, partners

– Cross geography and regulatory boundary

Wealth is generated by the flow of goods and Wealth is generated by the flow of goods and services across business network in transactions and contracts

Markets are central to this process:

– Public (fruit market, car auction), or

– Private (supply chain financing, bonds)

Business networks, wealth and markets

Page 3: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Transferring assets, building valueAnything that is capable of being owned or controlled to produce value,

Two fundamental types of asset

Intangible assets subdivide

Tangible, e.g. a house

Intangible, e.g. a mortgage

• Financial, e.g. bond

• Intellectual, e.g. patents

• Digital, e.g. music

Transferring assets, building valueAnything that is capable of being owned or controlled to produce value, is an asset

Intangible assets subdivide

Cash is also an asset

Financial, e.g. bond

Intellectual, e.g. patents

Digital, e.g. music

• Has property of anonymity

Page 4: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Ledgers are key

Ledgers are THE system of record for a business.

Businesses will have multiple ledgers for the multiple business networks in which they participate.

Transaction: an asset transfer onto or off the ledger

John gives a car to Anthony (simple)

Contract: the conditions for a transaction to occur

If Anthony pays John money, then car passes from John to Anthony (simple)

If car won't start, funds do not pass to John (as decided by third party arbitrator) (more complex)If car won't start, funds do not pass to John (as decided by third party arbitrator) (more complex)

Page 5: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Probleminefficient, expensive, vulnerable

Participant A’s records Participant B’s records

Insurer records Regulator records

Probleminefficient, expensive, vulnerable

Participant B’s records Bank records

Regulator records Auditor records

Page 6: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Participant A’s records Participant B’s records

SolutionA shared, replicated, permissioned ledger

…with consensus, provenance, immutability and finality

Blockchain

Insurer records Regulator records

Participant B’s records Bank records

SolutionA shared, replicated, permissioned ledger…

with consensus, provenance, immutability and finality

Blockchain

Regulator records Auditor records

Page 7: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Different types of blockchain

is an example of an unpermissioned, public blockchain

blockchains aim to provide irrefutable proof that a set of transactions occurred between participants

Different types of blockchain exist:

– The first blockchain application

– Defines a shadow-currency and its ledger

– Resource intensive

unpermissioned, public blockchain

Blockchains for business are generally permissioned and private, and prioritize

Identity over anonymity | Selective endorsement over proof of work | Assets over cryptocurrency

unpermissioned, public blockchain

currency and its ledger

unpermissioned, public blockchain

Blockchains for business are generally permissioned and private, and prioritize

Identity over anonymity | Selective endorsement over proof of work | Assets over

Page 8: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Introducing the IBM Blockchain Platform

IBM Blockchain Platform is a fully integrated enterpriseready blockchain platform designed to accelerate the development, governance, and operation of a multiinstitution business network

Developer tools that will make use of Hyperledger Fabric SDK, to quickly build your blockchain applicationapplication

Hyperledger Fabric also provides the ledger, which is managed through a set of intuitive operational tools

Governance tools for democratic management of the business network

Flexible deployment options, including a highly secure and performant IBM Cloud environment

Introducing the IBM Blockchain Platform

IBM Blockchain Platform is a fully integrated enterprise-ready blockchain platform designed to accelerate the

-

Developer tools that will make use of Hyperledger

De

ve

lop

er

To

ols

Op

era

tio

na

l To

ols

Blockchain application

Hyperledger Fabric

Hyperledger Fabric also provides the ledger, which is managed through a set of intuitive operational

Governance tools for democratic management of the

Flexible deployment options, including a highly secure and performant IBM Cloud environment

De

ve

lop

er

To

ols

IBM Cloud Op

era

tio

na

l To

ols

Page 9: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Hyperledger: A Linux Foundation project

IBM Blockchain Platform is underpinned by technology from the Hyperledger project

Hyperledger is a collaborative effort created to advance cross-industry blockchain technologies for business

Founded February 2016; now more than

Premier

Founded February 2016; now more than 270 member organizations

Open sourceOpen standardsOpen governance model

Source: https://www.hyperledger.org/membersUpdated: 4 October 2018

Associate

Hyperledger: A Linux Foundation project

General

Academia Associate

Page 10: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Distributed ledger

Distributed ledger

An implementation of blockchain technology that is a foundation for developing blockchain applications

Emphasis on ledger, smart contracts, consensus, confidentiality, resiliency and scalability.

V1.2 released July 2018

– Includes significant confidentiality and service discovery improvements

IBM is one of the many contributing organizations

Fabric Explored

Page 11: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Blockchain developer

develops

develops

DApplication

How applications interact with the ledger

Ledger

‘get’, ‘put’, ‘delete’

World state

Peer

Smart Contract

submits

emits

ClientApplication

SDK

!event

How applications interact with the ledger

Contract

recorded

accesses

event

emits

‘get’, ‘put’, ‘delete’

!

block

txn txn txn

Blockchain

event

Page 12: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

A demo of a blockchain application

In this demo, you will see:

A sample blockchain solution based around a vehicle manufacturing business network.

This solution includes a smart contract and a set This solution includes a smart contract and a set applications for the different users and

businesses in the business network.

You can try it yourself today here: https://github.com/IBM-Blockchain/vehicle-manufacture

A demo of a blockchain application

Page 13: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

PaulBuyer/Owner

AlexAgency for Vehicle Standards

B L O C K C H A I N

MikeArium Logistics Employee Tommen

Insurer

B L O C K C H A I N

DebbieVDA Regulations Administrator

Buyer/Owner

B L O C K C H A I N

Arium Logistics Employee

VadaPolice

B L O C K C H A I N

Page 14: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

AlexAgency for Vehicle Standards

PaulBuyer/Owner

B L O C K C H A I N

TommenInsurer

MikeArium Logistics Employee

B L O C K C H A I N

DebbieVDA Regulations Administrator

Buyer/Owner

B L O C K C H A I N

VadaPolice

Arium Logistics Employee

B L O C K C H A I N

Page 15: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

AlexAgency for Vehicle Standards

PaulBuyer/Owner

MobileApp

B L O C K C H A I N

TommenInsurer

MikeArium Logistics Employee

B L O C K C H A I N

DebbieVDA Regulations Administrator

Buyer/Owner

B L O C K C H A I N

VadaPolice

Arium Logistics Employee

B L O C K C H A I N

Page 16: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

AlexAgency for Vehicle Standards

PaulBuyer/Owner

MobileApp

B L O C K C H A I N

TommenInsurer

MikeArium Logistics Employee

EnterpriseIntegrationTools

ERP

IoT

B L O C K C H A I N

DebbieVDA Regulations Administrator

Buyer/Owner

B L O C K C H A I N

VadaPolice

Arium Logistics Employee

B L O C K C H A I N

Page 17: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

AlexAgency for Vehicle Standards

PaulBuyer/Owner

MobileApp

B L O C K C H A I N

TommenInsurer

MikeArium Logistics Employee

EnterpriseIntegrationTools

ERP

IoT

B L O C K C H A I N

DebbieVDA Regulations Administrator

Buyer/Owner

Business Rules

Analytics

B L O C K C H A I N

VadaPolice

Arium Logistics Employee

B L O C K C H A I N

Page 18: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Choice is key

At IBM, we believe that choice is key when it comes to the experience for blockchain developers.

The freedom to utilize your existing skills and your programming language of choice:programming language of choice:

– Develop smart contracts and applications in Go, Java, and JavaScript

The freedom to use your favorite editors, IDEs, and tools to get the job done:

– Develop smart contracts and applications in Visual Studio Code, Eclipse, Vim, etc

Page 19: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

A code walkthrough for Java developers

In this code walkthrough, you will see:

smart contract developed in Java, using Visual Studio Code and the IBM Blockchain Platform developer tools extension.

application developed in Java, using Eclipse.

Everything you will see is available today, open source software, and ready for you to try yourselves.

A code walkthrough for Java developers

Page 20: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

Thank you

Simon Stone

Questions? Tweet us or go to ibm.com/blockchain

@IBMBlockchain

IBM Blockchain

IBM Blockchain

Page 21: Using your existing Java skills to develop Blockchain ...€¦ · A code walkthrough for Java developers In this code walkthrough, you will see: smart contractdeveloped in Java, using

© Copyright IBM Corporation 2018. All rights reserved. The information contained in these © Copyright IBM Corporation 2018. All rights reserved. The information contained in these materials is provided for informational purposes only,of any kind, express or implied. Any statement of direction represents IBM's current intent, is

subject to change or withdrawal, and represents only goals and objectives. logo, and other IBM products and services are trademarks of the International Business

Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

© Copyright IBM Corporation 2018. All rights reserved. The information contained in these © Copyright IBM Corporation 2018. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty

Any statement of direction represents IBM's current intent, is subject to change or withdrawal, and represents only goals and objectives. IBM, the IBM logo, and other IBM products and services are trademarks of the International Business

Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.