Top Banner
This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.
23

and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

Aug 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Page 2: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail™(TIBCO LABS™)Making Smart Contracts Smarter

2

Page 3: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

DISCLAIMERDuring the course of this presentation, TIBCO or its representatives may make forward-looking statements regarding future events, TIBCO’s future results or our future financial performance. Although we believe that the expectations reflected in the forward-looking statements contained in this presentation are reasonable, these expectations or any of the forward-looking statements could prove to be incorrect and actual results or financial performance could differ materially from those stated herein.

TIBCO could experience factors that could cause actual results or financial performance to differ materially from those contained in any forward-looking statement made in connection with this presentation. TIBCO does not undertake to update any forward-looking statements that may be made from time to time or on its behalf.

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. This document is provided for informational purposes only and its contents are subject to change without notice. TIBCO makes no warranties, express or implied, in or relating to this document or any information in it, including, without limitation, that this document, or any information in it, is error-free or meets any conditions of merchantability or fitness for a particular purpose. This document may not be reproduced or transmitted in any form or by any means without our prior written permission.

The material provided is for informational purposes only, and should not be relied on in making a purchasing decision. The information is not a commitment, promise or legal obligation to deliver any material, code, or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.

Page 4: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

4

Download the Appto download the TIBCO NOW App visitnow.tibco.com/2018/mobile-app

Page 5: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Agenda

5

• What are Smart Contracts?• Challenges: Smart Contracts on Different Blockchain

Platforms• Project Dovetail: Model-driven Smart Contract Development• Project Dovetail Roadmap

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Page 6: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Blockchain/Distributed Ledger Technology

6

• A blockchain is essentially a shared accounting ledger that uses cryptography and a network of computers to track assets and secure the ledger from tampering (by Mike Orcutt)

• Blockchain Transaction Rules○ Authorization

■ Public/Private Key Cryptography○ Uniqueness

■ Prevent double-spent problem○ Correctness

■ Smart Contract

Page 7: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

What are Smart Contracts?

7

• Wikipedia:

Smart contracts are computer protocols intended to facilitate, verify, or enforce the

negotiation or performance of a contract.

• Investopedia:

Smart contracts are self-executing contracts with the terms of the agreement between buyer and seller being directly written into lines of code. The code and the agreements contained therein exist across a distributed, decentralized blockchain network. Smart contracts permit trusted transactions and agreements to be carried out among disparate, anonymous parties without the need for a central authority, legal system, or external enforcement mechanism. They render transactions traceable, transparent, and irreversible.

Page 8: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Properties of A Smart Contract

8

● Deterministic○ Smart contract must give the same output to a given input

every single time● Terminable

○ Smart contract can execute its function within a time limit to prevent “halting problem”

● Isolated○ Smart contract runs in an isolated sandbox to save the

entire ecosystem from any negative effects.

Page 9: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Smart Contract Example - Bitcoin

9

● Language: Script○ Simple, Stack-based, Processed

left to right○ Not Turing-complete

● Each transaction is a contract○ At least one or more

inputs/outputs○ Input refers an UTXO○ TX(Input) < TX(output)○ Input: data to unlock UTXOs○ Output: locking script

■ P2PKH■ P2SH

○ Can be locked for a period of time

Page 10: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Smart Contract Example - Ethereum

10

● Language: Solidity○ Statically typed○ Compiled to EVM bytecode○ Turing-complete

● Smart contracts ○ Is a collection of code (functions) and

data (states) at a specific address on all nodes of the network

○ Invoked by messages sent from external accounts or other contract accounts

○ Runs in EVM■ Does not support non-deterministic

functions■ Isolated■ Uses gas/gas limit to prevent halting

Page 11: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Smart Contract Example - Hyperledger Fabric

11

● Language: Go, NodeJS, Java*● Chaincode

○ Implements Chaincode API■ Init■ Invoke

○ Initializes and manages the ledger state through transactions■ GetState■ PutState

○ Installed on endorsing peers of participants of a channel■ Runs in a secured docker container■ Use timer to prevent halting■ Relies on chaincode developer for

deterministic feature

Page 12: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Smart Contract Example - R3 Corda

12

● Language: Kotlin, Java● Contract

○ Implements Contract interface ■ verify

○ Each transaction proposal has one or more input/output states■ Each state points to a contract■ All state contracts must be valid

○ Installed only on nodes that store and manage state that is verified by the contract■ Runs in a deterministic sandbox

which has a whitelist that prevents the contract from importing libraries that could be a source of non-determinism

Page 13: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Smart Contract Challenges

13

● Different Approaches○ Inputs + Outputs -> Smart Contracts -> True/False

■ Bitcoin■ R3 Corda■ ...

○ Inputs -> Smart Contracts -> Outputs■ Ethereum■ Hyperledger Fabric■ ...

● Different Languages○ Golang, Java, Kotlin, JavaScript…○ Proprietary Languages

Page 14: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Hyperledger Composer

14

● Standardize and Speed up Blockchain Application Development○ Modeling Language

■ Assets■ Participants■ Events■ Transactions

○ Transaction Processing Implementation■ Javascript

○ ACL■ Fine-grained access control to assets

○ Query■ SQL-like query definition language

● Platforms Supported○ Hyperledger Fabric

Page 15: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS)Model-driven Smart Contract Development

15

● Platform Neutral○ Ledger States/Assets Modeling

■ Support Hyperledger Composer Modeling Language

○ Transaction Processing Modeling■ TIBCO Flogo® Enterprise Studio

● Graphical flow creation● Visual input mapping

○ Command line tool■ Generate/Deploy platform-specific

smart contracts● Project Dovetail Initially Supported

Platforms○ Hyperledger Fabric○ R3 Corda

Page 16: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS)Asset Modeling

16

@PrimaryCompositeKey("txn_id,sequence")

asset AuditRecord identified by txn_id {

o String txn_id

o String txn_time

o Integer sequence

o String user_txn_id

o String hash_type

o String hash_value

o String data optional

}

@InitiatedBy("$tx.aidOrg", "aidOrg=true")

transaction CreateProjectPledge {

o String pledgeId

o String name

o String description

o Amount fundsRequired

--> Party aidOrg

--> Party globalCitizen

}

Page 17: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS)Transaction Modeling

17

Page 18: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS)Transaction Modeling

18

Page 19: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS)Open Source Project

19

Page 20: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

20

Global Citizens ChallengeUSE CASE DEMO

RESULTS

• Bullet 1

• Bullet 2

• Bullet 3

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Page 21: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS) Roadmap

21

• Integrated development and testing environment• Model• Develop• Test• Audit• Deployment

• Governance• Version control• Collaboration among smart contract participants

• Blockchain Integration• API Generation• Eventing

Page 22: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Project Dovetail (TIBCO LABS) Summary

22

• Blockchain-Agnostic, Model Driven Approach to Smart Contract Development

• Visual Creation and Editing of Smart Contract Logic• Reduced Risk of Technology Lock-In, with Support for

Customization and Extensions

*Go to Project Dovetail community site for more details

Blockchain-Agnostic, Model Driven Approach to Smart Contract Development

Page 23: and its contents are subject to change without notice ... · Smart Contract Example - R3 Corda 12 Language: Kotlin, Java Contract Implements Contract interface verify Each transaction

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. It is for informational purposes only and its contents are subject to change without notice. © Copyright 2014-2018 TIBCO Software Inc. All rights reserved. TIBCO Proprietary Information.

Please Remember

to downloadthe TN App andcomplete the surveyfor this breakout

Questions

Please wait for themicrophone beforeasking your questions

State yourname & company

23