Introduction to Corda DLT

68a8092ba46ca5848bcdfc453d81c4bb?s=47 Koshik Raj
November 16, 2019

Introduction to Corda DLT

An introductory talk on Corda DLT at a meetup organized by BChain Dynamics, Bangalore.


Koshik Raj

November 16, 2019


  1. Corda DLT Koshik Raj Blockchain author

  2. Agenda • Corda basics • Corda network and ledger •

    Corda consensus mechanism • Intro to CorDapp • Obligation CorDapp • Code walkthrough and demo
  3. 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
  4. 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
  5. 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
  6. 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)
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. Entities to issue and settle obligation Borrower Lender Corda notary

  13. Obligation Dapp implementation FLOWS CONTRACTS STATES Obligation API Static resources

  14. Letter of Credit state evolution Obligation Obligation (Pay) Obligation (New

  15. Let's build a CorDapp

  16. Corda solutions ➔ Identity management (Cordentity) ➔ Ivno instant settlement

    ➔ Letter of Credit ➔ Provable
  17. Contact me: Koshik Raj linkedIn: koshikraj GitHub: koshikraj twitter: rajkoshik