An Introduction to Corda Blockchain Platform with its Key Concepts

An Introduction to Corda Blockchain Platform and its Key Concepts

Posted by : deepak.maurya | 13-Dec-2019

  • Corda blockchain

    Corda is an open-source blockchain project, designed to build businesses from scratch. It enables developers to build interoperable blockchain networks that transact in strict privacy. Further, Corda’s smart contract technology enables businesses to transact directly with value.

    Key concepts of Corda

    The Network

    • Communication between nodes is point-to-point, instead of relying on global broadcasts.
    • Each node has a certificate mapping their network identity to a real-world legal identity.

    network image

    The Ledger

    • The Corda Ledger allows for the management and synchronization of business agreements between multiple parties.
    • In Corda, Ledger is a subjective construct from each peer’s point of view. There are no peers who can see everything.
    • Each set contains known facts. Where the sets overlap are shared facts that are stored on the Corda ledger.

    States

    • States are immutable objects representing shared facts such as an agreement or contract at a specific point in time.
    • States represent on-ledger facts.
    • States are evolved by marking the current state as historic and creating an updated state.
    • Each node has a vault where it stores any relevant states to itself.

    In Corda, states are instances of classes that implement ContractState.

    interface ContractState {
        val participants: List<AbstractParty>
    }
    

    Transactions

    Transactions facilitate the update of states onto the ledger

    A transaction proposal will only be committed if:

    • It doesn’t contain double-spends
    • It is contractually valid
    • It is signed by the required parties

    Contracts

    • Contracts are used to control the evolution of on-ledger states.
    • In Corda Smart contracts that can be written in Java and other JVM languages.
    • In Corda Contract has a single methodverify, which takes a Transaction as input.

    The verification function is defined in the contract code. This is the verify method signature in Kotlin.

           fun verify(tx: Transaction): Unit
    

    The function takes a transaction as a parameter. It will execute all of the constraints that the Cordapp developer has defined. If any of the constraints fails, it will throw an exception.  If all of the constraints pass, then it will return nothing and consider the transaction which was passed in to be valid

    Also Read: Corda Blockchain: Finding its Applications in the Real World

    The flow of the network Nodes (Peers) in Corda Blockchain 

     Flows are a series of steps required of the necessary peers to execute a transaction. Understanding the flow framework is essential to working with Corda as they reflect the core business logic of a CorDapp.

    In Corda Flow are instances of classes, made of FlowLogic subclass.

    class InitiatorFlow(val otherParty: Party): FlowLogic<Unit>() {
        @Suspendable
        override fun call() { }
    }

    To understand how flows work, let’s consider Alice and Bob, who wish to agree on an IOU.

    flow

     

     

    Diagram of a flow framework, continuing with Alice and Bob’s IOU:

    steps of flow

    Notary

    A Corda network has one or more notary clusters that provide transaction ordering and timestamping services.

    Consensus

    The consensus is required because different entities, individuals, or parties can try to add information to Corda nodes, distributed operators on the system must evaluate and agree on all additions before they are incorporated into their ledger.

    Two types of consensus 

    • Validity consensus – guarantees no conflicts and ensures that a proposed transaction is valid per the contract code that governs how the shared state can evolve.
    • Uniqueness consensus –guarantees that conflicting updates to the ledger can never occur, this is only checked by a notary service.

    We are a blockchain development company that leverages the Corda platform’s capabilities to provide Corda blockchain development services. It enables us to develop and deploy public and permissioned blockchain solutions for a range of industries and business operations.

     

     


Leave a Comment

Name is required

Comment is required

No Comments Yet.

About Author

deepak.maurya (Writer)

More From Oodles

Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.