<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by David Awad on Medium]]></title>
        <description><![CDATA[Stories by David Awad on Medium]]></description>
        <link>https://medium.com/@davidawad?source=rss-33a2084f1e97------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*r9cjWGH3Mik6FhCXxSINcA.jpeg</url>
            <title>Stories by David Awad on Medium</title>
            <link>https://medium.com/@davidawad?source=rss-33a2084f1e97------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 04:32:31 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@davidawad/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[CordaCon Day 2 Recap]]></title>
            <link>https://medium.com/corda/cordacon-day-2-recap-6a451bf37fce?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/6a451bf37fce</guid>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[cordacon]]></category>
            <category><![CDATA[distributed-ledgers]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Thu, 30 Sep 2021 02:38:38 GMT</pubDate>
            <atom:updated>2021-10-01T11:21:19.475Z</atom:updated>
            <content:encoded><![CDATA[<h3>CordaCon Day 2 Recap</h3><p>September 29th was the second day of<a href="https://www.cordacon.com/"> CordaCon 2021</a>! This year CordaCon is a hybrid of in-person and virtual talks., We have a great panel of speakers, an impressive list of sponsors, and many registered attendees.</p><p>If you missed CordaCon today or were just looking to see a recap of the highlights, look no further!</p><h3>Highlight #1 Michael Bodson’s talk on blockchain innovation</h3><p>Today, we had a great talk from Michael Bodson of the Depository Trust and Clearing Corporation, who explained his principles for innovating with DLT.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eFANbSfzVLMyUNplgI2mtg.png" /><figcaption>Michael Bodson’s CordaCon Talk</figcaption></figure><p>If you missed it, here’s the recording:</p><p>Link:<a href="https://www.cordacon.com/agenda/session/633846"> https://www.cordacon.com/agenda/session/633846</a></p><h3>Highlight #2 Corda 5 Developer Preview</h3><p>R3’s Christian Sailer and Nina Kanti gave a fantastic talk breaking down the new Corda 5 Developer Preview details.</p><p>Link:<a href="https://www.cordacon.com/agenda/session/630205"> https://www.cordacon.com/agenda/session/630205</a></p><h3>Highlight #3 CorDapp Development Made Easy</h3><p>R3’s Alex Koller and Moritz Platt gave a great talk on how to think about CorDapp development.</p><p>Link:<a href="https://www.cordacon.com/agenda/session/630208"> https://www.cordacon.com/agenda/session/630208</a></p><h3>Notable Mentions</h3><p>Today, I talked about how Corda will enable developers to use containers in their local development workflow (including Docker and Kubernetes!)</p><p>Link:<a href="https://www.cordacon.com/agenda/session/630213"> https://www.cordacon.com/agenda/session/630213</a></p><p>Dapeng Wang gave a fascinating talk on making Corda Quantum resistant.</p><p>Link:<a href="https://www.cordacon.com/agenda/session/648799"> https://www.cordacon.com/agenda/session/648799</a></p><p>These were just a few of the many developer highlights from day two — I hope to see you all tomorrow for the last day of CordaCon!</p><p>Happy coding ~</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6a451bf37fce" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/cordacon-day-2-recap-6a451bf37fce">CordaCon Day 2 Recap</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[CordaCon Day 1 Recap]]></title>
            <link>https://medium.com/corda/cordacon-day-1-recap-c6ea4b9218e5?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/c6ea4b9218e5</guid>
            <category><![CDATA[secure-computing]]></category>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[cordacon]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Tue, 28 Sep 2021 16:59:29 GMT</pubDate>
            <atom:updated>2021-09-29T21:03:02.182Z</atom:updated>
            <content:encoded><![CDATA[<p>On September 28th, we kickstarted our annual flagship event CordaCon 2021, which is now its 6th consecutive year. This year we’re in a mixed format, and we have a great panel of speakers, an impressive list of sponsors, and many registered attendees. If you missed CordaCon today or were looking to see a recap of the highlights, look no further! This post will be a quick breakdown of the highlights to check out just in case you missed anything important.</p><h3>Highlight #1 — The keynote!</h3><p>R3 CEO David Rutter gave the keynote and welcome address. I would recommend checking it out before looking at the rest of the sessions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MNXECrKmxkBpZFWP" /></figure><blockquote>Link: <a href="https://www.cordacon.com/agenda/session/628369">https://www.cordacon.com/agenda/session/628369</a></blockquote><h3>Highlight #2 — R3’s product vision and Roadmap</h3><p>Our Chief Product Officer, Todd MacDonald, took the time to break down the vision that R3 has for its products in the future. Then John Shaw, our Head of Product Management, lays out exactly how R3 plans to accomplish that vision.</p><blockquote>R3’s Product Vision: <a href="https://www.cordacon.com/agenda/session/628386">https://www.cordacon.com/agenda/session/628386</a></blockquote><blockquote>R3’s Product Roadmap: <a href="https://www.cordacon.com/agenda/session/628402">https://www.cordacon.com/agenda/session/628402</a></blockquote><h3>Highlight #3 — Privacy insights!</h3><p>R3’s Chief Technology Officer Richard Gendal Brown sat down to talk about the future of data privacy and misuse. It’s an excellent opportunity to learn more about why and how new tools are being adopted in the space of trust computing.</p><blockquote>Link: <a href="https://www.cordacon.com/agenda/session/628376">https://www.cordacon.com/agenda/session/628376</a></blockquote><h3>Notable Mentions</h3><p>We had a fascinating session where David Vatchev from our Venture Development team sat down with David Chreng of LeadBlock partners and Alex Barkley of HSBC Ventures on the evolving VC landscape.</p><blockquote>Link: <a href="https://www.cordacon.com/agenda/session/628397">https://www.cordacon.com/agenda/session/628397</a></blockquote><p>Dries Samyn and Nina Kanti walked through the Corda 5 Developer Preview</p><blockquote>Link: <a href="https://www.cordacon.com/agenda/session/641176">https://www.cordacon.com/agenda/session/641176</a></blockquote><p>These were just a few of the many developer highlights from day one — To find out more about the sessions we’re running tomorrow, you can visit <a href="http://cordacon.com/">cordacon.com</a>. I hope to see you there!</p><p>Happy coding ~</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c6ea4b9218e5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/cordacon-day-1-recap-c6ea4b9218e5">CordaCon Day 1 Recap</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Gamestop, Blockchain, and the Cluster of Clearing]]></title>
            <link>https://medium.com/corda/gamestop-blockchain-and-the-cluster-of-clearing-d8100e36127?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/d8100e36127</guid>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[gamestop]]></category>
            <category><![CDATA[settlements]]></category>
            <category><![CDATA[gem]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Thu, 08 Apr 2021 13:21:36 GMT</pubDate>
            <atom:updated>2021-04-08T13:21:36.271Z</atom:updated>
            <content:encoded><![CDATA[<p>A case for blockchain in the modern brokerage firm</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IWKTDXElpzLDMMnFLdn4Zw.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@chrisliverani?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Chris Liverani</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Every day on the stock market, <a href="https://www.businessinsider.com/heres-how-much-currency-is-traded-every-day-2016-9#:~:text=Reuters%2FSteve%20Marcus%20If%20you,trillion%20with%20a%20%E2%80%9Ct%E2%80%9D">over 1 trillion dollars of value canges hands between traders across the globe</a>. There have always been essential arguments to make for blockchain in the markets, but the past couple of weeks were a little different.</p><blockquote>Within the past few months, Cryptocurrency reached 1/10th of the market cap of gold.</blockquote><p>If you’re in finance or technology, you have almost definitely heard about GameStop ($GME) lately. Gamestop trading rapidly increased due to an opportunity to profit from short-sellers and market-makers and a low percentage of floating shares. At one point, GameStop’s trading volume encompassed about 1/6th of the entire financial sector.</p><h3>Power to the players</h3><p>Social media traders realized they could leverage market makers and short-sellers against each other and inflate the stock price. This worked because short interest was over 100% of the available shares on the market for some of these stocks. The prices of $GME and $AMC shot to new highs and could have triggered the shorts to buy-in.</p><blockquote>At one point GameStop trading volume encompassed about 1/6th of the entire financial sector.</blockquote><p>On January 28th, at the height of the frenzy around Gamestop shares, Robinhood and other brokerage firms put out statements <a href="https://blog.robinhood.com/news/2021/1/28/keeping-customers-informed-through-market-volatility">restricting their customers</a> from buying shares of AMC, GME, and several other companies. The reason was that clearing firms could not continue offering customers the ability to purchase those highly volatile stocks without the brokerage placing massive capital deposit requirements to hedge against the risk the clearing firms were taking on by allowing these stocks to be traded. Many users blamed the brokerage firms for attempting to influence the share price.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nn1HQjFwYEdScf4ai2QCBQ.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@claybanks?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Clay Banks</a> on <a href="https://unsplash.com/s/photos/robinhood?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><h3>The clearing process</h3><p>To understand why the brokerages had to stop selling, we have to understand the clearing process when we buy stocks.</p><p>There are a few entities involved when a customer purchases stock in a typical transaction:</p><ul><li>A brokerage itself</li><li>A clearing corporation</li></ul><p>A clearinghouse acts as an intermediate party for transactions between two customers of brokerage firms. This reduces risk and ensures that trades are correctly settled. Most of the time when a stock is purchased, the clearing firm holds the collateral on both sides of the trade, and the business is considered “settled” when both parties have the correct assets they intended to receive. This settlement typically takes two days. As an aside, the broker is only a <em>custodian</em> of your shares in a company. They are never the owner at any point in the process.</p><blockquote>This is commonly referred to in the industry as “T+2 settlement”. You can find more on stock settlements on <a href="https://www.investopedia.com/ask/answers/what-do-t1-t2-and-t3-mean/">Investopedia</a>.</blockquote><p>GME, AMC, and others have become incredibly volatile. Some of these stocks had swings of 50% or more in a given day. GME experienced every single call option becoming in-the-money, which was historic. When things like this happen, you can see why a clearing firm can be in a difficult position — they may be holding that stock during the clearing process for one or two business days for settlement to occur. If the clearing firm can lose massive amounts of money from market volatility in those days, that’s a big problem. That’s why they required brokerages to post colossal capital margin requirements to ensure the trades clear.</p><p>Because this cost was passed to zero-fee brokers, the brokers were in a difficult position to limit trading because they couldn’t post the required capital to enable the trades to clear.</p><p>You’re probably wondering just what is it about the clearing process that makes settlement take so long?</p><h3>Settlement with a blockchain</h3><p>The original reasons for settlement times seem to be reasonable from a regulatory perspective. There are many reasons you wouldn’t want trades to happen instantly.</p><p>A common allegory compares settlement with buying a house in 1800. There’s a lot of money involved; it takes a certain amount of time to get the message across to the other party and to ensure no one reneges on the deal; sometimes people buy houses and then change their minds, sometimes people hope to get lucky and get a free home and try to manipulate the process. These are concerns at the broker level but get sorted out by the clearinghouse at the end of the settlement period.</p><p>You’d imagine this should be immediate in the software-rich environment we live in today. We’ve had various famous investors and entrepreneurs <a href="https://blog.robinhood.com/news/2021/2/2/its-time-for-real-time-settlement">including the CEO of Robinhood</a> calling for precisely that in light of all this.</p><blockquote>“It’s time for zero day settlement, and maybe we’ve found the first use case for blockchain — @<a href="https://twitter.com/chamath">chamath</a>”</blockquote><h4>So could we do this with a blockchain? Absolutely.</h4><figure><img alt="twenty dollar bills" src="https://cdn-images-1.medium.com/max/1024/1*8GDLhRNVaBqfj9kWNINnpA.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@jsshotz?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Jorge Salvador</a> on <a href="https://unsplash.com/s/photos/stock-markets?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>It’s entirely possible for settlement to be based on a shared blockchain ledger between all brokerages with a solution like C<a href="https://github.com/corda/corda">orda</a>.</p><p>The modeling for this is relatively intuitive: you could create Corda <a href="https://docs.corda.net/docs/corda-os/4.7/key-concepts-states.html#states">states</a> to represent shares in a company and <a href="https://github.com/corda/token-sdk">tokens</a> representing derivatives like futures and options. Once you model your assets in Corda, you’d have each brokerage run a Corda node. Every transaction would write to the shared ledger and have to be agreed upon by all parties. There’d be no need for a clearinghouse to have any uncertainty, as each transaction can require the signature of all parties to it.</p><p>We’ve already built this. In fact, I’d highly recommend looking at our <a href="https://github.com/corda/corda-settler">open-source corda settler</a> to see how a more mature version of this solution could look like in production.</p><p>As a practical matter, Corda is no ordinary blockchain. It is designed to run at scale to enable larger enterprise institutions to leverage blockchain. Deploying Corda in an organization like the <a href="https://www.dtcc.com/">depository trust and clearing corporation</a>, which handles <a href="https://www.dtcc.com/-/media/Files/Downloads/About/government-relations/LThompson-DTCC-Overview-Aug2013.pdf">quadrillions</a> in assets per year, would create fascinating use cases.</p><p>Issues like what the brokers experienced could be entirely avoided with blockchain. Purchasing, clearing, and settlement of stock trades should be instant and available to the free market at the tap of a finger. We believe blockchain is the tool for the job, and we look forward to the challenge.</p><p><strong>Want to learn more about building rock-solid distributed blockchains on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d8100e36127" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/gamestop-blockchain-and-the-cluster-of-clearing-d8100e36127">Gamestop, Blockchain, and the Cluster of Clearing</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating a JSON log stream from Corda]]></title>
            <link>https://medium.com/corda/creating-a-json-log-stream-from-corda-ae321f065c89?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/ae321f065c89</guid>
            <category><![CDATA[json]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[splunk]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Tue, 30 Mar 2021 20:02:00 GMT</pubDate>
            <atom:updated>2021-03-30T20:02:00.521Z</atom:updated>
            <content:encoded><![CDATA[<p>An incredibly useful tool for node operators to integrate with other services</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aWK6yDaBe7x5viez2VyeMw.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@clark_fransa?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Arnold Francisca</a> on <a href="https://unsplash.com/s/photos/coding?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>If you’ve done a lot of work with log aggregation tools like Splunk, you’ve probably come against many issues with trying to export logs from all of your distributed systems in a way that your aggregator can understand. The industry has <a href="https://twobithistory.org/2017/09/21/the-rise-and-rise-of-json.html">all but settled on JSON</a>. Naturally, a lot of the services developed over the past couple of years all support JSON.</p><p>This is a common question we’ve received as developers try to integrate Corda into their existing monitoring setups. We’ve made strides in this by working on integrations with <a href="https://www.corda.net/blog/monitoring-corda-nodes-using-prometheus-and-grafana/">Prometheus, Grafana</a>, and <a href="https://www.trufflesuite.com/docs/ganache/corda/working-with-corda">Truffle</a>. Still, today I’m excited to share a developer sample I’ve put together in collaboration with Splunk to enable developers to create a stream of logs in JSON.</p><h4>Using Log4J2 in Corda</h4><p>Internally Corda uses an open-source logging utility called <a href="https://logging.apache.org/log4j/2.x/">Apache Log4j2</a>. This utility is quite powerful because it’s so customizable. If you look at our <a href="https://github.com/corda/cordapp-template-java">template CorDapp</a>, Corda typically supplies an <a href="https://github.com/corda/cordapp-template-java/blob/release-V4/config/dev/log4j2.xml">XML configuration file</a> with some sane defaults. However, it’s possible to customize this configuration file to output JSON and modify your code to produce arbitrary JSON objects.</p><p>If you’re looking to grab the XML file and be on your way, here’s the configuration file.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b95e6a0f0ddd7b6f7e63f0cb44415ff2/href">https://medium.com/media/b95e6a0f0ddd7b6f7e63f0cb44415ff2/href</a></iframe><p>You’ll want to know how on line 13, we specify an actual filename for the node to output this JSON log.</p><p>The other note is that on line 14 in our JsonLayout tag we’ve specified an attribute of properties=&quot;true&quot; . This is important for us because we want to add additional properties to these JSON objects as they get logged out from our CorDapps.</p><p>If you’re trying to specify the config file alone, you can do that with a quick command line flag:</p><pre>java -Dlog4j.configurationFile=logging-cordapp/build/resources/main/log4j2.xml -jar corda.jar</pre><h4>Logging Arbitrary Objects</h4><p>Once you’ve got your logging configuration setup correctly, using the logger and adding arbitrary information is relatively easy.</p><p>You can create your loggers and add properties to the ThreadContext object, and they’ll be logged as part of the entities.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1d60c0bc91f80922c8f5ba1e6908afa3/href">https://medium.com/media/1d60c0bc91f80922c8f5ba1e6908afa3/href</a></iframe><p>If this small example makes sense, you have everything you need to get more robust output from your CorDapps!</p><blockquote>Happy coding ~</blockquote><blockquote>A special thanks to Jayson Jacobs from <a href="https://www.splunk.com/">Splunk</a> for his help putting this together.</blockquote><blockquote>For early access to Splunk Connect for Corda, reach out to <a href="/service/mailto:blockchain@splunk.com">blockchain@splunk.com</a>.</blockquote><p>You can find the example CorDapp in both <a href="https://github.com/corda/samples-java/tree/master/Features/customlogging-yocordapp">java</a> and <a href="https://github.com/corda/samples-kotlin/tree/master/Features/customlogging-yocordapp">kotlin</a> on Github.</p><p>Happy logging ~</p><p><strong>Want to learn more about building rock-solid distributed blockchains on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ae321f065c89" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/creating-a-json-log-stream-from-corda-ae321f065c89">Creating a JSON log stream from Corda</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Top CorDapps of 2020]]></title>
            <link>https://medium.com/corda/top-cordapps-of-2020-c69e9c483698?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/c69e9c483698</guid>
            <category><![CDATA[cordapp]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[2020]]></category>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[awards]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Mon, 01 Feb 2021 16:36:25 GMT</pubDate>
            <atom:updated>2021-02-01T16:36:25.659Z</atom:updated>
            <content:encoded><![CDATA[<p>Some quick highlights on what stood out to us!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ixU8CtjpssrHGHTowdImyA.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@kellysikkema?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Kelly Sikkema</a> on <a href="https://unsplash.com/s/photos/2020?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>The new year is here, and it was a significant one for blockchain. We wanted to take a quick look at the most exciting CorDapps we came upon over the past year.</p><p>The ones worth highlighting here are predicated on what our team thought were great ideas, practical use-cases, and ways to use corda that we just wouldn’t have expected.</p><h3>#Honorable — Snakes and Ladders on Corda</h3><p>One honourable mention I wanted to make is the snakes and ladders CorDapp by <a href="https://twitter.com/iashutoshmeher">@iashutoshmeher</a>. Ashutosh is one of our developer evangelists, and when he commits to building a CorDapp he does not disappoint! His CorDapp was a full implementation of snakes and ladders constructed on top of Corda so that players could use Corda to be sure of no funny business!</p><p>It uses a Tomcat web server to host the game from the Corda node itself and allows players to trigger Corda transactions that update the game state from within the browser.</p><p>You can find a link to Ashutosh’s CorDapp <a href="https://github.com/corda/samples-java/tree/master/Advanced/snakesandladders-cordapp">here</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*C7d4oJd-ARCQrtEF.png" /><figcaption>A screenshot of the <a href="https://github.com/corda/samples-java/tree/master/Advanced/snakesandladders-cordapp">Snakes and Ladders CorDapp</a></figcaption></figure><h3>#3 — A CorDapp for Students Relocating for University</h3><p>Our number two spot goes to the PR CorDapp by <a href="https://github.com/ajcrypto">@ajcrypto</a> / <a href="https://github.com/RK3713">@RK3173</a> on Github. Planning a relocation was a compelling use case, and we’re happy to feature it.</p><p>The idea is to use Corda as a broker for information between universities and students who are relocating to university. With a blockchain as the data broker between these parties, the entire process can be streamlined for the students relocating. Nicely done!</p><p>Curious to take a look at the code? Find it on GitHub <a href="https://github.com/RK3713/PR-Cordapp">here</a>.</p><h3>#2— A Centralized Corpus Manager for Machine Learning on Corda</h3><p>The next CorDapp on our list was the decentralized corpus manager by R3 Solutions engineer <a href="https://github.com/JonathanScialpi">@JonathanScialpi</a>!</p><p>The project’s idea is to use Corda as a broker for crowdsourcing data for machine learning models. It uses Corda contract verification to ensure that corpus updates are valid and preserve the privacy of the crowdsourcers of the data.</p><p>If you’re curious to learn more about the project, you can find Jonathan’s post on the subject <a href="https://medium.com/corda/machine-learning-on-corda-558cadc8ba05">here</a>, and you can find the <a href="https://github.com/JonathanScialpi/decentralized_corpus_manager">project code on Github</a>.</p><h4>Some honorable mentions</h4><p>Before I jump into our top CorDapp, some notable mention is due to a couple of standout moments for CorDapps in 2020:</p><ul><li>The NASDAQ announced using Corda to <a href="https://www.ledgerinsights.com/nasdaq-adopts-corda-enterprise-blockchain-for-digital-assets-exchange-software/">perform securities exchanges</a>.</li><li><a href="https://docs.corda.net/docs/corda-os/4.7.html">Corda 4.7</a> was the most recent of a long string of successful releases in 2020.</li><li>HSBC used blockchain to transfer over <a href="https://cointelegraph.com/news/hsbc-bangladesh-uses-blockchain-to-import-20-000-tons-of-fuel-oil-from-singapore">20,000 tons of oil using Corda</a>.</li></ul><p>But Corda of course is versatile with how it can be used. On the developer relations team, we’ve built out CorDapps for <a href="https://github.com/corda/samples-java/tree/master/Advanced/snakesandladders-cordapp">Snakes and Ladders</a> and <a href="https://github.com/corda/samples-java/tree/master/Advanced/secretsanta-cordapp">Secret Santa</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*rlH3rDnc_pyV7yQHf4umVw.png" /><figcaption>A screenshot of the <a href="https://github.com/corda/samples-java/tree/master/Advanced/secretsanta-cordapp">Secret Santa CorDapp</a>, built in December of 2020.</figcaption></figure><h3>#1 — CLAIMSHARE by IntellectEU</h3><p>It probably won’t surprise you to see this here if you were a part of the R3 Insuretech challenge earlier this year, as this was the challenge winner. This CorDapp was designed as a fraud detection platform for the insurance market. The idea here is to solve the “<em>double-dipping</em>” problem. They do it using secure computing with Conclave, Corda, and a mix of artificial intelligence tooling to ensure that the same claim can never be submitted twice.</p><p>The team documented a comprehensive process their tool is using. It uses a combination of Corda, fuzzy matching, public data, and date matching to be sure that they’ve got a match on the same claim being made multiple times. Double dipping is a critical and fascinating problem for the industry, and I look forward to seeing them solve it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/849/0*eblxAUwh0t-n0Pnr" /></figure><p>You can find out more about CLAIMSHARE from their article on it <a href="https://medium.com/intellecteu-blog/claimshare-by-intellecteu-7ae61ec0919f">here</a>.</p><p>More honorable mentions are also deserved for the teams that came in as runners-up in that challenge:</p><ul><li><a href="https://www.fardoesoftware.co.uk/">Fardoe Software</a></li><li><a href="https://photocert.co.uk/">Photocert</a></li><li><a href="https://rexs.io/">Rexs.io</a></li></ul><p>If you are interested in exploring more Corda Challenges, you should check out our <a href="https://www.r3.com/blog/corda-challenge-5g/">5G challenge</a> with AWS, Swisscom, and Vodafone.</p><p>Did you enjoy the list? Have a CorDapp you want to see featured? <br>Let us know! Send an email to devrel@r3.com.</p><p><strong>Want to learn more about building awesome blockchain applications on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c69e9c483698" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/top-cordapps-of-2020-c69e9c483698">Top CorDapps of 2020</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Start off the New Year with Blockchain]]></title>
            <link>https://medium.com/corda/start-off-the-new-year-with-blockchain-dde652668019?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/dde652668019</guid>
            <category><![CDATA[2021]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[new-year]]></category>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[jvm]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Tue, 12 Jan 2021 14:48:12 GMT</pubDate>
            <atom:updated>2021-01-12T14:48:12.210Z</atom:updated>
            <content:encoded><![CDATA[<h3>Nail the New Year with Blockchain</h3><p>Try the simple building blocks for truly decentralized apps.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qrhUsr0jX8CQk5-y2SZJnQ.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@danwhale?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Danil Aksenov</a> on <a href="https://unsplash.com/s/photos/new-year?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Welcome to the new year! If you’re looking for some inspiration to build on an open-source blockchain, then you’ve come to the right place.</p><p>Our goal in building a distributed application can be broken down into three mini-goals:</p><ul><li>Represent abstract entities.</li><li>Represent abstract operations on those entities.</li><li>Trigger those operations and reach consensus among the parties involved.</li></ul><p>We call this collection of features a <strong>CorDapp</strong>, and you can implement them in Java or Kotlin. (To be clear, however, you could use any JVM language.)</p><p>So let’s imagine an intuitive use case for our CorDapp: Cars!</p><p>Imagine in our simple example that a unique party manufactures cars. After being created, those cars are then distributed to dealerships that sell them to specific persons and corporations. We can perform specific operations on cars, we can manufacture them, and we can sell them, and we can change information about them like license plate number and mileage.</p><p>The <em>ideal scenario</em> is where all of these parties use Corda so that the entire history and ownership of <em>that car</em> can be tracked.</p><p>To model our car sales, we’ll create three separate abstractions in our programs:</p><ul><li>States.</li><li>Contracts.</li><li>Flows.</li></ul><blockquote>For clarity, I’ll use Java for this tutorial, but the kotlin classes are very similar.</blockquote><p>With each of these objects, you have the tools to model the manufacturing of a car, ensuring that the vehicle is valid, and perform a valid issuance of a newly manufactured car according to a set of contract rules — all with the added power of an immutable ledger underpinning it.</p><p>Let’s do a short walkthrough of the critical sections of code. If these make sense, then you’ll already understand everything you need.</p><h4>States</h4><p>States are objects, just like you’d model in any other programming language. You can model our car state in a pretty intuitive way.</p><p>So our car has a license plate, a VIN number, and other basic properties. <br>Then is has a bank that owns the car, the dealer holding it, and the manufacturer. We also include some details about the parties to the transaction</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c7d6b1d01a181fceb93432befdb321e2/href">https://medium.com/media/c7d6b1d01a181fceb93432befdb321e2/href</a></iframe><p>If this makes sense then you’re ready to create the operations that can be performed on our car! That’s where <em>contracts</em> come in.</p><h4>Contracts</h4><p>Contracts are our tool to represent the abstract operations that we can perform on these objects.</p><p>With your contract, you can create rules to deal with whatever checks you need to ensure your ledger updates are valid. Here’s an example of how simple those checks could be. Thinking back to the car example, this is where we might check things like the license plate and the VIN number to make sure that everything checks out. (You could even use a C<a href="https://docs.corda.net/docs/corda-os/4.6/key-concepts-oracles.html">orda oracle</a> for this too but that’s another conversation).</p><p>For example, if this is a new car, the mileage should probably be low. If you’re buying the car from someone else you don’t necessarily need the mileage to be low so you might check that in a sale differently than you would in the issuance of a newly manufactured car from the factory.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f8906137a79ec7fa31aaceb28b4c3f98/href">https://medium.com/media/f8906137a79ec7fa31aaceb28b4c3f98/href</a></iframe><p>Now that this is in place, both parties can verify the validity of the entire transaction with contract rules. Here, our rules are intuitive enough, an issue command has to correspond to a new car state, and the license plate has to have seven digits.</p><p>Assuming these rules are satisfied, the transaction is permitted to complete and it is successful.</p><h4>Flows</h4><p>The last piece of the puzzle here is flows. Remember that flows are simply tools to trigger transactions between parties on the network. So, we could have a flow that issues our new car and a flow that enables us to share it with another party.</p><p>A good example flow is one in which you issue, manufacture your car, and introduce the asset to the blockchain.</p><p>In the flow below a car is created and given to a holding dealer. That is why it’s specified here as an output state.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/44a58d10b7182b9c5c36bcf196f71c9a/href">https://medium.com/media/44a58d10b7182b9c5c36bcf196f71c9a/href</a></iframe><p>Here our car flow does what we’d expect it to, we give Corda the details of the car and the Corda node representing the manufacturer does the work of creating the car and collecting all the signatures of the other parties that have to be aware of the car’s existence. (You can also extend this example to include regulators like the SEC or observers like NHTSA).</p><p>If this flow example code made sense to you then congratulations! You essentially understand Corda and shouldn’t have much trouble <a href="https://docs.corda.net/docs/corda-os/4.6/hello-world-introduction.html">getting through our tutorial</a> to build out your own blockchain use cases.</p><p>Now as with all things in computing, there’s more detail to understand than just this. There’s a couple of tools here that you’ll need to do some more digging into such as responder flows, the subflows I used for signatures, and the transaction builder, but most use-cases can actually get by with just these building blocks.</p><blockquote>Now you’re off to the races ~</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2Fl1IYk9LpHJKR8fr8Y%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fnamslam-n64-cruisin-usa-l1IYk9LpHJKR8fr8Y&amp;image=https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2Fl1IYk9LpHJKR8fr8Y%2Fgiphy-downsized-large.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/a2d797acb05d8f564b1dabdb2a8cbf0e/href">https://medium.com/media/a2d797acb05d8f564b1dabdb2a8cbf0e/href</a></iframe><h4>Wrapping Up</h4><p>I’m sure this isn’t the first blog post you’ve read that helps bring you some inspiration about what you can build with blockchain. I don’t need to convince you of the merits of using open source to create great things.</p><p>If you think this tutorial was intuitive and want to build something yourself, I’d encourage you to look at <a href="https://docs.corda.net/docs/corda-os/4.6/hello-world-introduction.html">our Corda tutorials</a> and try building something for yourself!</p><p>If you have ideas about what you want to build, maybe this is your year. All I ask is if you have some inspiration to tell us about it! You can find us on our <a href="http://slack.corda.net/">slack</a> or tell us about your project at r3devrelations@r3.com. I certainly look forward to seeing it.</p><p><strong>Want to learn more about building awesome blockchain applications on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dde652668019" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/start-off-the-new-year-with-blockchain-dde652668019">Start off the New Year with Blockchain</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Running Corda on GCP]]></title>
            <link>https://medium.com/corda/running-corda-on-gcp-adedef83e278?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/adedef83e278</guid>
            <category><![CDATA[gcp]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[google]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[corda]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Fri, 11 Dec 2020 13:40:05 GMT</pubDate>
            <atom:updated>2020-12-11T13:40:05.182Z</atom:updated>
            <content:encoded><![CDATA[<h3>Running Corda on Google Cloud Platform</h3><p>A quick tutorial with code examples</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cU13zWe6J77lk18gF7RoyA.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@lazycreekimages?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Michael Dziedzic</a> on <a href="https://unsplash.com/s/photos/computing?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Hey there, if you’re reading this you’re probably looking to get Corda set up in a cloud provider. This is a short and sweet guide to help you do that without too much pain.</p><h3>Step 1: Set up your network</h3><p>In our setup, we have a simple network with four nodes running on two virtual machines. The main requirement, of course, is that the nodes must be able to reach each other.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/536/1*TlYSkVUg25me07Oz_x6BTA.jpeg" /><figcaption>A highly technical diagram of what we’re doing here</figcaption></figure><p>Start by opening the <a href="http://cloud.google.com/">google cloud console</a> and provisioning two nodes on your favourite Linux distribution. (In my case, I’ll pick the latest version of <a href="http://ubuntu.com/">ubuntu</a>). My recommendation for a Corda node is <em>at least</em> an <strong>e2-standard-2</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BXK78Kt78o9eS0SEKrBDsg.png" /><figcaption>Ubuntu 20.10 is also fine</figcaption></figure><p>If you’re looking to get a demo working, I’d recommend a simple set of firewall rules that allow all traffic. Once you’ve done that you can ensure the nodes can communicate with a simple ping test.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zFHasXHW-8PVr8BtMcMwYg.png" /><figcaption>An example firewall rule you could use</figcaption></figure><blockquote>Once you have tested the connection and you believe the nodes can communicate, you should be aware of the danger of allowing all traffic to the group. It is <strong>not safe</strong> to allow all inbound traffic on a production instance of pretty much anything.</blockquote><blockquote><a href="https://cloud.google.com/vpc/docs/firewalls">For a guide on Google Cloud Networking configuration, I recommend this page of the documentation.</a></blockquote><p>One last thing to do before you go on to access the nodes is to modify your codebase.</p><p><a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial">I’ve set up a repository for this tutorial on GitHub.</a> Download this repository and you’ll notice a VM1 folder and a VM2 folder. You’ll also see a commands.sh that contains code you can use when provisioning the actual machine. So two of our Corda nodes, the Notary and “Party A” will run on VM1. The other two of our Corda nodes, the “Party B” and “Party C” will run on VM2.</p><p>Both of those folders have similar contents, and you need to make sure that you add the public IP addresses of the Corda nodes to align with the VMs that they’re going to run on.</p><p>Take the IP address of the ec2 instance that will run VM1’s nodes, and then add its IP address to the p2pAddresssection of VM1/notary/node.conf.</p><p>For example, if the node’s IP address was 104.211.141.139 Then the resulting file would look like this:</p><pre>p2pAddress=&quot;104.211.141.139:10002&quot;<br>rpcSettings {    <br>    address=&quot;0.0.0.0:10003&quot;    <br>    adminAddress=&quot;0.0.0.0:10043&quot;<br>}</pre><p><a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial/blob/master/VM1/notary/node.conf">Heres’ a link to the node.conf file you can use so you know where to go.</a></p><p>Now add that same IP for the p2pAddress of theVM2 nodes. (Party B and Party C).</p><p>Once that bit of housekeeping is done, you’re ready to copy these folders onto the virtual machines.</p><h3>Step 2: Run Corda</h3><p>Once you’ve got ssh access, copy your folders onto the virtual machines. After a quick scp or rsync you should be all set. After copying over the folder, just run the commands.sh file I provided in the root of the repository. If all goes well, the virtual machines will be able to run docker without any issues.</p><p>Once you’re in, cd into the folders for each VM and run the following docker command with the right file:</p><pre>docker-compose -f docker-compose-vm1.yaml up</pre><blockquote><strong>Note:</strong> Docker may show an error about not having permissions to write to a database file, if you see that just make sure to change the permissions of the VM directory to make sure that both your user and the ‘docker’ user can write to them.</blockquote><h3>Step 3: Test your network</h3><p>Now that you’ve got everything running on docker, it’s time to test your network and connectivity. You can do this with the <a href="https://www.google.com/search?q=corda+node+explorer&amp;oq=corda+node+explorer+&amp;aqs=chrome.0.0i457j0j69i65j69i60l3.2073j0j1&amp;sourceid=chrome&amp;ie=UTF-8">Corda Node Explorer</a>. (<a href="https://github.com/corda/node-explorer/releases">download link here</a>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/518/1*J0slhBtouFGoGwOdwHRBnw.png" /><figcaption>example of node explorer login</figcaption></figure><p>You can log into the node explorer using a specific virtual machine’s IP address and the node port specified in the rpcSettings address of the <a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial/blob/master/VM1/partya/node.conf">node conf</a>. (In this case, it’s 10006 for Party A).</p><p>The username and password are also specified in the node.conf, so we’ll use them here.</p><p>If all goes well and the nodes can communicate with each other, you’ll be able to see nodes from VM1 and VM2! Not bad!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/888/1*GdM68vKVxGGDlIJ5ArG5fg.png" /><figcaption>A screenshot of the node explorer if everything went well</figcaption></figure><p>That about covers it! Once you’re in the node explorer, you’re able to interact with your network, create transactions, run vault queries, and more!</p><blockquote>And just for convenience, the link to <a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial">that github repo is here</a>.</blockquote><blockquote>You can also find a video version of <a href="https://www.youtube.com/watch?v=3L3G3Ggi6Eg">this tutorial on youtube here</a>.</blockquote><blockquote>Happy Coding ~</blockquote><p><strong>Want to learn more about building awesome blockchain applications on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=adedef83e278" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/running-corda-on-gcp-adedef83e278">Running Corda on GCP</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Running Corda on AWS]]></title>
            <link>https://medium.com/corda/running-corda-on-aws-9aed915f5797?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/9aed915f5797</guid>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[ubuntu]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Thu, 19 Nov 2020 17:51:01 GMT</pubDate>
            <atom:updated>2020-11-19T17:51:01.262Z</atom:updated>
            <content:encoded><![CDATA[<p>The easy way with code examples</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OZh9rLHi2oD-d-hJkfipRA.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@casparrubin?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Caspar Camille Rubin</a> on <a href="https://unsplash.com/s/photos/cloud-computing?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Hey there, if you’re reading this you’re probably looking to get Corda set up in a cloud provider. This is a short and sweet guide to help you do that without too much pain.</p><h3>Step 1: Set up your network</h3><p>In our setup, we have a simple network with four nodes running on two virtual machines. You can provision them in the same VPC if you want, but the main requirement, of course, is that the nodes must be able to reach each other.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/536/1*iDcMbYLS542NrN4Job_GKA.png" /><figcaption>A highly technical diagram of what we’re doing here</figcaption></figure><p>Start by opening the AWS management console and provisioning two nodes on your favorite Linux distribution. (In my case, I’ll pick the latest version of ubuntu). My recommendation for a Corda node is <em>at least</em> a <strong>t2.medium</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qo2tuyp3mAITJIF_R7cJlA.png" /><figcaption>Ubuntu 20.04 is fine</figcaption></figure><p>If you’re looking to get a demo working, I’d recommend a simple security group that allows all traffic. Once you’ve allowed all traffic you can ensure the nodes can communicate with a simple ping command test.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V2Dv6UbOMUm-4WqEljlBrA.png" /><figcaption>a simple demo security group could look like this</figcaption></figure><blockquote>Once you have tested the connection and you believe the nodes can communicate, you should be aware of the danger of allowing all traffic to the group. It is <strong>not safe</strong> to allow all inbound traffic on a production instance of pretty much anything.</blockquote><blockquote><a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">For a guide on AWS Network configuration, I recommend the Amazon documentation.</a></blockquote><p>One last thing to do before you go on to access the nodes is to modify your codebase.</p><p><a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial">I’ve set up a repository for this tutorial on GitHub.</a> Download this repository and you’ll notice a VM1 folder and a VM2 folder. You’ll also see a commands.sh that contains code you can use when provisioning the actual machine. So two of our Corda nodes, the Notary and “Party A” will run on VM1. The other two of our Corda nodes, the “Party B” and “Party C” will run on VM2.</p><p>Both of those folders have similar contents, and you need to make sure that you add the public IP addresses of the Corda nodes to align with the VMs that they’re going to run on.</p><p>Take the IP address of the ec2 instance that will run VM1’s nodes, and then add its IP address to the p2pAddresssection of VM1/notary/node.conf.</p><p>For example, if the node’s IP address was 104.211.141.139 Then the resulting file would look like this:</p><pre>p2pAddress=&quot;104.211.141.139:10002&quot;<br>rpcSettings {    <br>    address=&quot;0.0.0.0:10003&quot;    <br>    adminAddress=&quot;0.0.0.0:10043&quot;<br>}</pre><p><a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial/blob/master/VM1/notary/node.conf">Heres’ a link to the node.conf file you can use so you know where to go.</a></p><p>Now add that same IP for the p2pAddress of theVM2 nodes. (Party B and Party C).</p><p>Once that bit of housekeeping is done, you’re ready to copy these folders onto the virtual machines.</p><h3>Step 2: Run Corda</h3><p>Once you’ve got ssh access, copy your folders onto the virtual machines. After a quick scp or rsync you should be all set. After copying over the folder, just run the commands.sh file I provided in the root of the repository. If all goes well, the virtual machines will be able to run docker without any issues.</p><p>Once you’re in, cd into the folders for each VM and run the following docker command with the right file:</p><pre>docker-compose -f docker-compose-vm1.yaml up</pre><blockquote><strong>Note:</strong> Docker may show an error about not having permissions to write to a database file, if you see that just make sure to change the permissions of the VM directory to make sure that both your user and the ‘docker’ user can write to them.</blockquote><h3>Step 3: Test your network</h3><p>Now that you’ve got everything running on docker, it’s time to test your network and connectivity. We’re going to do this with the <a href="https://www.google.com/search?q=corda+node+explorer&amp;oq=corda+node+explorer+&amp;aqs=chrome.0.0i457j0j69i65j69i60l3.2073j0j1&amp;sourceid=chrome&amp;ie=UTF-8">Corda Node Explorer</a>. (<a href="https://github.com/corda/node-explorer/releases">download link here</a>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/518/1*J0slhBtouFGoGwOdwHRBnw.png" /><figcaption>example of node explorer login</figcaption></figure><p>You’re going to want to log into the node explorer using a specific virtual machine’s IP address and the node port specified in the rpcSettings address of the <a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial/blob/master/VM1/partya/node.conf">node conf</a>. (In this case, it’s 10006 for Party A).</p><p>The username and password are also specified in the node.conf, so we’ll use them here.</p><p>If all goes well and the nodes can communicate with each other, you’ll be able to see nodes from VM1 and VM2! Not bad!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/888/1*GdM68vKVxGGDlIJ5ArG5fg.png" /><figcaption>A screenshot of the node explorer if everything went well</figcaption></figure><p>That about covers it! Once you’re in the node explorer, you’re able to interact with your network, create transactions, run vault queries, and more!</p><blockquote>And just for convenience, the link to <a href="https://github.com/davidawad/8-12-2020-Corda-Docker-Tutorial">that github repo is here</a>.</blockquote><blockquote>You can also find a video version of this tutorial <a href="https://www.youtube.com/watch?v=NtVbkUCSt7s">on youtube here</a>.</blockquote><blockquote><em>Happy Coding ~</em></blockquote><p><strong>Want to learn more about building awesome blockchain applications on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9aed915f5797" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/running-corda-on-aws-9aed915f5797">Running Corda on AWS</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Battle of the blockchains]]></title>
            <link>https://medium.com/corda/battle-of-the-blockchains-f33e9408b926?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/f33e9408b926</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[research]]></category>
            <category><![CDATA[computing]]></category>
            <category><![CDATA[private-network]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Fri, 13 Nov 2020 17:04:54 GMT</pubDate>
            <atom:updated>2020-11-13T17:04:54.604Z</atom:updated>
            <content:encoded><![CDATA[<p>Are private or public blockchains more effective in the long term?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fUVVTP90SDGthM4azn7yDg.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@alexmotoc?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Alex Motoc</a> on <a href="https://unsplash.com/s/photos/computing?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>The literary scene around blockchain technology has been quite interesting to watch, but unless you’re an academic, you don’t get to see many details.</p><p>Most of the time, the public conversation around using a public or a private blockchain revolves around some intuitive concepts, about knowing who’s on the network, and some efficiency questions. It turns out there’s more to it than that.</p><p>Since blockchain’s first invention, we’ve gotten a much better understanding of the tradeoffs between public and private blockchains. The original reason for the excitement around the blockchain was that it seemed to be a solution to the <a href="https://coincentral.com/byzantine-generals-problem/#:~:text=The%20Byzantine%20Generals%20Problem%20is,information%20or%20are%20otherwise%20unreliable.">Byzantine Generals problem</a>. But you actually can use classic byzantine consensus on a private blockchain instead of the modern Nakamoto consensus. [1] Depending on your network guarantees, private blockchains can run with notaries to validate transactions. These seem counter to the original intuition around a public blockchain, so let’s get into the details and see where academics can shed some light for us.</p><h3>Privacy</h3><p>The arguments around private blockchains are relatively intuitive.</p><p><strong>Public blockchains</strong> enable anyone to write to the blockchain, and transactions are published to everyone on the network / the world to ensure eventual consistency (<em>Blockchains don’t violate the CAP theorem!</em>). In a way, privacy is not possible. The public blockchain can anonymize your transactions with others, but it’s possible to trace public blockchain addresses back to individuals.[5]</p><p><strong>Private blockchains</strong> enable users to be sure who’s participating on the network and who is reachable from the outset. An organization controls write access to the blockchain. This privacy is nearly guaranteed, which is why lots of private institutions using Corda use Corda. [4]</p><h3>Consensus</h3><p><strong>Public blockchains</strong> naturally need to be larger to ensure that false transactions can’t get onto the network, making them difficult to use for smaller groups wanting to transact together. [3] There actually <em>can’t be</em> a public blockchain for a small group of individuals.</p><p>Most public blockchains use Proof-of-Work consensus algorithms where miners compete against each other to verify the validity of a transaction and get rewarded. The problem with these networks is that they can be slow to achieve consensus. They can take a long time to verify transactions. Due to the <a href="https://www.investopedia.com/terms/m/merkle-tree.asp#:~:text=A%20Merkle%20tree%20is%20a,as%20%22binary%20hash%20trees.%22">Merkle tree</a> mechanics, individual transactions can get rejected by a competing chain of unconfirmed transactions.</p><p><strong>On the private side,</strong> consensus algorithms can vary quite a bit. Most private blockchains do not need to run computationally intensive and wasteful consensus algorithms. The majority of private blockchains can reach speedy consensus without many issues. Corda even lets you configure your consensus algorithm based on your private network (more on that <a href="https://docs.corda.net/docs/corda-os/4.5/key-concepts-notaries.html#:~:text=transaction%27s%20input%20states.-,Consensus%20algorithms,system%20compatibility%20and%20algorithmic%20agility.">here</a>).</p><h4>Energy</h4><p>There’s another important aspect here which is the electricity waste of certain consensus mechanisms.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GqpRvn7QYn4Q39ERSptDZQ.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@himanshu?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Himanshu Srivastav</a> on <a href="https://unsplash.com/s/photos/energy-windmill?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p><strong>Note:</strong> in a literal and physical sense, energy can not be consumed, created, or destroyed, only converted from electrical energy to a less useful form like heat.</p><p>When I say energy waste here, I am referring to waste concerning the possible use cases for electricity.</p><p>It’s worth mentioning that exciting work has been done to <a href="https://www.theseus.fi/handle/10024/149939">convert this heat into useful work</a>, but it’s difficult for the cost of regular heating to be better than heat from mining.</p><p>Here’s a great chart outlining the kind of energy use that we’re talking about when we look at public blockchain and cryptocurrency consensus algorithms.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/560/1*THIzdpHB0hYLsWrQ1XjxVg.png" /><figcaption>Chart of energy consumption of different blockchains, compared with market capitalization [2]</figcaption></figure><p>The bitcoin Proof-Of-Work consensus protocol uses around 100 Terawatt-hours (TWh) every year (10¹² watt-hours!). For comparison, In 2018, the average annual electricity consumption for a U.S. residential utility customer was 10,972 kilowatt-hours (kWh). Bitcoin alone could have powered 91,142 homes last year.</p><p>In short, it’s cheaper, and potentially greener, to run a blockchain yourself privately.</p><h3>Efficiency</h3><p>Lots of things can influence the speed of a transaction. But it’s generally the case that private blockchains have fewer participants, meaning they can move faster.[1]</p><p>The average Bitcoin blockchain transaction takes around <strong>30 minutes to over 16 hours to be confirmed in extreme cases</strong>.[6] This isn’t tenable in most compelling use cases that we might think of for a public blockchain — like <a href="https://www.corda.net/blog/should-we-already-be-using-blockchain-as-a-voting-system-for-elections/">voting</a>, stock trading, and online gaming.</p><p>There’s a lot of ideas on how to improve that down the road with innovations like lightning networks, but so far, these problems haven’t been adequately solved, and scalability is a common topic of debate in many communities for blockchain technology. To be fair it’s worth mentioning that since bitcoin’s initial development, other blockchains have been deployed that can process transactions <em>much</em> faster like <a href="https://ihodl.com/analytics/2020-08-13/these-3-cryptocurrencies-have-fastest-transaction-speed/#:~:text=Apollo%20currency%20%28APL%29%20is%20currently,to%202%20seconds%20per%20transaction.">lumen, ripple, and EOS</a>. In fact, there are even blockchains that can handle <a href="https://medium.com/predict/the-worlds-fastest-blockchain-exceeds-1-million-transactions-per-second-8931df09320d">one million transactions per second</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*b9PlXGgaCZ5jFqDCh8CW9w.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@rupixen?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">rupixen.com</a> on <a href="https://unsplash.com/s/photos/internet-debate?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>On the other side of the fence, private networks have a much easier time resolving transactions quickly. A production Corda environment can handle <a href="https://medium.com/corda/transactions-per-second-tps-de3fb55d60e3#:~:text=But%20currently%20Corda%20measures%20between,is%20contrast%20to%20other%20platforms%3A&amp;text=Ethereum%20is%20limited%20to%20around,configuration%E2%80%9D%20in%20their%20white%20paper.">thousands of transactions per second</a>.</p><p>If you look at <a href="https://www.corda.net/blog/corda-v-hyperledger-v-quorum-v-ethereum-v-bitcoin/">the blockchains available</a>, you’ll start to appreciate more of the problems a developer has to be aware of when building on a blockchain. What we’re seeing is that the private industry likes private blockchains.[7] While a public blockchain is a unique tool, I have found appropriate use-cases to be rare. Try to remember that the consequence of these decisions do not belong to us, but our users.</p><p>If the idea of building on a private blockchain like Corda sounds interesting to you then I’d recommend Corda’s <a href="https://www.corda.net/get-started/">getting started page</a> to see what you can do with it. Good luck!</p><p><strong>Want to learn more about building awesome blockchain applications on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><ul><li>[1] Staples, M., Chen, S., Falamaki, S., Ponomarev, A.,<br>Rimba, P., Tran, A. B., Weber, I., Xu, X., Zhu, J., (2017)<br>Risks and opportunities for systems using blockchain<br>and smart contracts. Data61 (CSIRO), Sydney.</li><li>[2] J. Sedlmeir H. U. Buhl G. Fridgen R. Keller<br>Project Group Business and Information Systems Engineering of<br>the Fraunhofer FIT, Bayreuth, Germany</li><li>[3] 51% attack: <a href="https://www.crypto51.app/about.html">https://www.crypto51.app/about.html</a></li><li>[4] Novotny, Petr, Zhang, Qi, Hull, Richard, Baset, Salman, Laredo, Jim, Vaculin, Roman, Ford, Daniel L, and Dillenberger, Donna N. “Permissioned Blockchain Technologies for Academic Publishing.” <em>Information Services &amp; Use</em> 38.3 (2018): 159–71. Web.</li><li>[5] Yousaf, H; Kappos, G; Meiklejohn, S; (2019) Tracing transactions across cryptocurrency ledgers. In: <strong>SEC’19: Proceedings of the 28th USENIX Conference on Security Symposium.</strong> (pp. pp. 837–850). ACM: Berkeley (CA), USA</li><li>[6] Source from <a href="https://coincentral.com/how-long-do-bitcoin-transfers-take/#:~:text=Bitcoin%20transaction%20times%20vary%20and,minutes%20to%20over%201%20day.&amp;text=The%20two%20things%20that%20determine,activity%20and%20the%20transaction%20fees.&amp;text=The%20average%20Bitcoin%20transaction%20time%20is%20currently%20around%201%20hour.">Coincentral</a>.</li><li>[7] Kwak, Ki &amp; Kong, Jun &amp; Cho, Sung &amp; Tung, Phuong &amp; Gim, Gwang. (2019). A Study on the Design of Efficient Private Blockchain. 10.1007/978–3–319–96806–3_8.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f33e9408b926" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/battle-of-the-blockchains-f33e9408b926">Battle of the blockchains</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Tips for Corda Developers]]></title>
            <link>https://medium.com/corda/tips-for-corda-developers-e0693bb3e924?source=rss-33a2084f1e97------2</link>
            <guid isPermaLink="false">https://medium.com/p/e0693bb3e924</guid>
            <category><![CDATA[corda]]></category>
            <category><![CDATA[java]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[tooling]]></category>
            <dc:creator><![CDATA[David Awad]]></dc:creator>
            <pubDate>Tue, 10 Nov 2020 15:00:10 GMT</pubDate>
            <atom:updated>2020-11-10T15:00:10.190Z</atom:updated>
            <content:encoded><![CDATA[<p>Some tips and best practices from us for your applications</p><p>Corda has done a lot to create a robust and scalable distributed blockchain for enterprise (<a href="https://medium.com/corda/r3-publishes-a-new-post-quantum-signature-algorithm-tailored-to-blockchains-51719c64fd4c">we’ve even prepared for quantum algorithms</a>!). Still, we’ve found that there are some tips people tend to miss when they’re first getting started developing with Corda or thinking about going to production.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*j6kF-X-BBp9KuRpn0r7VCA.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@sam_truong?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Sam Dan Truong</a> on <a href="https://unsplash.com/s/photos/tips?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><h4>Static Code Analysis</h4><p>We often advocate for computers to do the work and static code analyzers are my favourite implementation of this idea. You may be aware that the Corda development team uses a static code analyzer called <a href="https://detekt.github.io/detekt/">detekt</a> to monitor the codebase’s quality. If you look at the Corda <a href="https://docs.corda.net/docs/corda-os/4.6/codestyle.html">developer recommended code style guide</a>, you’ll find that many of these rules are already encoded for you in <a href="https://github.com/corda/corda/blob/release/os/4.3/detekt-config.yml">the Corda repo</a>. It could be worth looking to see if some code consistency could save you down the road and make your codebase more comfortable to work with.</p><p>I’d also recommend <a href="https://prettier.io/">Prettier</a> for Java users, which has become incredibly popular and has a <a href="https://github.com/jhipster/prettier-java">java plugin</a>. With as many as <a href="https://twitter.com/PrettierCode/status/1306645449433022467">two million downloads in a single day and forty million in the last month</a>, Prettier has become a fantastic asset to the developer community. Google has put out an excellent set of <a href="https://google.github.io/styleguide/javaguide.html">style guides for Java</a> as well.</p><h4>New Developer Tooling</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*INJEppAdWVgMwulY.png" /></figure><p>Earlier this year, we wrote about <a href="https://www.corda.net/blog/improving-the-corda-developer-experience-4-tools-for-your-coding-pleasure/">new developer tooling</a> that we’ve put together, and it bears repeating.</p><p>You can now develop a CordApp or test an idea in minutes on the <a href="http://ide.corda.net/">online IDE</a>. We’ve completely redesigned the <a href="https://github.com/corda/node-explorer">node explorer</a> so you can see your network and interact with it seamlessly. We have a <a href="https://marketplace.visualstudio.com/items?itemName=R3.vscode-corda">Corda VSCode extension</a>, and for those of you who use <a href="https://www.trufflesuite.com/">truffle</a>, we have a <a href="https://www.trufflesuite.com/blog/branching-out-phase-2-of-corda-flavored-ganache">Corda integration</a> as well.</p><h4>Be aware of Accounts</h4><p>When talking with developers, people often want to run an entire Corda node to represent each of their customers’ identities. This is how Corda was originally designed, so it makes sense that some developers think this way. However, it can quickly become expensive as Corda nodes need a reasonably good machine (Corda Node 4 CPU Core, 8 GB Memory).</p><p>One of Corda’s most powerful features is that you can represent multiple identities on a single Corda node. When <a href="https://medium.com/corda/cordas-accounts-tokens-making-blockchain-more-inclusive-for-everyone-3bf0c3993d41">using Corda accounts</a>, you can scale much more responsibly with the number of customers you have.</p><p>If you find that you often have many identities you want to represent with your platform, but they don’t make transactions too often, this might be an excellent way to improve your configuration.</p><h4>You can run Corda as a system service</h4><p>Corda is compatible with a wide variety of familiar operating system service managers. You can control Corda with upstart, systemD, Windows service, and more.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2_FUkt1qUL4CX70B.png" /><figcaption>From <a href="https://medium.com/@juarezjunior/corda-on-azure-deploying-a-corda-node-corda-testnet-761f43eca005">Juarez Junior’s excellent post on running Corda on Azure</a></figcaption></figure><p>This can make running a service in production as simple as sudo start corda. You can find out more specific details in the <a href="https://docs.corda.net/docs/corda-os/4.6/deploying-a-node.html#linux-installing-and-running-corda-as-a-system-service">Corda documentation</a>.</p><h4>Reach out to us!</h4><p>One of the most helpful things is knowing that you can get to one quickly if you need an answer. We have a <a href="https://www.corda.net/community/">public developer community</a> that you can reach out to with questions and direct access to help at any time. We run regular office hours, and we strive to answer every question that comes our way. If you want help figuring out an error or support with a particular resource, I highly encourage you to get in touch.</p><p><strong>Want to learn more about building awesome blockchain applications on Corda? Be sure to visit </strong><a href="http://corda.net/"><strong>corda.net</strong></a><strong>, check out our </strong><a href="https://www.corda.net/community/"><strong>community page</strong></a><strong> to learn how to connect with other Corda developers, and </strong><a href="https://info.r3.com/email-preferences"><strong>sign up</strong></a><strong> for one of our newsletters for the latest updates.</strong></p><p>— David Awad is a Developer Evangelist at <a href="https://www.r3.com/">R3</a>, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.</p><p>Follow David on <a href="https://twitter.com/realdavidawad">Twitter</a> here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e0693bb3e924" width="1" height="1" alt=""><hr><p><a href="https://medium.com/corda/tips-for-corda-developers-e0693bb3e924">Tips for Corda Developers</a> was originally published in <a href="https://medium.com/corda">Corda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>