{"id":14434,"date":"2021-02-16T05:42:23","date_gmt":"2021-02-16T09:42:23","guid":{"rendered":"https:\/\/101blockchains.com\/?p=14434"},"modified":"2023-07-19T02:46:13","modified_gmt":"2023-07-19T06:46:13","slug":"corda-tutorial","status":"publish","type":"post","link":"https:\/\/101blockchains.com\/corda-tutorial\/","title":{"rendered":"The Ultimate Corda Tutorial 2022"},"content":{"rendered":"<p style=\"text-align: justify;\"><em>Aspiring to become a <a href=\"https:\/\/101blockchains.com\/r3-corda-certification\/\" target=\"_blank\" rel=\"noopener\">Corda expert<\/a>? The following corda tutorial will cover everything you need to know about developing a Corda application. <\/em><\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/101blockchains.com\/blockchain-technology-explained\/\" target=\"_blank\" rel=\"noopener\">Blockchain<\/a> has come a long way. The idea of <a href=\"https:\/\/101blockchains.com\/distributed-ledger-technology\/\" target=\"_blank\" rel=\"noopener\">distributed ledger technology<\/a> has solved many pain points that the current organizations go through. The main aim is to become more efficient, secure, and scalable without investing millions of dollars.<\/p>\n<p style=\"text-align: justify;\">Corda is an open-source <a href=\"https:\/\/101blockchains.com\/blockchain-platforms\/\" target=\"_blank\" rel=\"noopener\">blockchain platform<\/a> that provides a global <a href=\"https:\/\/101blockchains.com\/blockchain-ecosystem\/\" target=\"_blank\" rel=\"noopener\">blockchain ecosystem<\/a>. It offers strict privacy with the use of <a href=\"https:\/\/101blockchains.com\/smart-contracts\/\" target=\"_blank\" rel=\"noopener\">smart contracts<\/a>. It also helps the business to transact directly and provide a cost-effective approach to streamline business operations.<\/p>\n<p style=\"text-align: justify;\">The main difference is how Corda handles the transactions. It is a DLT that wants to improve blockchain feasibility, speed, and scalability by not having a complete ledger with each peer. If a transaction can be completed between two peers without informing the whole network, then Corda will use that approach. It is also designed to include other parties that make it easy to follow the transaction and see its validity. It is a distributed ledger technology for the business.<\/p>\n<p style=\"text-align: justify;\">Let\u2019s get started with our Corda blockchain tutorial now!<\/p>\n<blockquote><p>Want to know more blockchain corda? Enroll Now in\u00a0<a href=\"https:\/\/academy.101blockchains.com\/courses\/beginners-guide-to-corda-development\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Beginners Guide to Corda Development Course<\/a><\/p><\/blockquote>\n<h2><strong>How the Corda Development Tutorial Is Structured?<\/strong><\/h2>\n<p style=\"text-align: justify;\">We will cover <a href=\"https:\/\/101blockchains.com\/corda-blockchain\/\" target=\"_blank\" rel=\"noopener\">Corda<\/a> in detail. In most of the sections, we will try to cover the important Corda concepts.<\/p>\n<p style=\"text-align: justify;\">The key concepts that we will cover include the following.<\/p>\n<ul style=\"text-align: justify;\">\n<li>State<\/li>\n<li>Contract<\/li>\n<li>Flow sections<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Our tutorial will create an IOU application. IOU stands for \u201cI Owe yoU.\u201d This is a simple presentation of the fact that one person owns money from another person. We will cover the concept more in detail later on.<\/p>\n<p style=\"text-align: justify;\">To make things simpler, we will be using Kotlin programming language. As a learner, it would be great if you know Kotlin, but it is not a necessary skill to have to follow the tutorial.<\/p>\n<h3><strong>Tools<\/strong><\/h3>\n<p style=\"text-align: justify;\">Before we get started with the Corda tutorial for beginners, we will need the following tools. There are also <a href=\"https:\/\/101blockchains.com\/blockchain-tools\/\" target=\"_blank\" rel=\"noopener\">blockchain tools<\/a> that developer really loves to use frequently. However, we are not going to cover them today.<\/p>\n<ul style=\"text-align: justify;\">\n<li>Kotlin<\/li>\n<li>Gradle<\/li>\n<li>Git<\/li>\n<li>IntelliJ<\/li>\n<li>Command-line<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">As of the integrated development environment, we are going to use the IntelliJ. It will simplify our development.<\/p>\n<blockquote><p>Build your identity as a certified blockchain expert with 101 Blockchains\u2019\u00a0<a href=\"https:\/\/101blockchains.com\/certifications\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Blockchain Certifications<\/a>\u00a0designed to provide enhanced career prospects.<\/p><\/blockquote>\n<h3><strong>Corda Tutorial<\/strong><\/h3>\n<p><a href=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial.png\"><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial.png.webp 2000w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-300x300.png.webp 300w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-1024x1024.png.webp 1024w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-150x150.png.webp 150w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-768x768.png.webp 768w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-1536x1536.png 1536w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-600x600.png.webp 600w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-100x100.png.webp 100w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial.png\" height=\"2000\" width=\"2000\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial.png 2000w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-300x300.png 300w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-1024x1024.png 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-150x150.png 150w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-768x768.png 768w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-1536x1536.png 1536w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-600x600.png 600w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-100x100.png 100w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" class=\"aligncenter wp-image-14573 size-full sp-no-webp\" alt=\"Corda tutorial\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/a><\/p>\n<pre>Please include attribution to 101blockchains.com with this graphic. &lt;a href='https:\/\/101blockchains.com\/blockchain-infographics\/'&gt; &lt;img src='https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial.png' alt='Corda tutorial='0' \/&gt; &lt;\/a&gt;\r\n<\/pre>\n<h3><strong>What is Corda?<\/strong><\/h3>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/101blockchains.com\/corda-blockchain\/\" target=\"_blank\" rel=\"noopener\">Corda blockchain<\/a> is best defined as an open-source that solves business problems by providing an <a href=\"https:\/\/101blockchains.com\/blockchain-interoperability\/\" target=\"_blank\" rel=\"noopener\">interoperable blockchai<\/a>n network. Its key features include strict privacy, efficiency, and direct transactions using smart contract technology.<\/p>\n<p style=\"text-align: justify;\">The <a href=\"https:\/\/101blockchains.com\/smart-contracts\/\" target=\"_blank\" rel=\"noopener\">smart contracts<\/a> used in Corda can be written using JVM languages or Java. The <a href=\"https:\/\/101blockchains.com\/what-is-dapp\/\" target=\"_blank\" rel=\"noopener\">dApps<\/a> within the Corda platform is known as CorDapps. Also, they offer <a href=\"https:\/\/101blockchains.com\/peer-to-peer-network\/\" target=\"_blank\" rel=\"noopener\">peer-to-peer<\/a> nodes network with the ability to use Notary infrastructure. The infrastructure is used to validate and sequence transactions without needing to broadcast the transaction details to every peer on the network.<\/p>\n<p style=\"text-align: justify;\">Another important component used by the blockchain includes the Flow framework, which manages the negotiation and communication among participants.<\/p>\n<ul>\n<li>\n<h4><strong>Understanding the Corda Ledger<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Corda Ledger is not similar to the ledger system utilized by traditional <a href=\"https:\/\/101blockchains.com\/types-of-blockchain\/\" target=\"_blank\" rel=\"noopener\">blockchain technologies<\/a>. That\u2019s why we need to have a clear grasp of how it works and understand it from both its functional point of view and data perspective.<\/p>\n<p style=\"text-align: justify;\">The Corda ledger works like a graph. All the nodes in a graph are connected through each other, either directly or through some other nodes. All nodes can communicate with each other if they want to. The use of the graph means that there is no need to broadcast the transaction globally.<\/p>\n<ul>\n<li>\n<h4><strong>Nodes discovery<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">So, how do the <a href=\"https:\/\/101blockchains.com\/blockchain-nodes\/\" target=\"_blank\" rel=\"noopener\">nodes<\/a> discover each other? They use a Network map to find each other. You can think of it, similar to a phone book. The Network map contains the metadata to locate each of these services and hence provides a nice way for map discovery.<\/p>\n<p><a href=\"https:\/\/101blockchains.com\/certification\/blockchain-expert-certification\/\" target=\"_blank\" rel=\"noopener\"><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1.webp 1200w,https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1-300x23.webp 300w,https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1-1024x77.webp 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1-768x58.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1.png\" height=\"90\" width=\"1200\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1.png 1200w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1-300x23.png 300w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1-1024x77.png 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/Certified-Enterprise-Blockchain-Professional-1-768x58.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" class=\"aligncenter wp-image-43445 size-full sp-no-webp\" alt=\"certified enterprise blockchain professional\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/a><\/p>\n<h3><strong>How Does It Work?<\/strong><\/h3>\n<p style=\"text-align: justify;\">The biggest challenge in a non-global broadcast blockchain network is <a href=\"https:\/\/101blockchains.com\/consensus-algorithms-blockchain\/\" target=\"_blank\" rel=\"noopener\">consensus<\/a>. So, how do the nodes know about each other and verify that information?<\/p>\n<p style=\"text-align: justify;\">The answer here is shared facts. Each node overlaps any other node in some way or another. The shared facts are stored in the Corda ledger, which can then be used to verify the information. The Corda ledger contains a set of these sets. As there is no central node, these nodes act proxy when there is a need to verify things. To store that information, each node has a vault that contains the fact which cannot be changed. This is how developers <a href=\"https:\/\/101blockchains.com\/implement-blockchain\/\" target=\"_blank\" rel=\"noopener\">implement blockchain<\/a>.<\/p>\n<ul>\n<li>\n<h4><strong>States<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">States in the Corda blockchain are immutable. They are used to store shared facts about a transaction, agreement, or contract at a specific point of time.<\/p>\n<p style=\"text-align: justify;\">Sounds technical? Let\u2019s try to break it down in simpler words.<\/p>\n<ul>\n<li>\n<h4><strong>Shared facts<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Let\u2019s take two people using the Corda ledger. Let\u2019s name them Alpha and Bravo.<\/p>\n<p style=\"text-align: justify;\">Both of them have a shared fact. The shared fact is an IOU (I Own You). IOU is used when a lender has money due to the loan provider. To make the fact shared, both of them have the same shared information represented in the IOU.<\/p>\n<ul>\n<li>\n<h4><strong>Represent Anything<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">States can be used to represent anything. This means that it can store any form of information for different <a href=\"https:\/\/101blockchains.com\/corda-use-cases\/\" target=\"_blank\" rel=\"noopener\">corda use cases<\/a>. As a developer, you can use states to store KYC information, financial instruments, syndicated loans, and so on.<\/p>\n<p style=\"text-align: justify;\">Also, states can be used to store multiple attributes. But there is a limitation for states. The limitation is that once a state is given a type, its type cannot be changed. If you create an IOU state, then it will have to state the IOU state for the rest of its life.<\/p>\n<ul>\n<li>\n<h4><strong>Immutable and Evolving<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">States are created to be immutable. However, their immutability is concerning time. A state is presented at a given time.<\/p>\n<p style=\"text-align: justify;\">This means that a new state can be created in addition to the original state. It is done when there is a new change made to the state that needs to be stored. The old state is then termed as historical.<\/p>\n<p style=\"text-align: justify;\">For example, if Alpha pays off its debt to Bravo, then a new state will be created, citing the fact that Alpha has cleared the debt. Also, if the state is completed, the IOU will expire. In simple terms, the life cycle of the state, in this case, is as follows.<\/p>\n<ol style=\"text-align: justify;\">\n<li>A first state is created to showcase that Alpha is under debt to Bravo. This states also share more information about the IoU, including the date, time, interest rate, the amount lent, and other useful information required for the IoU.<\/li>\n<li>Now, when Alpha resolves the debt, a new state is created that updates the new information. The old state is not touched in any way as it is immutable.<\/li>\n<li>The new state is now updated in the shared facts among the two users.<\/li>\n<li>Now, the old state is termed as historic. There can be multiple historical states in one single transaction. This can lead to creating a sequence of states.<\/li>\n<li>A sequence head is created, which refers to the latest state. Also, the latest states are also termed as unconsumed.<\/li>\n<\/ol>\n<blockquote><p>Curious to learn about blockchain implementation and strategy for managing your blockchain projects? Enroll Now in\u00a0<a href=\"https:\/\/101blockchains.com\/course\/blockchain-implementation-and-strategy\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Blockchain Technology \u2013 Implementation And Strategy<\/a> Course!<\/p><\/blockquote>\n<h3><strong>Getting the Development Environment Ready<\/strong><\/h3>\n<p style=\"text-align: justify;\">Now, as per the <a href=\"https:\/\/101blockchains.com\/dapp-development-guide\/\" target=\"_blank\" rel=\"noopener\">dApp development guide<\/a> the environment should be ready for the Corda development tutorial. You need the following tools to get started.<\/p>\n<ul>\n<li>Oracle JDK 8 JVM &#8211; v8u171 or above.<\/li>\n<li>Git<\/li>\n<li>IntelliJ IDEA<\/li>\n<li>\n<h4><strong>Cloning Git repository<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">The best way to start our journey is to run an example of CorDapp in our development environment. The good news is that Corda offers an example CorDapp that you can download and run locally.<\/p>\n<p style=\"text-align: justify;\">You can clone the repository locally using the git clone command as below.<\/p>\n<blockquote>\n<p style=\"text-align: justify;\">git clone <a href=\"https:\/\/github.com\/roger3cev\/corda-training-template.git\" target=\"_blank\" rel=\"noopener\">http:\/\/github.com\/roger3cev\/corda-training-template.git<\/a><\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">For the tutorial, we are going to use IntelliJ to import the git repository. Open up the IntelliJ. Once done, you will see the option to check out from Version Control. Click on it and then clone the repository on your computer.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-intelliJ.png.webp 403w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-intelliJ-300x254.png.webp 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-intelliJ.png\" height=\"341\" width=\"403\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-intelliJ.png 403w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-intelliJ-300x254.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" class=\"aligncenter wp-image-14523 size-full sp-no-webp\" alt=\"intelliJ\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">You can choose to save the project; you will find the project repository as below.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-project-structure.png.webp 357w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-project-structure-216x300.png.webp 216w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-project-structure.png\" height=\"495\" width=\"357\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-project-structure.png 357w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-project-structure-216x300.png 216w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" class=\"aligncenter wp-image-14524 size-full sp-no-webp\" alt=\"project structure\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">At the bottom right, you will find a notification saying, import Gradle Project such as below. It is important for our Corda Tutorial to work.<\/p>\n<p style=\"text-align: justify;\">Click on the \u201cImport Gradle Project.\u201d<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-import-gradle-project.png.webp 509w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-import-gradle-project-300x143.png.webp 300w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-import-gradle-project.png\" height=\"243\" width=\"509\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-import-gradle-project.png 509w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-import-gradle-project-300x143.png 300w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" class=\"aligncenter wp-image-14522 size-full sp-no-webp\" alt=\"import gradle project\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">You also need to set up the Project SDK. Go to the project settings and then select the latest version of Java. In my case, it was set to Java 11.0.5.<\/p>\n<p style=\"text-align: justify;\">If you find any error to run, then you should upgrade your Gradle and let it import the necessary repositories to make it work. It will take some time to do so. So, take a back seat and wait for it to get completed.<\/p>\n<p style=\"text-align: justify;\">For me, it took around 20 mins to complete all of the Gradle dependencies updates.<\/p>\n<p style=\"text-align: justify;\">Let\u2019s quickly go through the structure of our Corda tutorial project. Our main repository is the src file. As we are using Kotlin, we will be using the Kotlin-source folder; you will find the src folder under it. Please do not confuse it with the java-source folder.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-kotlin-source.png.webp 349w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-kotlin-source-278x300.png.webp 278w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-kotlin-source.png\" height=\"376\" width=\"349\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-kotlin-source.png 349w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-kotlin-source-278x300.png 278w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" class=\"aligncenter wp-image-14518 size-full sp-no-webp\" alt=\"Corda tutorial kotlin source\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">Here, you will find all the necessary files in the training folder. There is also a \u201ctest\u201d folder which contains the test units for the application.<\/p>\n<p style=\"text-align: justify;\">Another important file that we need to know about is the IOUState.kt. It is located within the training &gt; state.<\/p>\n<ul>\n<li>\n<h4><strong>Getting State Units Tests Working<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">The IOUState class looks very basic. It is not completed yet. We are going to use a test-driven development methodology to develop the class and get it ready to work.<\/p>\n<p style=\"text-align: justify;\">Test-driven development is a great approach when it comes to modern development practices. It helps iron out bugs or other issues right from the start.<\/p>\n<p style=\"text-align: justify;\">That\u2019s why the template that you downloaded already has corresponding tests for each of the classes, including contract, flow, and state.<\/p>\n<p style=\"text-align: justify;\">To get started, we need to go to the Tests &gt; Kotlin&gt; net &gt; Corda &gt; training &gt; state &gt; IOUStateTests<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-IOUStatetests.png.webp \"  type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-IOUStatetests.png\" height=\"224\" width=\"289\" class=\"aligncenter wp-image-14517 size-full sp-no-webp\" alt=\"IOUStatetests\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">There you will find tests already written. It also comes with tons of documentation. The <a href=\"https:\/\/101blockchains.com\/r3-corda-certification\/\" target=\"_blank\" rel=\"noopener\">R3 Corda<\/a> team has taken their time to create the template.<\/p>\n<p style=\"text-align: justify;\">You need to uncomment the section, as shown below, to make a single test to run.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-uncomment-code.png.webp 512w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-uncomment-code-300x193.png.webp 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-uncomment-code.png\" height=\"330\" width=\"512\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-uncomment-code.png 512w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-uncomment-code-300x193.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" class=\"aligncenter wp-image-14519 size-full sp-no-webp\" alt=\"uncomment code\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">Select the code and press Ctrl + \/ to uncomment. If you use MAC, use CMD + \/ to uncomment.<\/p>\n<p style=\"text-align: justify;\">Now, it\u2019s time for us to run the unit test.<\/p>\n<p style=\"text-align: justify;\">As our IOUState class is almost empty, the tests will fail, and you will get the following test error.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-failed-tests.png.webp 512w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-failed-tests-300x134.png.webp 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-failed-tests.png\" height=\"229\" width=\"512\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-failed-tests.png 512w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-failed-tests-300x134.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" class=\"aligncenter wp-image-14516 size-full sp-no-webp\" alt=\"failed tests\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">As you can see, it is saying that the Kotlin-source:test failed due to the NoSuchFieldException. This means that the test is expecting the amount variable where it found none.<\/p>\n<p style=\"text-align: justify;\">To fix it, we need to go back to our IOUState.kt file and edit it. If you know <a href=\"https:\/\/101blockchains.com\/how-to-build-a-blockchain-app\/\" target=\"_blank\" rel=\"noopener\">how to build a blockchain app<\/a> then it will be a easy task for you.<\/p>\n<p style=\"text-align: justify;\">Before we proceed, we need to get a better understanding of Kotlin. To make sense of the code that we are going to edit, it is better to get an introduction. Kotlin is a dense programming language. Also, Kotlin is going to convert into JVM virtual machine, so we should be fine with the use of it in our tutorial.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-IOUfunction.png.webp 512w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-IOUfunction-300x50.png.webp 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-IOUfunction.png\" height=\"85\" width=\"512\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-IOUfunction.png 512w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/corda-tutorial-IOUfunction-300x50.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" class=\"aligncenter wp-image-14526 size-full sp-no-webp\" alt=\"project structure\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<ul style=\"text-align: justify;\">\n<li>data class IOUState \u2192 This keyword means that we define a data class named \u201cIOUState.\u201d<\/li>\n<li>val data \u2192 variable declaration. The name of the field is data<\/li>\n<li>String = \u201cdata\u201d \u2192 this defines the default value of the data variable if nothing is defined.<\/li>\n<li>ContractState \u2192 Interface<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">If you made all the changes to the IOUState.kt file according to the test, the IOUState class will look as below.<\/p>\n<pre style=\"text-align: justify;\">data class IOUState(val amount: Amount&lt;Currency&gt;,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val lender: Party,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val borrower: Party,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val paid: Amount&lt;Currency&gt; = Amount(0, amount.token),\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override val linearId: UniqueIdentifier = UniqueIdentifier()): LinearState {\r\n\r\n\u00a0\u00a0\u00a0<em>\/**<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0*\u00a0 This property holds a list of the nodes which can \"use\" this state in a valid transaction. In this case, the<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0*\u00a0 lender or the borrower.<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0*\/<\/em>\r\n\r\noverride val participants: List&lt;Party&gt; get() = listOf(lender, borrower)\r\n\r\n\u00a0\u00a0\u00a0<em>\/**<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0* Helper methods for when building transactions for settling and transferring IOUs.<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0* - [pay] adds an amount to the paid property. It does no validation.<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0* - [withNewLender] creates a copy of the current state with a newly specified lender. For use when transferring.<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0*\/<\/em>\r\n\r\nfun pay(amountToPay: Amount&lt;Currency&gt;) = copy(paid = paid.plus(amountToPay))\r\n\r\n\u00a0\u00a0\u00a0fun withNewLender(newLender: Party) = copy(lender = newLender)\r\n\r\n}<\/pre>\n<p style=\"text-align: justify;\">Now, you should be able to add helper methods according to the comments above.<\/p>\n<blockquote><p>Want to become a Corda expert? Here\u2019s a guide to <a href=\"https:\/\/101blockchains.com\/r3-corda-certification\/\" target=\"_blank\" rel=\"noopener\">R3 Corda certification<\/a> that will guide you through your certification process.<\/p><\/blockquote>\n<h3><strong>Corda Contacts<\/strong><\/h3>\n<p style=\"text-align: justify;\">We learned that the States could evolve into new states. Developers can control the on-ledger state&#8217;s evolution using contracts. In this section, we will learn about contracts in detail.<\/p>\n<p style=\"text-align: justify;\">As R3 Corda doesn&#8217;t depend on broadcasting messages to the whole network, it utilizes a common transaction verification definition for each state type. In this way, the Corda network verifies transaction and gain consensus. It\u2019s quite similar to how other <a href=\"https:\/\/101blockchains.com\/blockchain-records-transactions\/\" target=\"_blank\" rel=\"noopener\">blockchain records transactions<\/a>.<\/p>\n<p style=\"text-align: justify;\">Corda Contracts are implemented via functions. You can think of states as data storage units and contracts is a way to verify the data and its state changes. These verification functions are specific to the state type.<\/p>\n<p style=\"text-align: justify;\">To ensure that states can be verified and are serviceable, each state needs to be referenced with a contract.<\/p>\n<p style=\"text-align: justify;\">Each contract contains two items, including contract code and legal prose.<\/p>\n<p style=\"text-align: justify;\">To understand it, let&#8217;s take a look at the following image.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Contract-state.png.webp 512w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Contract-state-300x103.png.webp 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Contract-state.png\" height=\"175\" width=\"512\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Contract-state.png 512w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Contract-state-300x103.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" class=\"aligncenter wp-image-14520 size-full sp-no-webp\" alt=\"Contract state\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">As you can see, the contract contains two items, and in the state, there is an IOU contract reference for that code.<\/p>\n<p style=\"text-align: justify;\"><strong>Legal Prose:<\/strong> Legal Prose is used as a reference to legal contract for the agreement. It is used to ensure that the existing legal framework and judicial system can be used if a dispute occurs.<\/p>\n<p style=\"text-align: justify;\">Other key features of Corda Contracts include the following<\/p>\n<ul style=\"text-align: justify;\">\n<li>Multiple contracts can reference a contract. Also, a contract can contain multiple state types<\/li>\n<li>Corda utilizes a verification function to verify a proposed transaction<\/li>\n<li>The signature of verification method is as below<\/li>\n<li>fun verify (tx: Transaction): Unit<\/li>\n<li>The verification method verifies the transaction by executing all constraints. If the constraint fails, then an exception will be thrown; otherwise, the transaction will be deemed valid.<\/li>\n<li>The verification function is deterministic.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">The <a href=\"https:\/\/101blockchains.com\/blockchain-templates\/\" target=\"_blank\" rel=\"noopener\">blockchain templates<\/a> also contains the code for the Corda contracts. You should also approach the Corda contracts similar to the states. It would help if you went to the Corda test units and then add the required code in the Contract Class.<\/p>\n<h3><strong>Corda Transactions<\/strong><\/h3>\n<p style=\"text-align: justify;\">Our next stop is Corda Transactions. It is transactions that make state changes possible.<\/p>\n<p style=\"text-align: justify;\">So, what is a transaction? It can be best defined as a container that contains input state references (0 or more). They also produce states (0 or more).<\/p>\n<p style=\"text-align: justify;\">Transactions enable the network to perform optimally by making it possible for multiple peers to interact with each other in real-time. It makes it possible for two parties to make an <a href=\"https:\/\/101blockchains.com\/atomic-swaps\/\" target=\"_blank\" rel=\"noopener\">atomic swap<\/a> without hampering other peer activities. Also, transactions are atomic in nature. This means a transaction can never be reduced or divided.<\/p>\n<p style=\"text-align: justify;\">There are also three types of transactions: Insurances, Updates, and Exits. Each one has their own agenda. Let\u2019s list them below.<\/p>\n<ul style=\"text-align: justify;\">\n<li>Insurance \u2192 Creates new states<\/li>\n<li>Updates \u2192 Change state properties<\/li>\n<li>Exits \u2192 Remove states from the ledger<\/li>\n<\/ul>\n<h3><strong>Corda Flows<\/strong><\/h3>\n<p style=\"text-align: justify;\">Corda Flows are the steps required for peers to carry out(execute) a successful transaction.<\/p>\n<p style=\"text-align: justify;\">The flow determines the CorDapp core business logic. It is responsible for making sure the transactions are executed in the correct order and correct parameters. As transactions are complex in nature, flows are needed to ensure that everything works as intended.<\/p>\n<p style=\"text-align: justify;\">Flow control ensures when to communicate, what to communicate, and with whom to communicate.<\/p>\n<p style=\"text-align: justify;\">This is the complete opposite of other <a href=\"https:\/\/101blockchains.com\/distributed-ledger-technology-dlt\/\" target=\"_blank\" rel=\"noopener\">distributed ledger technologies<\/a> that focus on broadcasting the transaction details to the whole network. Corda thrives on point-to-point transactions where the transactions need to have two important parameters, sender and receiver.<\/p>\n<p style=\"text-align: justify;\">Key things that you should know about flows<\/p>\n<ul style=\"text-align: justify;\">\n<li>Flows can complete within seconds or can take multiple days to complete<\/li>\n<li>They are completely autonomous<\/li>\n<li>The Flows sleep before they find a wait for a response<\/li>\n<li>Flows follow Flow Framework, which provides a mechanism for developers to ensure proper state machines development.<\/li>\n<li>Flows can be both paired and one-sided<\/li>\n<li>Developers can also code sub-flows to make code simpler<\/li>\n<\/ul>\n<blockquote><p>Want to take it up a notch and become an expert? Here\u2019s a guide to how to <a href=\"https:\/\/101blockchains.com\/build-a-blockchain-in-python\/\" target=\"_blank\" rel=\"noopener\">build a blockchain in Python<\/a>.<\/p><\/blockquote>\n<h3><strong>Consensus<\/strong><\/h3>\n<p style=\"text-align: justify;\">Out of all the exciting things that we have discussed until now, the thing that Corda special is how it achieves consensus. Corda has a unique approach and hence makes it viable for businesses out there.<\/p>\n<p style=\"text-align: justify;\">First of all, Corda utilizes two <a href=\"https:\/\/101blockchains.com\/consensus-algorithms-blockchain\/\" target=\"_blank\" rel=\"noopener\">consensus algorithms<\/a>. It includes the following<\/p>\n<ul style=\"text-align: justify;\">\n<li>Uniqueness consensus \u2192 This consensus method ensures that no conflicts ever happen on the ledger<\/li>\n<li>Verification consensus \u2192 The verification consensus handles the transactions and ensures that no conflicts happen as per the contract code. It facilitates the evolution of a shared state within the network.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Key things that you should know about Corda Consensus:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Unique consensus ensures that the ledger updates are always unique. Also, it makes sure the ledger is valid when the update is being made.<\/li>\n<li>The verification consensus ensures that the update is valid.<\/li>\n<\/ul>\n<h3><strong>Corda Node<\/strong><\/h3>\n<p style=\"text-align: justify;\">The last section of Corda that we are going to discuss here is the Corda Node. Corda Node is a high-level view of the Corda.<\/p>\n<p style=\"text-align: justify;\">So, what exactly is the Corda node?<\/p>\n<p style=\"text-align: justify;\">A Corda node is an entity that runs in Java Virtual Machine. It involves the following<\/p>\n<ul style=\"text-align: justify;\">\n<li>It offers storage services and vaults<\/li>\n<li>SQL DB backs the vaults and storage services<\/li>\n<li>Dedicated folders are used to store attachments<\/li>\n<li>Offers custom functionality and built-in extensions known as CorDapps<\/li>\n<li>Offers RPC client framework<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">This is what the Corda node looks like.<\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Corda-node.png.webp 512w,https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Corda-node-300x221.png.webp 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Corda-node.png\" height=\"378\" width=\"512\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Corda-node.png 512w, https:\/\/101blockchains.com\/wp-content\/uploads\/2020\/02\/Corda-tutorial-Corda-node-300x221.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" class=\"aligncenter wp-image-14521 size-full sp-no-webp\" alt=\"Corda node\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p style=\"text-align: justify;\">As you can see, it contains all the necessary aspects to run the Corda network. They interact with flow and provide custom CorDapp functionality.<\/p>\n<blockquote><p>Start learning Blockchain with World\u2019s first\u00a0<a href=\"https:\/\/101blockchains.com\/career\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Blockchain Career Paths<\/a>\u00a0with quality resources tailored by industry experts Now!<\/p><\/blockquote>\n<h3 style=\"text-align: justify;\"><strong>Conclusion<\/strong><\/h3>\n<p style=\"text-align: justify;\">This leads us to the end of our Corda tutorial. Here, we looked at the <a href=\"https:\/\/101blockchains.com\/corda-blockchain\/\" target=\"_blank\" rel=\"noopener\">Corda<\/a> and tried to see an IoU CorDapp. We discussed its different sections by using the template training available on the Corda GitHub repository.<\/p>\n<p style=\"text-align: justify;\">Our focus is to get started with Corda without trying to explain everything that Corda offers. For that, you can always use the Corda documentation. We also have an upcoming course on Corda development tutorial. You should surely check it out if you want to need a complete development guide.<\/p>\n<p><a href=\"https:\/\/101blockchains.com\/pricing\/\" target=\"_blank\" rel=\"noopener\"><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs.webp 1200w,https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs-300x25.webp 300w,https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1024x85.webp 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs-768x64.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs.png\" height=\"100\" width=\"1200\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs.png 1200w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs-300x25.png 300w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1024x85.png 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/01\/Unlock-your-career-with-101-Blockchains-Learning-Programs-768x64.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" class=\"aligncenter wp-image-43615 size-full sp-no-webp\" alt=\"Unlock your career with 101 Blockchains&#039; Learning Programs\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/a><\/p>\n<p style=\"text-align: justify;\"><em>*Disclaimer: The article should not be taken as, and is not intended to provide any investment advice. Claims made in this article do not constitute investment advice and should not be taken as such. 101 Blockchains shall not be responsible for any loss sustained by any person who relies on this article. Do your own research!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aspiring to become a Corda expert? The following corda tutorial will cover everything you need to know about developing a Corda application. Blockchain has come a long way. The idea of distributed ledger technology has solved many pain points that the current organizations go through. The main aim is to become more efficient, secure, and<\/p>\n<div class=\"read-more\"><a href=\"https:\/\/101blockchains.com\/corda-tutorial\/\" title=\"Read More\">Read More<\/a><\/div>\n","protected":false},"author":57,"featured_media":20759,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":{"0":"post-14434","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-reviews"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>The Ultimate Corda Tutorial 2022 - 101 Blockchains<\/title>\n<meta name=\"description\" content=\"Are you looking to get started with Corda? If you do, then check out the Corda Tutorial to get started with Corda development now!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/101blockchains.com\/corda-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Ultimate Corda Tutorial 2022\" \/>\n<meta property=\"og:description\" content=\"Aspiring to become a Corda expert? The following corda tutorial will cover everything you need to know about developing a Corda application. Blockchain\" \/>\n<meta property=\"og:url\" content=\"https:\/\/101blockchains.com\/corda-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"101 Blockchains\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/101Blockchains\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-16T09:42:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-19T06:46:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2018\/09\/corda-tutorial.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"580\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"101 Blockchains\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@101Blockchains\" \/>\n<meta name=\"twitter:site\" content=\"@101Blockchains\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"101 Blockchains\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/\"},\"author\":{\"name\":\"101 Blockchains\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/person\\\/a358796f59a63df2e672a4907be2d80a\"},\"headline\":\"The Ultimate Corda Tutorial 2022\",\"datePublished\":\"2021-02-16T09:42:23+00:00\",\"dateModified\":\"2023-07-19T06:46:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/\"},\"wordCount\":3111,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/corda-tutorial.png\",\"articleSection\":[\"Reviews\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/\",\"name\":\"The Ultimate Corda Tutorial 2022 - 101 Blockchains\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/corda-tutorial.png\",\"datePublished\":\"2021-02-16T09:42:23+00:00\",\"dateModified\":\"2023-07-19T06:46:13+00:00\",\"description\":\"Are you looking to get started with Corda? If you do, then check out the Corda Tutorial to get started with Corda development now!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#primaryimage\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/corda-tutorial.png\",\"contentUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/corda-tutorial.png\",\"width\":1200,\"height\":580,\"caption\":\"corda tutorial\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/corda-tutorial\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/101blockchains.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Ultimate Corda Tutorial 2022\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#website\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/\",\"name\":\"101 Blockchains\",\"description\":\"Your guide to the Blockchain World\",\"publisher\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/101blockchains.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#organization\",\"name\":\"101 Blockchains\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/image_2021_02_25T10_04_45_211Z.png\",\"contentUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/image_2021_02_25T10_04_45_211Z.png\",\"width\":183,\"height\":175,\"caption\":\"101 Blockchains\"},\"image\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/101Blockchains\",\"https:\\\/\\\/x.com\\\/101Blockchains\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/101blockchains\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/person\\\/a358796f59a63df2e672a4907be2d80a\",\"name\":\"101 Blockchains\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efbdb7dd09f99737887d8f8b030566510ec270efeb0c70fc60d6df8f52906615?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efbdb7dd09f99737887d8f8b030566510ec270efeb0c70fc60d6df8f52906615?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efbdb7dd09f99737887d8f8b030566510ec270efeb0c70fc60d6df8f52906615?s=96&d=mm&r=g\",\"caption\":\"101 Blockchains\"},\"description\":\"101 Blockchains is the world\u2019s leading online independent research-based network for Blockchain and Web3 Practitioners. We are a professional and trusted provider of accredited certifications, and online training.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/101blockchains\\\/\"],\"url\":\"https:\\\/\\\/101blockchains.com\\\/author\\\/101blockchains\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Ultimate Corda Tutorial 2022 - 101 Blockchains","description":"Are you looking to get started with Corda? If you do, then check out the Corda Tutorial to get started with Corda development now!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/101blockchains.com\/corda-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"The Ultimate Corda Tutorial 2022","og_description":"Aspiring to become a Corda expert? The following corda tutorial will cover everything you need to know about developing a Corda application. Blockchain","og_url":"https:\/\/101blockchains.com\/corda-tutorial\/","og_site_name":"101 Blockchains","article_publisher":"https:\/\/www.facebook.com\/101Blockchains","article_published_time":"2021-02-16T09:42:23+00:00","article_modified_time":"2023-07-19T06:46:13+00:00","og_image":[{"width":1200,"height":580,"url":"https:\/\/101blockchains.com\/wp-content\/uploads\/2018\/09\/corda-tutorial.png","type":"image\/png"}],"author":"101 Blockchains","twitter_card":"summary_large_image","twitter_creator":"@101Blockchains","twitter_site":"@101Blockchains","twitter_misc":{"Written by":"101 Blockchains","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/101blockchains.com\/corda-tutorial\/#article","isPartOf":{"@id":"https:\/\/101blockchains.com\/corda-tutorial\/"},"author":{"name":"101 Blockchains","@id":"https:\/\/101blockchains.com\/#\/schema\/person\/a358796f59a63df2e672a4907be2d80a"},"headline":"The Ultimate Corda Tutorial 2022","datePublished":"2021-02-16T09:42:23+00:00","dateModified":"2023-07-19T06:46:13+00:00","mainEntityOfPage":{"@id":"https:\/\/101blockchains.com\/corda-tutorial\/"},"wordCount":3111,"commentCount":0,"publisher":{"@id":"https:\/\/101blockchains.com\/#organization"},"image":{"@id":"https:\/\/101blockchains.com\/corda-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2018\/09\/corda-tutorial.png","articleSection":["Reviews"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/101blockchains.com\/corda-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/101blockchains.com\/corda-tutorial\/","url":"https:\/\/101blockchains.com\/corda-tutorial\/","name":"The Ultimate Corda Tutorial 2022 - 101 Blockchains","isPartOf":{"@id":"https:\/\/101blockchains.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/101blockchains.com\/corda-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/101blockchains.com\/corda-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2018\/09\/corda-tutorial.png","datePublished":"2021-02-16T09:42:23+00:00","dateModified":"2023-07-19T06:46:13+00:00","description":"Are you looking to get started with Corda? If you do, then check out the Corda Tutorial to get started with Corda development now!","breadcrumb":{"@id":"https:\/\/101blockchains.com\/corda-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/101blockchains.com\/corda-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/101blockchains.com\/corda-tutorial\/#primaryimage","url":"https:\/\/101blockchains.com\/wp-content\/uploads\/2018\/09\/corda-tutorial.png","contentUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2018\/09\/corda-tutorial.png","width":1200,"height":580,"caption":"corda tutorial"},{"@type":"BreadcrumbList","@id":"https:\/\/101blockchains.com\/corda-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/101blockchains.com\/"},{"@type":"ListItem","position":2,"name":"The Ultimate Corda Tutorial 2022"}]},{"@type":"WebSite","@id":"https:\/\/101blockchains.com\/#website","url":"https:\/\/101blockchains.com\/","name":"101 Blockchains","description":"Your guide to the Blockchain World","publisher":{"@id":"https:\/\/101blockchains.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/101blockchains.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/101blockchains.com\/#organization","name":"101 Blockchains","url":"https:\/\/101blockchains.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/101blockchains.com\/#\/schema\/logo\/image\/","url":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/03\/image_2021_02_25T10_04_45_211Z.png","contentUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/03\/image_2021_02_25T10_04_45_211Z.png","width":183,"height":175,"caption":"101 Blockchains"},"image":{"@id":"https:\/\/101blockchains.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/101Blockchains","https:\/\/x.com\/101Blockchains","https:\/\/www.linkedin.com\/company\/101blockchains\/"]},{"@type":"Person","@id":"https:\/\/101blockchains.com\/#\/schema\/person\/a358796f59a63df2e672a4907be2d80a","name":"101 Blockchains","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/efbdb7dd09f99737887d8f8b030566510ec270efeb0c70fc60d6df8f52906615?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efbdb7dd09f99737887d8f8b030566510ec270efeb0c70fc60d6df8f52906615?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efbdb7dd09f99737887d8f8b030566510ec270efeb0c70fc60d6df8f52906615?s=96&d=mm&r=g","caption":"101 Blockchains"},"description":"101 Blockchains is the world\u2019s leading online independent research-based network for Blockchain and Web3 Practitioners. We are a professional and trusted provider of accredited certifications, and online training.","sameAs":["https:\/\/www.linkedin.com\/company\/101blockchains\/"],"url":"https:\/\/101blockchains.com\/author\/101blockchains\/"}]}},"_links":{"self":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts\/14434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/users\/57"}],"replies":[{"embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/comments?post=14434"}],"version-history":[{"count":8,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts\/14434\/revisions"}],"predecessor-version":[{"id":45750,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts\/14434\/revisions\/45750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/media\/20759"}],"wp:attachment":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/media?parent=14434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/categories?post=14434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/tags?post=14434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}