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

    Agenda • Corda basics • Corda network and ledger •

    Corda consensus mechanism • Intro to CorDapp • Obligation CorDapp • Code walkthrough and demo
  2. 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
  3. 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
  4. 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
  5. 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)
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 17.

    Contact me: Koshik Raj linkedIn: koshikraj GitHub: koshikraj twitter: rajkoshik