16

While I am trying to understand the blockchain technology, I came across HyperLedger Fabric. As per the documentation, it is an implementation of blockchain technology.

What does that mean? Is block chain just a concept and HyperLedger Fabric, an implementation of that concept?

UPDATED: Where does the hyperledger fabric store the transactions? I understand that its a p2p architecture and every peer has a copy of the transactions, but usually these transactions is a growing set. Does every peer has a copy of growing transactions? I am not clear on this yet. Does the community recommend any database?

Dan Anderson
  • 2,047
  • 1
  • 6
  • 18
Manikandan Kannan
  • 7,246
  • 12
  • 35
  • 60

9 Answers9

19

The Blockchain is an "idea" for how the data can be saved in distributed network. in Wiki it is defined as:

Block chain — is a distributed database that maintains a continuously-growing list of records called blocks. Each block contains a timestamp and a link to a previous block. The data in a block cannot be altered retrospectively.

There are many projects which utilize blockchain in its core:

  • Bitcoin
  • Ethereum
  • Hyperledger
  • etc.

Hyperledger - is not an implementation, it is Specification for how trusted network should work.

Hyperledger specification has several implementations from different vendors:

  • Fabric - from IBM
  • Sawtooth Lake - from Intel
  • Corda - from R3 consortium
  • Iroha - from Soramitsu

P.S. Each company tries to implement it's own vision of Hyperledger and currently these implementations are not compatible with each other.

Sergey Balashevich
  • 2,061
  • 14
  • 11
  • 4
    Corda has never been contributed to Hypedger. It is an independent open source project belonging to R3CEV consortium – christo4ferris Aug 01 '17 at 20:11
  • 1
    Hyperledger is not a specification. It is part of the Linux Foundation and is an umbrella organization that contains several independent blockchain platforms, not compatible with each other. All Hyperledger platforms are open source and Apache 2 licensed. – Dan Anderson Sep 26 '18 at 22:00
12

Yes, simply put, Hyperledger Fabric is to blockchain what MySql is to database.

1.2 Why the fabric?

Early blockchain technology serves a set of purposes but is often not well-suited for the needs of specific industries. To meet the demands of modern markets, the fabric is based on an industry-focused design that addresses the multiple and varied requirements of specific industry use cases, extending the learning of the pioneers in this field while also addressing issues such as scalability. The fabric provides a new approach to enable permissioned networks, privacy, and confidentially on multiple blockchain networks.

- https://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md#12-why-the-fabric

Clyde D'Cruz
  • 1,757
  • 1
  • 11
  • 33
10

What does that mean? Is block chain just a concept and HyperLeder, an implementation of that concept?

I would say it really depends on your definition of a blockchain (originally spelled "block chain" like you have above).

The original definition can be found here in the comments of the Bitcoin cpp code base.

https://github.com/bitcoin/bitcoin/blob/4405b78d6059e536c36974088a8ed4d9f0f29898/main.h#L807-L812

and here.

https://github.com/bitcoin/bitcoin/blob/4405b78d6059e536c36974088a8ed4d9f0f29898/main.h#L1014-L1019

I believe one defining characteristic of a blockchain is immutability. If a blockchain's history can be changed with collusion it's not a blockchain imho. I'm under the impression that any private/permissioned blockchain cannot make such guarantees, because if something needs or is wanting to be changed you can easily collude to make the change like a normal database (not to be confused with append only changes). Bitcoin makes this very difficult because of PoW (proof of work), if you wanted to change the past you would need miners to rewrite all the blocks afterwards which is very costly.

At a minimum I would at least prefix it like... fabric enables implementation of "private/permissioned" blockchain. It's really up to the community and groups like fabric to define what "private/permissioned blockchain" means.

Where does the hyperledger fabric store the transactions? I understand that its a p2p architecture and every peer has a copy of the transactions, but usually these transactions is a growing set. Does every peer has a copy of growing transactions? I am not clear on this yet. Does the community recommend any database?

They are doing a lot of development on fabric and I believe even changing up the tech stack they are using with minor releases, So it is hard for me to know what they are up to at the moment. Their latest guide here:

http://hyperledger-fabric.readthedocs.io/en/latest/glossary.html

or look at their codebase here:

https://github.com/hyperledger/fabric

Looks like they moved to rocket chat, their devs are helpful with technical questions. https://chat.hyperledger.org/home

One interesting thing is, I've talked with their devs in the past about these same questions and the answer I came away with, is they are using couchdb to hold state and apache kafka as the core "blockchain piece". If you look at their latest guide and replace "channel" with "topic" I could kind of see how they are still using apache kafka, but I don't see it referenced anywhere.

Michael Tidwell
  • 303
  • 2
  • 8
4

Mainly these Blockchain frameworks are evolving: ( Please Note : Some Changes being made with respect to time like governance, additional consensus integrated etc )

  • Hyperledger Fabric

  • Corda

  • Ehtereum

    Take a look Differences between them

enter image description here

Community
  • 1
  • 1
Vishal Dalve
  • 314
  • 2
  • 15
3

While I am trying to understand the blockchain technology, I came across HyperLedger Fabric. As per the documentation, it is an implementation of blockchain technology.

Blockchain is an idea. From Wiki A blockchain, originally block chain, is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block typically contains a cryptographic hash of the previous block, a timestamp and transaction data. Blockchain image

Hyperledger is a Linux Foundation organization. There are various sponsors of this organization, for example IBM, American Express, and Baidu. I think there's almost 100 sponsors now.

Hyperledger has a few implementations of the blockchain technology. These are

Hyperledger Fabric.
Hyperledger Iroha,
Hyperledger Sawtooth.

There are also other ones...
Ethereum. Hashgraph (?) - even though they claim not to be a blockchain :D
Corda.

Since the above are implementations, how they accomplish consensus, features, and architecture will be different.

There are a couple of things that differentiate Fabric.

It runs something called a private or permissioned blockchain network - which means all peers are trusted. Because of this there's no such thing as proof of work that you see in Bitcoin for example. It's also fast because there's no extra computations that need to take place. Blocks are created after an certain amount of time or transactions and most peers can have a copy of the ledger.

enter image description here

Fabric also uses Leveldb as world state database, but this can be changed to CouchDB for more complex queries.

Hyperdger Fabric Introduction: http://hyperledger-fabric.readthedocs.io/en/release/blockchain.html

Mogsdad
  • 40,814
  • 19
  • 140
  • 246
Marek
  • 301
  • 2
  • 5
2

Yes, Blockchain is a technology of distributed network. And Hyperledger fabric is one of the platforms for implementing this technology.

We can implement two types of blockchain using different platforms

1.Public blockchain: Anyone on the internet can easily join this

ex- bitcoin or Etherium

2.Private blockchain - this is the network of some peers like Intranet.

ex- some organisation come and create a network. So only those peers can see the content of this blockchain. And every peer of this blockchain network has a separate but same copy of ledger which can't be changed.

And there are some platforms to develop such private blockchain, like Hyperledger fabric, hyperledger sawtooth, hyperledger indy, corda.

And hyperledger store all transactions copy at each peer. and these are stored in label db or couch db.

2

What is Blockchain?
Blockchain is a concept. At core it is just a database. It is Decentralised, Distributed, Immutable Database.

What is Hyperledger Fabric?
Hyperledger is an umbrella project hosted by the Linux Foundation. Hyperledger Fabric is one of this project.
Hyperledger Fabric is an implementation of Blockchain Concept.
It is private / permission network.
It is a Distributed Ledger Technology.
Now it's confusing? It is designed in a way that if implemented correctly it will be decentralised else it is a distributed ledger.

Where does it store the transaction?
All the peers on the network and the channels everyone has there own separate ledger and the transactions get stored in it.

Does every peer has a copy of growing transactions? Yes, in this way peer can verify if transaction is compromised or not.

Does the community recommend any database?
A ledger contains two things in it: 1. Blockchain , 2. World State
Blockchain contains all the transactions in it as transaction log in a file
World State store states of the chaincode in database. For all the operation on chaincode it use world state to do modification in blockchain and save the latest state in it.
There are 2 DBs recommended by community:
1. LEVEL DB : For Development
2. Couch DB : For Production

In documentation it is mentioned as pluggable so maybe we can use other DBs but with some work around.

Shubham Chadokar
  • 1,286
  • 12
  • 34
1

Blockchain and HyperLedger Fabric difference

Blockchain is a Technology to store data ~A almost absolute permanent Database, a write once database, which cannot rewrite/edit later

HyperLedger Fabric in the other way, using Blockchain as its data storage or Database + another logic that is depend on the each framework/platform policies. Or We can call it smart contract.

Where does the hyperledger fabric store the transactions? It store in its blackchain nodes.

Does every peer has a copy of growing transactions? Almost every peer have a copy of all transaction histories, by design blockchain need at least 50% of the nodes to approve the transactions therefore another 50% will have a copy of the new transaction after a while.

I am not clear on this yet. Does the community recommend any database? I am not quite sure about this question.

ponury-kostek
  • 6,780
  • 4
  • 17
  • 26
vhong
  • 576
  • 4
  • 26
1

Yes, Blockchain is just a technology and it get further classified into its types i.e. (public, private and permissioned Blockchain).

Public Blockchain:

  1. Bitcoin
  2. Litecoin

Private and Permissioned Blockchain:

  1. Hyperledger Fabric

The above are just the implementation of the an idea or concept i.e (Blockchain).

Where does the hyperledger fabric store the transactions?

It stores the transactions in the peer nodes. We can check these transactions by setting up the couchdb as well for the better understanding of of each transaction.

A.Srivastava
  • 51
  • 1
  • 4