By Dr. Kat Baker, Head of Software Engineering
The code for the latest version of the world’s most successful enterprise blockchain platform is now open source.
Is it finished and ready to use? No.
Is it close? Getting there – watch this space.
Is it cool? It is very cool.
I’m here to explain what the team at R3 have made available, where to find it, and why we’re doing this now.
Building on success
It’s hardly an overstatement to say that Corda is already leading the way in enterprise blockchain success. Corda is already helping industries around the world benefit from instant reconciliation between firms, higher levels of trust, and the frictionless sharing of value and data across entire markets.
Corda achieves this success by marrying public blockchain concepts with patterns first proven by the enterprise ‘middleware’ revolution of the early 2000s.
For example, Corda borrows blockchains’ novel usage of modern cryptography to authenticate all updates and protect all data structures in order to eliminate many sources of error at the source. Additionally, by building on such concepts as asynchronous messaging and the popular Java ecosystem, Corda made it possible to introduce its novel inter-firm workflow concept into the most traditional of existing firms.
All of this was achieved as an open-source project hosted publicly on GitHub.
Now, as Corda evolves to better reflect the needs of the community and user, we’re happy to announce that the Corda 5 project, representing the second iteration of the Corda Architecture, has joined its older sibling as an open-source project.
First, let’s answer some questions.
How cool is this?
Thanks for asking! It’s extremely cool. I’m a little biased, but Corda Architecture V2 represents an incredible step forward for DLT and Corda and now all those choices that went into crafting it can begin to emerge.
So, what’s the big deal?
A modern blockchain platform that can scale to meet the needs of country-level financial infrastructure organizations whilst delivering disruptive changes to them. Everything everyone already loves about Corda, only now built to scale from the laptop to the data center.
Why start closed?
Because sometimes you need space to think and explore whilst maintaining the psychological safety net of being able to fail and iterate. Of course, the opposite argument can be made, and ultimately this is something with no correct answer, only the one we went with. We felt Corda 4 could continue to thrive with the community behind it whilst the bedrock of the future was laid in parallel.
The planets have aligned, the auguries were promising, and more practically, the codebases are at a point where the shape of the architecture is emerging. We have finished the work of moving beyond a collection of bricks all over the floor to something that resembles the architectural shape of Corda 5.
The most exciting part of this is that you can now start exploring the code. We’re ready to listen to your feedback. We all want Corda 5 to be a resounding success, and early, honest, open feedback is valuable.
Is it finished?
Right now this is a skeleton, there is a great deal of work left to do, but we feel it is important to do that work in the open, to show its progress and the thinking behind that progression, and as mentioned above to get feedback.
Does this replace Corda Architecture V1 (Cordas 1 through 4)?
Corda is still Corda. A mantra I’ve been oft heard to repeat.
All the same principles, concepts, and features that drew users to Corda 1-4 underpin Corda 5. It’s just that we’ve done open-heart surgery on the internals.
In the next few weeks we have an exciting announcement to make that springboards out of the new codebase so stay tuned. The detectives and code spelunkers amongst you may be able to go and find out early.
How do I get involved?
Check out the GitHub repo here for instructions on checking things out, building them, and running the tests.
What you will find in the code
The purpose here is not to deep dive into what makes Corda 5 special – there is plenty of that still to come. But I want to at least touch upon what is changing in Corda to align its capabilities with the vision statement and requirements of Corda’s community and customers.
Firstly, it actively seeks to center applications at the heart of the distributed database, it enables entities to create identities in many contexts, and for entities to distribute a context simply and easily.
Secondly, it pushes Corda away from individually managed nodes to a virtual platform that allows identities to operate anywhere there is Corda compute available. As long as the underlying compute is managed by a party trusted by the participants then it doesn’t matter where any identity is at any given time. It plays well in the data center where its components morph into identical, scalable, units instead of a single monolithic program.
Thirdly, accompanying that above shift, it achieves a truly highly available, scalable architecture that can accommodate the rigorous demands of high-end enterprise customers, yet will happily allow for an entire network to be deployed and run on a single laptop.
Corda is still Corda, it’s just being managed smarter at the back end.