Hyperledger Besu was added to Hyperledger open source family at August of 2019 and is the newest member I believe. Here is the words about the Besu:
Hyperledger Besu is an open source Ethereum client developed under the Apache 2.0 license and
written in Java. It can be run on the Ethereum public network or on private permissioned networks,
as well as test networks such as Rinkeby, Ropsten, and Görli. Hyperledger Besu includes several
consensus algorithms including PoW, PoA, and IBFT, and has comprehensive permissioning schemes
designed specifically for uses in a consortium environment.
Here is the words about Iroha:
Hyperledger Iroha is designed to be simple and easy to incorporate into infrastructural or IoT
projects requiring distributed ledger technology. Hyperledger Iroha features a simple construction,
modular, domain-driven C++ design, emphasis on client application development and a new, crash fault
tolerant consensus algorithm, called YAC.
Besu probably has token and Iroha does not. Besu may have more adoption as it has been derived from Ethereum. I am looking for a permission based blockchain technology (likely without token and require smart contract) which enables transactions and keeps track of transactions (for ex, transaction parties, items involved (images of items), amount, date) of items (for ex, painting. its digital images are stored in transaction record). What is the difference between Iroha and Besu? which technology may be better for enabling & keeping track of transaction?
Related
What are the advantages of hyperledger-fabric compared to a private Ethereum network? According to what I've read, Ethereum seems to be more like a general-purpose blockchain network whereas hyperledger-fabric can be more business-oriented but so far the features offering that advantage are not very clear to me.
Fabric is a Hyperledger project. It is an enterprise-grade distributed ledger that allows the development blockchain solutions
with a modular architecture. It has a permissioned architecture,
support modularization, pluggable consensus, and supports smart
contracts(aka ‘Chaincode’ in case of Hyperledger Fabric).
Various functions in the fabric are pluggable, and it also allows the use of any language to develop smart contracts. This functionality
is possible because it is based on container technology (Docker),
which can host any language.
As of now smart-contract in the blockchain run on an order-execute environment where the consensus protocol validate and order
transactions and broadcasts it to all the peer nodes in the network,
each peer node then sequentially executes the transaction. Most
blockchains today run on this order-execute blockchain environment.
The issue in this order-execute environment is that the smart contract
running here needs to be deterministic otherwise a consensus might
never be reached. To solve this issue, smart contracts have been
written in non-standard languages like Solidity with which the
non-deterministic operations are eliminated. However, this hinders
blockchain large scale adoption as smart contracts need to be written
in an altogether new language and it may lead to programming errors.
Moreover, as all transactions are only executed sequentially,
performance and scale are limited.
As Fabric eliminates the non-determinism issue, it has become the
first blockchain to enable the use of standard programming languages
to write smart contracts. In the 1.1.0 release, the smart contracts
will be written in either Node.js or Go; in the subsequent releases it
is envisioned that the platform will support other popular programming
languages like Java.
As widely known, the public blockchain network runs on Proof-of-Work concept and the transactions are executed on every node. Every
transaction and code that is implemented is visible to every node in
the network. This means neither the smart contract stays confidential
nor the transaction data which is processed. This means we have
exchanged the privacy of the contract and data for the public
consensus concept of PoW.
This lack of privacy is problematic for businesses. For example, in a supply chain business, some partners might be offered additional
discounts as a means of solidifying business. If everyone in the
network is able to see the contract and transaction, it won’t be
possible to do business – everyone will ask for the discounted rates!
Hyperledger Fabric as a permissioned blockchain offers privacy and confidentiality through its channel architecture. With Fabric, one can
establish a “channel” between the subset of participants who should be
granted the right to access a set of transactions. Like a network
overlay, only the nodes that participate in a channel have the access
to the chaincode (smart contract) and transaction data. This helps to
preserve confidentiality and privacy and builds trust in the network.
To enhance the privacy and confidentiality aspect, Fabric is offering
support to keep the data private and is developing zero knowledge
proofs (ZKP).
hi hope you are doing well. by the way I have a research on the frameworks used by blockchain. I found a problem while fixing the differences between Hyper-Ledger Fabric and hyper ledger Besu. can you help me
You can find the differences from the description given in official documentation:
Hyperledger Besu is an open source Ethereum client developed under the Apache 2.0 license and written in Java. It can be run on the Ethereum public network or on private permissioned networks, as well as test networks such as Rinkeby, Ropsten, and Görli. Hyperledger Besu includes several consensus algorithms including PoW, PoA, and IBFT, and has comprehensive permissioning schemes designed specifically for uses in a consortium environment.
Hyperledger Fabric is an open source enterprise-grade permissioned distributed ledger technology (DLT) platform, designed for use in enterprise contexts, that delivers some key differentiating capabilities over other popular distributed ledger or blockchain platforms. Fabric has a highly modular and configurable architecture, enabling innovation, versatility and optimization for a broad range of industry use cases including banking, finance, insurance, healthcare, human resources, supply chain and even digital music delivery.
For further details you can refer following links:
https://besu.hyperledger.org/en/stable/
https://hyperledger-fabric.readthedocs.io/en/release-2.2/whatis.html
I have a problem with understanding why Hyperledger Fabric (HLF) uses blockchain structure.
I know that in Bitcoin blockchain structure ensures big security due to PoW algorithm and longest chain rule, but what are advantages of using a blockchain structure in HLF?
It seems to me that in Hyperledger Fabric, instead of the blockchain structure, there could be one transaction history log and network could work in the same way - I bet I'm wrong, but I haven't been able to find an explanation yet.
I would be grateful for the clarification of this issue.
I think a lot of questions you have in your mind comes from the overlapped definitions of DLT and blockchain.
DLT:
A DLT is simply a decentralized database that is managed by various participants. There is no central authority that acts as an arbitrator or monitor. As a distributed log of records, there is greater transparency – making fraud and manipulation more difficult – and it is more complicated to hack the system.
All of this could well be familiar because it’s written about the features of blockchain as well.
Blockchain:
Blockchain is nothing else but a DLT with a specific set of features. It is also a shared database – a log of records – but in this case shared by means of blocks that, as the name indicates, form a chain. The blocks are closed by a type of cryptographic signature called a ‘hash’; the next block begins with that same ‘hash’, a kind of wax seal. That is how it is verified that the encrypted information has not been manipulated and that it can’t be manipulated.
DLT platforms that are not blockchain provide immutability too, but it's just the way Hyperledger Fabric provides this characteristic which makes it a blockchain framework.
Every blockchain framework, be it the Ethereum, Bitcoin, etc all store the transaction information in blocks, where each block is linked to its predecessor by a hash and provides immutability.
Corda is very much similar to Hyperledger Fabric, but it is said to be both a blockchain and not a blockchain. Architecturally, it's very much similar to Hyperleder Fabric, but with only a key difference which makes Hyperledger Fabric a blockchain framework, and Corda a DLT.
I'll try to answer your question by emphasizing on the point that why Corda is not a blockchain.
Why is Corda a blockchain, and not a blockchain?
A Transaction in Corda is cryptographically linked (chained) to the transactions it depends on. Just like Bitcoin, but the range of concepts that can be expressed is far wider.
Transactions in Corda are processed by having each participant in the transaction execute the same code deterministically to verify the proposed updates to the ledger. Just like Ethereum, but the languages you can use are high-level and productive, like Java, rather than obscure ones like Solidity.
Transactions in Corda are shared only with those who have a need to know. Just like channels in Fabric but designed in from day one and fully integrated into the programming model.
Transactions in Corda are confirmed through a process of consensus forming using one of a range of algorithms, including Byzantine Fault Tolerant algorithms. Just like any other blockchain, but with the unique features that a Corda network can support multiple different consensus pools using different algorithms.
So, for all intents and purposes, Corda is a blockchain. And yet… there’s also an utterly critical difference.
Unlike the platforms mentioned above, Corda does not periodically batch up transactions needing confirmation — into a block — and confirm them in one go. Instead, Corda confirms each transaction in real-time. No need to wait for a bunch of other transactions to come along. No need to wait for a “block interval”. Each transaction is confirmed as we go.
Now coming onto your question why Hyperledger Fabric (HLF) uses blockchain structure? The answer is simply because they chose to.
References:
https://www.bbva.com/en/difference-dlt-blockchain/
https://cointelegraph.com/news/what-is-the-difference-between-blockchain-and-dlt
https://www.corda.net/blog/corda-top-ten-facts-7-both-a-blockchain-and-not-a-blockchain/
To keep the record immutable, Hyperledger Fabric uses blockchain structure. So by using Hyperledger Fabric, you can get an immutable record of all the transactions which is tough to temper with fraudulent activities.
Suppose you buy an valuable asset and you are the current owner of that asset. Now it is very hard for others to temper that records or change your ownership without your permission as Hyperledger Fabric uses blockchain structure to keep the record immutable.
Got a blockchain related project to impl.
Part of the project need permission control, means:
Only qualified users (e.g login) could use it.
The transaction history is not public, a transaction is only visible to related user or admin user.
It seems Ethereum has a lot of features, so trying to re-use it.
My questions are:
Is Ethereum also suitable to develop permissioned blockchain?
If yes, how to impl the permission part.
If no, then does that means framework like Hyperledge Fabric is more suitable?
If you want to leverage Smart Contracts of Ethereum in Solidity but still be able to use it in a Permissioned Environment, have a look at Hyperledger Burrow (Monax).
https://github.com/hyperledger/burrow
You can also consider Microsoft COCO framework but it is still under development and I think it is targeted to release by end of this year.
"Microsoft's Confidential Consortium Blockchain Framework represents a breakthrough in achieving highly scalable, confidential, permissioned Ethereum or other blockchain networks that will be an important construct in the emerging world of variously interconnected blockchain systems. " - Joseph Lubin, Founder of ConsenSys
Related Blog:
https://azure.microsoft.com/en-us/blog/announcing-microsoft-s-coco-framework-for-enterprise-blockchain-networks/
I am trying to build a block chain system. How could i find the best platform ? Is there any Superiority for the Hyper-ledger over ethereum ?
Both ethereum and Hyperledger Fabric are suited for very different visions in regard with their fields of application.
Hyperledger Fabric provides customisable and extendable architecture that may be used in diverse fields ranging from banking to supply chain to healthcare et al. Ethereum’s unique feature of providing us with a cross-disciplinary platform for all kinds of transactions and use cases.
ethereum is permissionless and Hyperledger Fabric is permissioned.
consesus mechanism used by Ethereum use Proof of Work (POW), Hyperledger Fabric use Byzantine Fault Tolerant(BFT).
Issue with POW
- It requires lot of computational power (CPU cycles, GPU, electricity)
to get random bits.
- Tragedy of the commons Miners reward reduces over time, when this occurs less miners will mine these blocks. This could open up window for malicious users who can easily acquire more than 51% of network and thus destroying the network.
Following are the languages in which smart contracts are written for ethereum and hyper-ledger
ethereum :solidity,LLL,serpent
hyper-ledger :go or java
crypto currency
Ethereum :Another noteworthy difference is that Ethereum features a
built-in cryptocurrency called Ether. It is used to pay rewards to
nodes that contribute to reach consensus by mining blocks as well as
to pay transaction fees.
Hyperledger : Hyperledger Fabric does not require a build-in cryptocurrency as consensus is not reached via mining. With Fabric, however, it is possible to develop a native currency or a digital token with chaincode.