Slide 1

Slide 1 text

Corda DLT Koshik Raj Blockchain author

Slide 2

Slide 2 text

Agenda ● Corda basics ● Corda network and ledger ● Corda consensus mechanism ● Intro to CorDapp ● Obligation CorDapp ● Code walkthrough and demo

Slide 3

Slide 3 text

Corda basics Corda is a DLT platform that provides all the necessary features needed solve the business use cases: ➔ Transaction Privacy ➔ Transaction finality ➔ Scalability ➔ Enterprise integration ➔ Legally identifiable entities

Slide 4

Slide 4 text

Corda network Nodes that run Corda and apps (CorDapp) form the network. ➔ Each node has network identity and certificate ➔ The nodes communicate on need to know basis ➔ A network operator allows the admission to the permissioned network

Slide 5

Slide 5 text

Corda ledger Corda nodes doesn’t share a single global ledger. Intead, ➔ Each node will maintain subset of global facts (transactions) ➔ 2 peers will have the same version of the facts that they share

Slide 6

Slide 6 text

Corda consensus The consensus in Corda is achieved with the help of Notary nodes ➔ Each signer validates the transaction ➔ Notary makes sure that each transaction is unique to avoid double spends Notary is a network service that ensures uniqueness of the transaction by checking all the input states. It provides pluggable consensus algorithms (RAFT, BFT etc)

Slide 7

Slide 7 text

CorDapp ➔ Every CorDapp will have 3 major components defined: ◆ States - represents the state of an asset ◆ Contracts - validates the transaction ◆ Flows - defines the transaction & communication flow ◆ Also bundles APIs and static web content

Slide 8

Slide 8 text

Corda states Corda nodes maintain state information in a vault ➔ State is an immutable object representing any fact ➔ When a state is updated, the old state becomes a consumed historical state

Slide 9

Slide 9 text

Interacting with the CorDapp Middleware services ➔ External services often communication with Corda nodes through either direct RPC protocol or through middleware services ➔ Middleware services are APIs created with web frameworks such as Java Spring ➔ A project called Braid allows to run customizable service on top of Corda node to create RPC endpoints

Slide 10

Slide 10 text

Development environment JVM and IntelliJ IDE ➔ Every development node should have the following tools: ◆ Java 8 JVM ◆ IntelliJ IDEA ➔ CorDapp is coded in either Java or Kotlin so that they could be compiled to Java bytecode

Slide 11

Slide 11 text

Obligation CorDapp ➔ IOU-like agreement that can be issued, transferred and settled confidentially ➔ Borrower will issue an obligation with lender ➔ Lender can view the obligation ➔ Borrower later settles or transfers the obligation

Slide 12

Slide 12 text

Entities to issue and settle obligation Borrower Lender Corda notary

Slide 13

Slide 13 text

Obligation Dapp implementation FLOWS CONTRACTS STATES Obligation API Static resources

Slide 14

Slide 14 text

Letter of Credit state evolution Obligation Obligation (Pay) Obligation (New Lender)

Slide 15

Slide 15 text

Let's build a CorDapp https://github.com/corda/samples

Slide 16

Slide 16 text

Corda solutions ➔ Identity management (Cordentity) ➔ Ivno instant settlement ➔ Letter of Credit ➔ Provable

Slide 17

Slide 17 text

Contact me: Koshik Raj linkedIn: koshikraj GitHub: koshikraj twitter: rajkoshik [email protected] consensolabs.com theblockchainbook.info