
Explore the architecture and key concepts of Corda, and build and test Corda apps in Java through hands-on sections covering basics, practical coding, and asset transfers among traders.
Clarifies the difference between blockchain and DLT using a Bitcoin network example, showing how blocks form a chain across nodes and highlighting Guarda as a platform.
Explore the intro to Corda and its role in blockchain and DLT adoption. See how it enables interoperable private networks across finance, manufacturing, media, and supply chains.
Explore the guard on network, a permissioned network of nodes with a doorman, network map, and DLC certificates; include legal identities, service identities like notary and Oracle, and confidential identities.
The ledger explains that each node maintains a separate ledger of facts and shares information on a need-to-know basis, forming a shared ledger without global broadcasts.
Explore how states in Corda act as immutable facts known by one or more participants, evolving by consuming the current state and creating new states reflected in each node's wallet.
Explore how transactions update a ledger by using inputs and outputs, referencing prior states by hash and index, and enforcing contracts with commands and notary signatures.
Discover how contracts enforce transaction validity in Corda by requiring all signers, checking every input and output state, and using oracles and legal attachments for external data and disputes.
Explore flows in Corda, a sequence of steps that updates ledger state and automates transaction approvals between nodes, illustrated by a cash transfer, notary authorization, and sub flows.
Understand valid consensus by ensuring each input and output state has required signatures and contract constraints, and mastering uniqueness consensus to prevent reusing inputs through walking the chain.
Understand how notaries enforce uniqueness consensus by verifying input states and preventing double spends, while optionally offering validating consensus to ensure contract constraints are met.
Explore how time windows and notaries govern diamond transactions and how oracles provide external data, such as stock prices and interest rates, with multiple facts signed to finalize a transaction.
Explore how a Corda node operates within a blockchain network, including the Java-based node, SQL database, service hub, and state storage for transactions, attachments, flow checkpoints, and ledger updates.
Install the Java 8 SDK and the IDE, import the card app template, configure the project SDK, and deploy the notary and other nodes to run sample flows.
Troubleshoot Garda deployment errors by using Stack Overflow and discourse, and fix two common issues by correcting host mappings and environment configurations for Windows and Mac/Linux.
Design a cordapp to record a Tesla cybertruck shipment to SpaceX on a distributed ledger, defining the state, contract constraints, and the shipment flow with notary approval.
Create an intellij project by cloning the starter template, set up the project folders, clear the bin, and inspect front-end, contracts, states, and flows to prepare for node definitions.
Define the car state in the Corda app by adding model, owner, and manufacturer fields, getters, and a constructor, and link it to the car contract.
Develop and test a Corda contract by implementing verify constraints, enforcing shape and content rules, restricting to a single shipment command, and validating required signers on the transaction.
Define and execute a shipment flow in a Corda dlt app, using a transaction builder with notary, output state, and finality flow for Tesla and Space X.
Run Tesla Cordapp demonstrates deploying nodes and running a shipment flow on a test network, showing a cyber truck between Tesla and Space X with contract state checks.
Implement an identity check in the shipment flow to allow only Tesla, update the car flow and seed shipment logic, and explore notary-based uniqueness on Corda.
Build a metals cordapp on Corda to issue and transfer precious metals with a metal state and contract. Configure mint, trader a, and trader b for issue and transfer flows.
Develop automated state tests for a Corda app by creating test identities, defining the state, and validating two participants (issuer and owner) and state attributes via unit tests.
Define private state attributes and a constructor for the Corda state, verify state tests pass, and prepare for contract definition in the next lecture.
Define and implement contract tests for the metal contract, establishing a three-party network, specifying input and output states, and validating issue and transfer commands with proper signing and verification.
Define and test the transfer command in metal contract by enforcing one input and one output, validating owner signing (instead of issuer) and erroring on dummy inputs.
Define the metal contract in Corda with shape and content rules for issue and transfer commands. Enforce gold or silver outputs and proper signers, validated through tests.
Define and test issue metal flow and transformative flow with a mock network of three nodes, crafting tests for a no input, one output transaction with output state and signers.
Test issue metal flow and transfer flow in a Corda app by issuing gold through the mint, executing the transformative flow, and validating a single input and output.
Define and test an issue metal flow in Corda by building and signing a transaction, retrieving the notary, sending to counterparty, and validating finality.
Define a transfer flow in Corda by building a transformative flow and responder, creating input and output metal states showing owner change, with notary, commands, and signing sessions.
Retrieve the input state from the wallet by querying the service hub for unconsumed states, filtering by name and weight, then attach the found input state to the transaction.
Define a flow to query all vault states and output organized results showing consumed states and their details. Display state names, owners, weights, and issues for quick inspection.
Deploy the guard app in the metals cordapp, execute transfer flows for gold and silver, verify notary signatures and state transitions with the search workflow, ensuring correct consumer metals states.
Explore building card apps with a Visual Studio Code extension that streamlines deployment, node interaction, and transaction exploration via the command palette and transaction explorer.
Corda is an open source platform for developing DLT applications for enterprises, built by the r3 consortium.
This course covers the basics you need to know to get started with developing Cordapps on the Corda platform. The course includes both theory and coding projects. If you already have familiarity with the key concepts of Corda feel free to start at Section 2.
This course is ideal for beginners.
What is not covered
Developing API endpoints for the front-end
Developing front end (html/css)
Comparison with other Blockchain/DLT systems