On Tuesday this week we had the final demo session of the that Corda Code Club has been running at RBS’s Open Experience space in Angel for the last 6 weeks.

Corda Code Club has been running extended-hackathons that last 6 weeks for the last year and a half now, and the format is different from usual hackathons to ensure that people with commitments at the weekend or during the working week, can still take part. The format is 2 hours a week for 6 consecutive Tuesdays, starting at 6pm plus as much (or as little) time as you want outside of club hours. Competitions are suitable to developers with all levels of Corda skill, and we especially invite devs who are totally new to Corda because with our team mentor system we have a successful track record of introducing people to Corda for the first time.

So Tuesday night was the culmination of 6 weeks of hard work and out of the 42 devs who formed 6 teams on the first night, only 14 had made it to the final in 3 teams. And as they gathered in the main area, quietly talking, milling about or huddling over laptops and quickly making last minute tweaks to presentations before the 6:30pm start, you could see that some of the guys had got their game faces on, and were readying themselves to make a good show of what they and their teams had worked so hard on over the last 6 weeks.

Our judges arrived one by one, first to arrive was Mirka Skrypczak, Head of Working Capital at RBS and a strong advocate for blockchain and Corda adoption within the banking sector. She was soon joined by John Reynolds, CEO of Coadjute the real estate blockchain network company that built the Instant Property Network Cordapp. It was a huge relief to see John walk through the door because I’d only spoken to him 40 minutes earlier telling him that the judge we’d lined up for the final weeks ago had got in touch at the last minute to say he couldn’t make it (!), and asking him if he could step in and be our 3rd judge. Thank goodness he’d said yes and it was great to see his smiling face as he walked through the door. Last to arrive was Cais Manai, Product Manager at R3 for Payments, Settlement, Cais and

Judges: Cais Manai, Mirka Skrypczak, John Reynolds

John have been long standing supporters of Corda Code Club and seeing them together smiling and chatting was the first time that evening that I stopped feeling nervous about the event, and really started to feel excited about what was about to happen.

Without our mentors, as with any Corda Code Club, this extended hackathon would not have been possible. On the first evening each team is assigned a Corda mentor who’s there to help the participants understand how Corda works, to answer their questions and to guide the teams during the design and build phases on what solutions work best in Corda. Our mentors this time were Ankur Banerjee, Head of Engineering at ID Works; Dimos Raptis. Senior Engineer at R3; Matt Layton, Lead Engineer at TradeIX; Ramiz Amad, Developer at RBS; Tudor Malene, Senior Engineer at R3; Xavier Lepretre, Instructor and Director at B9Lab and Zbi Czapran, CTO at Finteum.

The first team to present was called TEX, which stood for “Trade Exchange”, and they demo’d a working Decentralized stock exchange

Team TEX: Aditya, Rajesh, Kyriakos, Euan and Ramesh

Cordapp that enables buyers and sellers to complete the trade lifecycle and settle on a totally peer to peer basis, without relying on third parties for custodial or post trade services. Thus using Corda to shorten the trade lifecycle and reduce fees and the cost of business. From their well-executed demo it was clear that the team had put a lot of thought and effort into their Cordapp. It was a very complete Cordapp that really made the most of many of the features that come with Corda 4 and the new Token SDK. Their demonstration showed how a decentralised split order book would broadcast sell orders to all of the other nodes on the network, allowing the rest of the nodes in the market to engage in order matching and trade with that selling node. They then showed how 2 parties would complete an atomic swop of equities for cash using their Cordapp. Nodes would self-issue with equities tokens, but only the bank of England node could issue cash tokens and if any other node tried to issue cash, that would throw an exception. Because the buyer can trade with any other node in the network, they built a small order matching engine that allows a buyer to automatically select the cheapest stock from the broadcast prices and would automatically serve up the next cheapest if the very cheapest stock had just been bought. They also had a feature that would ensure that if a node created new tokens as a specific company stock — say Vodafone Shares, and there were already tokens in existence that were Vodafone Shares, then the newly created stock would also be recogised as Vodafone Shares (rather than being treated as a completely different asset).

The next team to present was ZINEX. This team demonstrated a very simple Cordapp that — to everyone’s surprise — consisted of only one state, one contract and two flows that allowed one party to complete a metals trade with another party, with each party retaining the same copy of those trade details at the end of it. This team had a lot of business knowledge but their level of Corda skills prior to starting this Corda Code Club was fairly minimal. So their solution was to keep the Cordapp simple enough to ensure they could write a working Cordapp in time to have something to show on demo night, and focus on solving a problem within a very narrow part of the exchange business flow — the business problem of trading entities keeping accurate trading records — and focus on creating an elegant reconciliations solution. Speaking to them afterwards they told me that they looked.

Team Zinex: Jalal, Tony and Matt

Speaking to them afterwards they told me that they looked at at solving the settlement side of post trade services as well, but concluded that to do that they’d have needed a bonded warehouse to confirm that one of the nodes actually holds the metal assets and entity to verify that the other party actually has the cash, which would have been much harder for their team to model in Corda. During their presentation they explained that one the costs that trading using an exchange typically involves comes from when the companies that have being buying or selling assets during the day need to perform their reconciliation process. The way it currently works is that those trading parties rely on companies (such as DTCC) that capture and store exchanges’s daily trading data selling them that data so they can complete their own reconciliation process. (Which may seem like madness to you or I, but when you consider that yes they are also storing their own trading data, but not only does their counter party not trust the data they’ve stored, but neither does the regulator, using a 3rd party to verify a day’s trades is the currently best option. In that way, it’s very much a trustless environment). Their solution was literally to capitalise on that basic “distributed ledger” element of Corda, to build a trade data capture system that records all of the days’ trades and stores them in a single ledger that all of the relevant parties can access and reference during their reconciliation processes, and thereby use Corda to reduce the cost of business.

The final team to present was team Honeycomb. They started from a position where they assumed that a decentralised trading exchange Cordapp already existed, and instead focussed on building an additional feature to a Corda DEX that would use the TokenSDK and which would ensure that an asset couldn’t be sold to another party whilst it was in the process of being bought (which is called “Settlement Risk”). Their Cordapp attempted to solve this issue by introducing a Time Asset Locking mechanism to provide

Team Honeycomb: Andy, Eric, Mark and Krish

Decentralised Escrow. This worked by “locking” an asset once it had been bought for a limited time, which would give the buyer enough time to send the cash payment and ensured that it couldn’t be sold to another party in the meantime. If the buyer didn’t purchase the asset in time the lock would expire, putting the asset back on the market, but as soon as the seller received the payment from the buyer a receipt would be produced and the asset would unlocked, completing the trade. In this way, using the features of Corda and the TokenSDK, team Honeycomb were able create a truly peer to peer Cordapp that did not involve using a third party escrow, maintained privacy and eliminated settlement risk. Team Honeycomb also presented their Cordapp using a UI, which really helped to their Cordapp to totally come alive and to be easier to understand.

After the demos had finished everyone left the judges to their deliberations and went through to the breakout area for a well-earned Limonata / Peroni. There was a great buzz in the air and I was delighted to see David Nicol, who leads the digital assets program at R3 was there too. I spent a good 5 minutes asking him about the state of the market, and I was pleased to see that he seemed impressed by the high standard of Cordapps our teams had managed to build in time for the demo night. One thing we both noticed was that during the Q&A time the judges had really been grilling the teams about their Cordapps and trying to put them on the ropes — that hadn’t been something we’d really seen before, and seeing the teams handle those questions had been really exciting. After 15 minutes of judging time we all piled back into the main room to hear who had won the hackathon.

Team Zinex was presented with the award for the Best Exchange Cordapp

This is the prize for the best implementation of the business case (note, this is not for the best idea, it’s for the best implemented idea). The judges were really impressed with how the team had focussed on design thinking and rather than attempt to model the whole marketplace, they had identified a real business problem that is really valuable to the users and presented a solution to that.

Team Zinex wins Best Exchange Cordapp: Jalal and Tony with John

Team Honeycomb was presented with the award for the Best Cordapp

This is essentially the award for the best code. In this case the judges loved how the team had gone about solving the Delivery Vs Payment problem in the trading sector. DVP issues have long been considered the holy grail of finance technology and presenting a working demo of a Cordapp that allowed a seller to hand over an asset to a buyer after a sale, and for that asset to be locked until the buyer pays for it and is issued with a receipt which then automatically unlocks that asset, is really impressive. The fact that their Cordapp also had a great GUI, was simply the icing on the cake.

Team Honeycomb wins Best Cordapp: Mark, Eric, Cais (J), Andy and Krish

Speaking to the participants afterwards, it was great to hear how so many of them said how much fun this hackathon had been, and how interesting the Exchanges use case had been. Everyone seemed to agree that the challenge of building an exchange presented the teams with so many choices and different problems to look at. Teams could choose the relatively conservative option of designing a centralised exchange that ran on Corda and simply take the benefits you get from things like simplification of EoD trade reconciliations or from the efficiencies provided by atomic swops. At the other end of the spectrum teams could decide to go totally decentralised and spend a lot of time thinking about how to implement a truly decentralised exchange and how much functionality would have to be sacrificed to achieve that. Building anything on Corda requires the developers to really think adversarially about how each design choice would affect the overall usability and privacy of the application.

And looking at the results of this hackathon it was easy to see how much the teams enjoyed working on this use case. Without a doubt we saw the highest standard of Cordapps being demo’d at this Corda Code Club so far.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store