8-12 hours per week
A computer with at least 8 GB RAM
and 20GB free hard-disk space
About this Course
Corda is a distributed ledger technology and smart contract platform designed for business and enterprise.
It is one of the few toolkits that allow companies to create production-ready private blockchain networks right now. We’ve seen it used for insurance, supply chain management, and settlement, as well as in other use cases and proofs of concept.
This online course introduces Corda and guides students through the entire system. Students will learn the precise challenges Corda is designed to solve and how Corda compares to other leading blockchains and DLT platforms.
Participants will learn how to design and build applications for Corda networks including the tools, language, thought process and service interfaces. Participants will complete hands-on projects as they acquire the full body of skills needed to pursue enterprise-class projects on Corda.
This optional module addresses programming basics to help new users get acquainted with unfamiliar tools and concepts.
- Introduction to IntelliJ for those who don’t know
- Running virtualised Linux on a non-Linux machine
- Linux survival skills for new users
- Java, Kotlin and Object-Oriented Programming
Blockchain Foundations and Introduction to Corda
This module focuses on the basics of blockchain technology and compares leading blockchains and DLT platforms. This is a refresher intended to provide context for participants who know and a clear introduction for those who are new to this paradigm.
- What is blockchain?
- How do P2P systems operate?
- The most prominent consensus mechanisms
- Public, private and consortium networks
- How do smart contracts work?
- Key cryptography concepts
- Comparing leading blockchain platforms
- Why Corda? Design goals and comparison to other platforms
Getting to Know Corda
Corda Distributed Ledger Technology introduces many new concepts that challenge traditional approaches to system architecture. Discover the Corda paradigm, get acquainted with the network components and application concepts and learn to think about applications the Corda way.
- What are states and the vault?
- What are contracts and what are their roles?
- How are they shared across the network?
- How is privacy achieved in Corda networks?
- What are input and output states?
- How do states relate to contracts and verification?
- How do flows coordinate counterparties?
- What services are available inside the nodes?
- What services are available from the network?
Up and Running with Corda
This deep dive leads participants through the process of getting started with Corda and designing contracts. Participants learn about contracts, the different types of state, how Corda stores state history in the data vault and how states are shared across Corda networks.
- Install the developer tools, start the developer network and run example apps
- The structure of state instances, state contract references and history
- The participant list and the system of signing keys
- User-defined fields and verification
- Linear states, ownable states and state grouping
- The three types of constraints
- Wrapping contract states in transaction states
- Encumbrances and state consumption
- Testing Contracts with LedgerDSL
Transactions, Flows and APIs
Participants learn the details of transactions and flows on Corda networks, including proposals, freezing transactions, transaction finalisation and the Corda Transaction Builder. We unpack network composition, node internal services and reveal how CorDapps are customisations of node behaviour.
- The Transaction Builder, input and output states and the command wrapper
- Using timestamps in Corda and the Notary service
- Adding items to transactions with the Transaction Builder
- Wire Transactions, Signed Transactions and Ledger Transactions
- Built-in flows, designing flows & sub-flows,
- Tracking processes, handling exceptions and suspending flows
- Key considerations for designing flows
- Node internals, CordaRPCOps and the ServiceHub
- The vault, key management service, network map and map cache
- Special treatment of time in Corda
- Designing networks building a developer network
- Registering APIs and Flows and using plugins
- Changing the Notary and DataVending
- Building a UI
- Testing API Endpoints
Students will create a project that demonstrates key Corda features used in the intended way. Students add functionality as they progress through important concepts and techniques. The completed project is an intricate and realistic Cordapp that works with cash, debt and other contracts, and facilitates flexible, potentially complex settlement agreements across multiple currencies and instruments. Along the way, students will learn about:
- States, contracts, flows and constraints
- Currency, debt and schema definitions
- Including executable code and legal prose in transactions
- Finding, substituting and aggregating assets in transaction execution
- Flows for swapping currency and debt instruments
- Test-driven development of contracts and flows
- Building Cordapp APIs and UIs
- Using Oracles to fetch market prices and sign transactions
- Creating time-based quotes, partial payments and interest in debt contracts
- Node-to-node requests for information and access control
Teaching & Communication
We offer a dedicated Slack channel where you can collaborate with your classmates and instructors. Expert instructors engage in active tutoring to guide you through the course and participants are encouraged to help one another.
Our instructors mentor you throughout the course duration and during the exam period to clarify course content and help you reach your individual learning objectives at your own pace.
Your course team
Xavier is a software and infrastructure engineer. Over the past 15 years, he has coded, deployed, customised, troubleshot, and supported various software systems. He has also guided, educated, taught, and coached customers across Asia. Xavier used to be based in Thailand and Singapore. For more than four years now, he has been a keen member of the blockchain community.
Rob has worn many hats in his extensive IT career including experience designing, constructing, implementing and operating innovative software solutions, developing training programs and supporting online education platforms. Rob has been dabbling in blockchain technology since the early days and quickly recognised the disruptive potential of Smart Contracts and decentralised apps. Since 2016, Rob has been absorbing all things related to Smart Contracts and supporting developers on their quest to master this technology.
This is a 6-week course with new content released every week.
The course is designed to be flexible and self-paced. That means you don’t have to be online at a specific time and can study the material whenever it fits best into your daily routine.
B9lab awards certificates to participants who pass the final exam with a grade of 80% or higher. This certificate is publicly verifiable on the Ethereum blockchain.
You can see how B9lab certification works at the B9lab Certification Center.