Corda is a Distributed Ledger Technology to be used by businesses, such as financial institutions, to keep a shared ledger of transactions and thus removing the need for the involved parties to constantly check that each of their books are in line after interacting with each other. Corda is designed to removes the need for all parties on the Corda network to know about each and every transaction, as only those involved are interested in them. Here is an example that shows how Coda works:
When a business or financial institution, a bank for this example, transfers money from a client’s account to the receiver’s account in another bank both must check that what was sent was valid, that the funds from the client have been sent and finally that they were received correctly. Ensuring that the funds have decreased in one account and increased in the other requires multiple checks from both sides of the transaction as they need to be 100% sure that money hasn’t magically disappeared or created out of thin air. Furthermore, a number of these checks are done manually, requiring even more time and effort to ensure consistency.
Learning Objectives
Intro to Corda
- Understand the overall architecture, key concepts and components of Corda
Getting Started
- Learn how to set up your development environment for running and writing CorDapps
States
- Understand how to model shared facts and agreements on the ledger
Smart Contract development in Corda
- Use test-driven development to create smart contracts controlling the evolution of the ledger
Transactions
- Learn about the transaction lifecycle, and how transactions are used to propose ledger updates
Flows
- Use our flow testing framework to develop flows allowing Corda users to automate common business logic
Corda Node
- Learn how the node is designed, what it can do, and what it can’t. Learn what services/APIs the node offers
Corda Network
- Understand how a Corda network is structured and how data flows between nodes on the network
Other topics
- Review of Java programming and Kotlin and IntelliJ
- Review of peer to peer networks
- Review of Notaries and consensus
- Review of Coda tools such as Corda Network Builder, Network Bootstrapper, DemoBench, and Node Explorer
Topics and Subtopics
The below is the outline for this course
1- Coda for blockchain development
- What is Coda
- What is a distributed ledger
- How Corda is different from Ethereum
- Corda versus Hyperledger
2- Review of Java programming as well as Kotlin and IntelliJ
- Review Java programming language
- Setup Kotlin development environment
- Setup IntelliJ development environment
3- Review of Corda key concepts
- The Network
- The ledger
- States
- Transactions
- Contracts
- Flows
- Consensus
- Notaries
- Vault
- Time-windows
- Oracles
- Nodes
- Transaction tear-offs
- Trade-offs
- Deterministic JVM
4- The peer to peer network
- Network overview
- Identity and the permissioning service
- The network map
- Message delivery
- Serialization, sessioning, deduplication and signing
5- Run and write Corda DApps
- What is a CorDapp?
- Getting set up for CorDapp development
- Running the example CorDapp
- CorDapp samples
- Structuring a CorDapp
- Building and installing a CorDapp
- Building CorDapps against a non-release branch
- Debugging a CorDapp
- Versioning
6- Notaries and consensus
- Comparison to Nakamoto block chains
- Algorithmic agility
- Validating and non-validating notaries
- Merging networks
- Guaranteed data distribution
7- Corda Contracts and Transaction Flow
- Writing a contract
- Writing a contract test
- Upgrading contracts
- Integration testing
- Building transactions
- Writing flows
- Writing flow tests
- Writing oracle services
8- Review of essential Corda tools
- Corda Network Builder
- Network Bootstrapper
- DemoBench
- Node Explorer
Requirements
Good knowledge of Java programming as well as basic knowledge of Linux commands is required.
If you are not familiar with blockchain technology, taking Intro to Blockchain Technology course is highly recommended.
Related Courses
- Blockchain Management in Hyperledger for System Admins
- Hyperledger Fabric and Composer for Developers
- Learn Solidity Programming by Examples
- Introduction to Ethereum Blockchain Development
- Intro to Hyperledger Sawtooth for System Admins
Complete Training Bundle
If you are serious about becoming a pro blockchain specialist, you should enroll in our Complete Blockchain Development Training. This bundle covers all essential and practical topics related to blockchain design and development. For $290 monthly subscription, you can have access to 300+ hours of hands-on project-based training covering all courses related to blockchain technology like Hyperledger, Ethereum, Solidity, Blockchain Security, Corda R3 and more. Click here to learn more.
Private Tutoring Classes
To take skills you learn from this course to the next level, taking the Coding Bootcamps schooltutoring classes are highly recommended. It is also a great opportunity to discuss your questions and problems related to this course with an experienced instructor:
- Private tutoring sessions for blockchain design and development - Weekly and monthly plans
- Blockchain cybersecurity- Private tutoring sessions
- Blockchain development with Corda R3- Private tutoring sessions
What Is Next?
After finishing this course, you can enroll in any of following classes:
Recommended Free Courses
If you are new to the IT or programming, we suggest the following free courses:
Course Curriculum
- What you'll learn in this course (2:15)
- PDF File for Course Lecture
- 1- What is Corda and how it works? (10:03)
- 2- Getting Corda set up (5:19)
- 3- Review of Corda key concepts- States (6:32)
- 4- Review of Corda key concepts- Contracts (13:29)
- 5- Review of Corda key concepts- Flows (7:29)
- 6- Running our CorDapp (8:59)
- Next steps (1:08)
Related Courses
Here is a list of related courses:
Jim Sullivan- MS, MBA and IBM Master Instructor & Certified Corda Developer
Jim is a senior blockchain consultant and developer at DC Web Makers. He has a Bachelor’s Degree in Electrical Engineering and a Master’s Degree in Computer Science along with an MBA. He has been a practicing software engineer for 20 years. Currently, at DC Web Makers, he leads an expert team in Blockchain development, DevOps, Cloud, application development, and the SAFe Agile methodology. He is an IBM Master Instructor. He is a Blockchain professional, and a MultiChain partner. He is also an expert in HyperLedger, Ethereum, Corda, and is architecting and developing Blockchain-based web products. He has also taught blockchain courses for companies such as O’Reilly Media. His other skills are as follows:
- Amazon Web Services (AWS) partner, and administrator.
- Multichain, Corda, Hyperledger Blockchain partner.
- HealthCare Blockchain Certified
- Certified Scaled Agile Program Consultant (SAFe SPC): Certified by the Scaled Agile Institute.
- Certified SAFe DevOps
- Perl Developer, Java developer, Java web developer, and .NET developer
- Front-end web development with HTML, HTML5, CSS3 and JavaScript
- Node.JS, PHP, Oracle and MySQL development and administration.
- WebSphere, Tomcat, Wicket, JBoss developer.
- Certified Scrum Master: Certified by the Scrum Alliance and Certified Scrum Professional: Certified by the Scrum Alliance.
- ALM Disciplines: Requirements, Change Management, Development, and Quality.
- Certified Tool Expertise: UrbanCode, IBM Team Concert, DOORS Next Gen, IBM Quality Manager, ClearCase, ClearQuest, Jira, Rally, SVN, Maven, Hudson/Jenkins, Guacamole, UrbanCode, Chef, Puppet.
- Certified VMWare Technical Professional.
- Linux and Windows Administration
Related Courses
Here is a list of related courses: