These articles are intended to give elements of comparison such as their components , their state “ stateful or stateless , confidentiality , consensus, the transaction cycle , interoperability , and finally the high availability of these platforms, in order to be able to choose the platform that best corresponds to the use case posed.
The corda development of Fabric began in 2015, under the name Open Blockchain (OBC). IBM and Digital Asset Holdings are behind its development. Its name then became “Fabric” when it was incubated by Hyperledger , a Linux Foundation project that brings together various distributed ledgers and utilities (blockchain explorer, interoperability and identity projects, etc.).
Corda , for its part, was developed by the R3 company , which subsequently made it open-source on November 30, 2016. R3 is also part of Hyperledger, and participates in various working groups. While the open-source licenses of Fabric and Corda are the same, R3 hire corda blockchain developer has chosen not to submit Corda to Hyperledger for governance and trademark issues.
Corda was designed by and for financial institutions , but the platform aims to be agnostic and offers a framework to build any use case.
These two platforms have tried to collect the most feedback on both the needs of industry and those of finance, in order to refine their specification.
Let's start by detailing their components, we will use the terms below in the rest of the article.
Both platforms use a public key architecture for identity management.
There are several types of nodes and services in a fabric network:
Client : Attached to the node of an organization, it uses an SDK in Node.js or Java to send transactions (we will come back to this later) and to receive new blocks through its attached node.
Peer : It is the node of an organization , there are two types:
Committing Peer : They receive the blocks containing the transactions from the Orderer and maintain the states associated with the chaincodes .
Endorsing Peer : They validate the transaction proposals they receive, and return an endorsement . They have all the functionality of Committing Peers .
Orderer : Also called Ordering Service, it is the service that groups validated transactions and broadcasts them to all the nodes of the same blockchain network (called channel) . Supporting several channels , it groups transactions in batch , in blocks.
Here are the components of a Corda network:
Corda Node : It is the node of an organization , it can carry several Cordapp development, which are the business applications incorporating the smart-contracts and Flow of Corda.
Network Map : It allows the different organizations of the network to discover each other . Implemented as an HTTP service, it can be located behind a CDN and is cached by each of the network nodes .
Notary : This is the service that enables consensus on double-spending in the network
Non-Validating : It ensures the non-double-spending of an asset in the same Corda network and must sign these spending transactions . It simply checks that a state has not already been consumed; he therefore respects the confidentiality of the transaction in question. This is the notary most often used.
Validating : It checks if the checks of the smart-contract referenced in the transaction are correct . It does not respect confidentiality in transactions if it is not used with SGX type enclaves (in the process of being implemented).
HERE Detailing about Stateful or stateless of fabric and corda