Former Bitcoin Core developer Mike Hearn recently came out of silence to discuss Bitcoin briefly and to provide some detail about the charactertiscs of R3CEV’s Corda platform.
Hearn, who is R3’s lead program engineer, left the Bitcoin scene early in the year declaring that cryptocurrency a failure.
Hearn now believes that the issues Bitcoin and Ethereum developers face are similar to those of “private, institutional distributed ledgers”.
In regard to Corda, Hearn claims that the design of the “blockchain-inspired system” has been influenced by his experience developing blockchain-based applications.
“…we consider our “hello world” type app to be something like an interest rate swap, rather than a crowdfund or token issuance. The applications institutional customers want to use blockchains for are far more complex than anything done on top of Ethereum/Bitcoin so far, and so when we started designing Corda I knew we’d need to find ways to radically improve developer productivity. There are just so many time sinks when writing apps for a block chain. Corda doesn’t use proof of work, but it does use a similar transaction and ledger model to Bitcoin. So if making a simple app for Corda took as much work as making a simple app for Bitcoin does, we’d have a serious problem.”
A “cordapp” is a collection of smart contracts that verify transactions and protocols to build， as well as make joint transaction signing, API plugins for the server and eventually also UI plugins.
“These can all be sandboxed and loaded dynamically. The APIs are a defined part of the platform. In this way, generic services useful for all such apps don’t have to included as a library, rather, the app is a library loaded by the node software itself.”
To develop Corda, R3 has avoided “reinventing the wheel” and relied on some industry standard tools such as messaging queuing protocols. As nodes are assumed to be semi-stable and own long term identity, a message sent to an identity that is offline is queued up for later delivery. As it builds on standard protocols that have proven quality and high performance implementations, Hearn believes this will make Corda more reliable. Users can attach arbitrary files to transactions that are then available to contract code, and those attachments are streamed over the network automatically and efficiently.
Additionally, Corda’s consensus mechanism does not rely on global broadcast, and there is never a need to download or process an entire blockchain.
In Corda, R3 is prototyping a framework that automates most of the tedious, error prone work in this area. Asset and trade lifecycles can be implemented as straightforward, linear code in ordinary programming languages.
“You can use loops, branches, and so on. We call these things protocols. Behind the scenes the control flow graph is transformed into an automatically checkpointing state machine. It is reasonable to block for days or weeks waiting for something inside a protocol. Protocols can interact with abstract institutional identities, specific people, and internal behind-the-firewall systems. The network layer figures out which IP addresses currently corresponds to an identity using an advanced network map. This is especially vital because so many of the things Corda will be used for are inherently multi-party.”
Hearn also highlights the importance of testing code and how one of the top issues facing Ethereum is “buggy contracts”. R3 mitigates this with the development of a DSL-like API which makes writing contract unit tests easier. There is an early version of that tool that performs and visualizes network simulations, one thread per node with simulated latency, which was operating in a presentation by Barclays below.
Like Ethereum, Corda utilizes smart contract that are Turing complete, but R3 has avoided inventing a new developer toolchain from scratch. Corda adapts an existing “industrial strength” toolchain that developers should be familiar with. Hearn describes that as “a top quality IDE and debugging experience right from the start.”
Corda also has a basic event scheduler API that interacts with its equivalent of the wallet, making it much easier to write apps that do things when certain times are reached.
R3’s Corda platform was first demonstrated at a Barclays’ accelerator event back in April 2016 and officially launched earlier in the month.