Is Hyperledger Besu compatible with Cosmos IBC? - blockchain

I am beginning a project that uses Hyperledger Besu as its underlying blockchain and looking ahead to interoperability and cross-shard functionalities.
There are a number of 'internet-of-blockchain' projects (including Polkadot and Hyperledger Cactus), but I am particularly interested in Cosmos and the Inter-blockchain communication (IBC) model.
My question is about the compatibility of Besu with Cosmos IBC. In most sources, IBC is said to be compatible with any blockchain that offers non-probabilistic consensus. Besu satisfies this when instantiated with, say, IBFT 2.0. Other documentation (see section "What Blockchains are compatible with IBC?") gives a more significant list of requirements.
I do not know enough about Besu or the requirements linked to above to evaluate whether Besu can interoperate with IBC.
Is there a simple answer to whether Besu is compatible with IBC?
If not, what aspects of a Besu-based project will influence compatibility?
Thanks-

IBC-Solidity, the IBC implementations in Solidity, enables EVM-compatible blockchains, including Hyperledger Besu, to be interoperable via Cosmos IBC.
https://github.com/hyperledger-labs/yui-ibc-solidity
IBC Solidity is one of the components of YUI, a Hyperledger Lab, that archives interoperability with multiple heterogeneous blockchains through Cosmos IBC.

Related

How to build the seamless bridge between two blockchain platform?

How to build the bridge between two different consensus blockchain platform?
use case:
1.we need to ensure visibility of the transaction in both platforms to assure its integrity
When a smart contract is established on one platform, that contract can be referred to, transacted and transferred to the other platform easily and securely
The bridge should be able to leverage the one platform and other platform depending upon the transaction type and the TPS requirement. If it requires a faster TPS, then one consensus framework or else normal mining framework of another consensus
How to achieve consensus on the multiple decentralized oracles?
I tried researching on this.But currently no one who has a full fledge integration that you want.Basically what i understood is a multi tenant blockchain platform(with some tweaking) will address your purpose(I am not sure whether you would be achieving your 3rd requirement).
Here is a paper which could help you start on your idea.
https://arxiv.org/pdf/1901.11219.pdf

Is it possible to have branches in a Blockchain?

I am using Blockchain to allocate tasks for agents in a multi-agent system. I wanted to know if it's possible to have branches in a Blockchain, If the answer is "yes", can a peers have different roles(miner or not miner) in each branch?
Yes. It's possible. The technology you mention ethereum and bitcoin are open-source project. You are free to change the rules and create branches, roles and whatever you like.
Source code of Bitcoin on GitHub
Source code of a popular implementation of Ethereum on GitHub
Depending on your implementation requirements it might be worth looking into Hyperledger Fabric. Fabric allows for peers with different roles as well as multiple concurrent ledgers across different peers. See https://hyperledger-fabric.readthedocs.io/en/release-1.3/peers/peers.html for more details

What's the difference between Hyperledger Fabric and Sawtooth? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
Both Hyperledger Fabric and Hyperledger Sawtooth are platforms for building distributed ledger applications, supporting pluggable consensus mechanisms and smart contracts (chaincodes).
What are the main differences between then? When to choose one over the other to implement a blockchain solution?
Here are the important differences to consider when choosing between Hyperledger Fabric and Hyperledger Sawtooth:
Permissioned/Permissionless
Hyperledger Sawtooth supports both permissioned and permissionless blockchain networks. Sawtooth has a flexible approach using roles and permissions.
Hyperledger Fabric supports only permissioned blockchain networks. Fabric has a prescriptive/well-defined approach through pluggable membership service providers (MSPs) that enables a tighter governance framework.
Consensus algorithms
Sawtooth uses Proof of Elapsed Time (PoET) based on Intel's Software Guard Extensions (SGX) to elect leaders to cut blocks based on random wait times, a more energy efficient approach than the traditional Proof of Work, which enables scaling to very large networks.
Fabric supports pluggable consensus algorithms to order transactions into blocks, with Kafka support available since version v1.0, and Raft and BFT implementations in development.
Smart contract language
Hyperledger Sawtooth supports Go, JavaScript, Java, Python, Rust, and Ethereum Solidity based contracts.
Hyperledger Fabric supports Go, JavaScript, Java, and Ethereum Solidity based contracts.
Privacy
In Hyperledger Sawtooth, peers have access to all transaction data.
In Hyperledger Fabric, there are multiple levels of privacy. You can define ‘channels' for complete data isolation between a set of participants, where each channel is essentially its own private blockchain. Or you can use 'private data collections’ when participants need to transact on the same blockchain, but keep data private to a subset of transactors (and potentially regulators/auditors). Private data is shared peer-to-peer, with hashes stored on the blockchain as evidence so that all peers can validate transactions. Additionally, you can utilize Identity Mixer to preserve anonymity of transaction submitters.
Transaction flow
Hyperledger Sawtooth supports the traditional blockchain flow of Order-Execute-Commit.
Hyperledger Fabric supports a unique endorsement model where transactions are initially executed on a set of peers and follows a Execute-Order-Commit model. The set of required endorsers can be defined at the contract level or at the data level. This approach improves scalability, prevents nondeterminism in contract code, and enables transactions to be executed in private between a set of transactors as mentioned above.
Miscellaneous
Hyperledger Sawtooth supports transaction batches as a unit of work i.e. either all the transactions in a batch are committed or none of them is committed.
Hyperledger Sawtooth includes a (generic) REST API server
Hyperledger Fabric supports queries from smart contract chaincode, either using key range queries or JSON queries (when using CouchDB as a state database)
Hyperledger Sawtooth supports both permissioned and permissionless blockchain implementation whereas Hyperledger Fabric support only permissioned blockchain implementation.
To your second question:
When to choose one over the other to implement a blockchain solution?
The defining difference for business, in my opinion, is that Hyperledger Fabric allows you to keep a subset of data private to a subset of participants.
I believe every real life business network will eventually require this.
In my view, Hyperledger Sawtooth is more related asset management and tracking, basically related to provenance and authenticity of an asset.
As far as Hyperledger Fabric is considered, it is pure DLT with smart contract capabilities for businesses.

What is blockchain and Ethereum? Where is it used?

I just got chance to work on Ethereum, block-chain based platform. But I don't have a clear idea in which scenarios this is used, any real life use of this.Could anybody help me understand blockchain based platform and its real life uses?
Welcome to blockchain world.Don't get demotivated, Blockchain area is relatively new & hard to find good tutorials.I also started learning blockchain related technologies a month ago & I would like to share some ideas about Blockchain & Ethereum.Since your question is not directly related to Nodejs & Javascript,I would like to suggest you modify the question first.
We all start as noobs, but we can choose to end as noobs or as professionals.
Original cartoon can be found at http://ericsammons.com/what-is-the-blockchain/
Blockchain, a secure distributed ledger (data structure or database) that maintains a continuously growing list of ordered records, called “blocks.”Please watch this youtube video - Blockchain 101 - A Visual Demo to understand the basics of Blockchain.
That is a very basic visual introduction to the concepts behind a blockchain. He introduces the idea of an immutable ledger using an interactive web demo. If you are interested in playing with this on your own, it is available online at:https://github.com/anders94/blockchain-demo
Blockchain was originally developed as the technology behind cryptocurrencies like Bitcoin. A vast, globally distributed ledger running on millions of devices, it is capable of recording anything of value. Money, equities, bonds, titles, deeds, contracts, and virtually all other kinds of assets can be moved and stored securely, privately, and from peer to peer, because trust is established not by powerful intermediaries like banks and governments, but by network consensus, cryptography, collaboration, and clever code.You can learn more about Blockchain use cases from this TED talk.
Ethereum, a type of blockchain that can be used to develop decentralized applications & several banks have already adapted Ethereum to develop and test blockchain trading applications. The Ethereum blockchain was developed by a Canadian named Vitalik Buterin and this blockchain has some extraordinary capabilities. One of them is that you can build smart contracts. It's kind of what it sounds like. It's a contract that self-executes, and the contract handles the enforcement, the management, performance and payment — the contract kind of has a bank account, too, in a sense — of agreements between people.Also, JPMorgan Chase & Co, Microsoft, Intel, and more than two dozen other companies have teamed up to develop standards and technology to make it easier for enterprises to Ethereum.
Since you are using NodeJs, use Truffle to connect your Ethereum blockchain network.Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. With Truffle, you get:
Built-in smart contract compilation, linking, deployment and binary management.
Automated contract testing with Mocha and Chai.
Configurable build pipeline with support for custom build processes.
Scriptable deployment & migrations framework.
Network management for deploying to many public & private networks.
Interactive console for direct contract communication.
Instant rebuilding of assets during development.
External script runner that executes scripts within a Truffle environment.
You can find a great sample project here:https://github.com/tomw1808/truffle_eth_class1
You can find really good courses on Building A Decentralised Blockchain Application in Udemy.Please message me,if you need any further information.
One example of using blockchain is Bitcoin.
The bitcoin network is a peer-to-peer payment network that operates on a cryptographic protocol. Users send and receive bitcoins, the units of currency, by broadcasting digitally signed messages to the network using bitcoin wallet software. Transactions are recorded into a distributed, replicated public database known as the blockchain, with consensus achieved by a proof-of-work system called "mining". The protocol was designed in 2008 and released in 2009 as open source software by "Satoshi Nakamoto", the name or pseudonym of the original developer/developer group. [emphasis added]
See:
https://en.wikipedia.org/wiki/Blockchain
https://en.wikipedia.org/wiki/Bitcoin_network
Node modules that can help you with developing your app:
https://www.npmjs.com/package/blockchain
https://www.npmjs.com/package/bcoin

Difference between various blockchain protocols [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
As the developers are constantly using different network protocols of blockchain such as Hyperledger, multichain, Ethereum, Corda, and others. Community will appreciate if the developers & blockchain enthusiasts can pour in some key differences between various types of blockchains as mentioned above.
Thanks !
This is a good question, though not one easily addressed with a simple answer.
As #Mat0 commented above, one difference is the approaches that the various platforms are using to achieve consensus. Some use proof of work (PoW), others use variants of byzantine fault tolerant strategies (PBFT, SBFT, etc). Some use PAXOS derivative strategies. Hyperledger Sawtooth Lake has developed an innovative strategy named Proof of Elapsed Time (PoET). Some, such as Hyperledger Fabric allow pluggable consensus implementations to allow for experimentation and additional diversity.
Other platforms differ in the means by which they implement confidentiality of data and transaction execution.
Some such as Hyperledger Fabric, Hyperledger Sawtooth Lake, Corda, Ethereum and many others permit more comprehensive smart contract capabilities, while other platforms are very restrictive of the types of contract operations - such as the various platforms that only support the limited set of operations in the unspent transaction output (UTXO) protocol.
Some are more targeted to a specific use case, while others are more intended to be more general purpose. All are seeking to find ways to improve the various aspects of performance and scale.
Finally, some are intended to support permission-less public blockchain networks, while others are more oriented towards support for private, permissioned networks (consortia networks) where participation and membership is tightly controlled.
Hyperledger is focused on developing blockchain technologies suitable for use in the enterprise. The organization has been established to bring together related and even competing technologies in the expectation that the proximity and common governance will lead to interoperability and gradual consolidation.
Choosing a platform will demand significant research and a clear understanding of your use case and requirements and a good deal of experimentation. At the end of the day, there will be no easy answers.
To add to Chris's comment, with which I mostly agree, I'd expand on his comment about the "UTXO" model.
In our view (I'm the CTO of R3), one key design decision which distinguishes blockchain platforms is whether they use what I call the "replicated virtual machine" metaphor or whether they are based on the idea of transaction outputs (the "UTXO" model).
Mike Hearn wrote about this in the context of Corda's design: https://www.corda.net/2016/12/09/rationale-tradeoffs-adopting-utxo-style-model/
The key point I wanted to make, however, was that the UTXO model - at least as implemented in Corda - enables full-function code to be run... the set of supported operations is not in any way limited.
The differences become manifest mostly in the context of the non-functional characteristics of the platforms.
As Chris says, platform selection should be driven by use-case: I believe that the UTXO model we've used in Corda makes it particularly well-suited for a wide variety of financial services scenarios (that's why we made the choice to adopt that architecture!). But there is no one size that fits all.
Bitcoin technology stack — especially when enhanced with sidechains and payment channels (such as from Blockstream and Lightning Network).
Ethereum platform — currently the second most proven platform, behind the Bitcoin stack.
Hyperledger Fabric — a result of significant strategic investment from IBM and many others that is reaching into an installed base of large corporate customers.
R3 Corda — vertical-oriented blockchain technology (the company prefers "blockchain inspired" because it emphasizes significant differences between this private/permissioned ledger offering compared to the public/permissionless ledgers such as Bitcoin blockchain).
Digital Asset — another vertically focused blockchain technology that has high visibility in the financial services sector
While it is very difficult to predict the eventual winner given that it may not even be on the market, but it is possible to state what that winner will look like. Here are the 9 characteristics of a winning blockchain platform
Open source — this is necessary to cultivate a rich and diverse ecosystem and accelerate adoption through network effect.
Modular architecture with layers of programmability and customizability — as above, this cultivates an ecosystem and enables market adoption.
Global scale — scalability, performance and efficiency are essential if blockchain is to become the foundation for the "Internet of Money."
Multiple implementations of the core protocol — multiple, independently developed implementations ensure that the protocol is understood, well-defined and adds resistance to possible attacks (as occurred with the Ethereum platform in September 2016). This requires there to be an accurate and precise specification of the core protocol, as opposed to relying on one codebase that is not documented.
Hardened through public blockchain deployment — this is the only way to ensure that the system is secure and "bulletproof," by exposing it to the worst threats on the open internet, as has occurred with both the Bitcoin stack and the Ethereum platform.
Configurable for private blockchain deployment and support for confidentiality of transactions — because most businesses do not want their transactions to be visible by their competitors or by the rest of the world.
Functioning governance — there needs to be a cohesive decision-making structure that can respond in an agile and coherent manner to threats to the system.
Advanced smart contract capability — because the current generation of smart-contract technology relies on traditional languages (similar to Java or C#), which are inadequate for the rigorous requirements of large-value contracts (and are best supported by metadata-driven or mathematically verifiable programming systems).
Adequate tooling for developing, debugging, deploying, monitoring and managing smart-contract-based systems (the importance of which was underscored by the recent denial-of-service attacks on the Ethereum network).
Since 2008, when the term bitcoin was coined by Satoshi Nakamoto as a novel electronic and completely peer-to-peer cash system free of trusted third party, the interest in the bitcoin and blockchain technology has increased. Recognizing it as a revolutionizing technology across the industries, especially in banking and finance, in terms of transactions and their privacy and security, researchers are not leaving any stone unturned to come up with exotic protocols with each passing day and each is the newer, advancer and better protocol than the previous. In continuation to the blockchain series on TheBlockchainAcademy.com, I have included 6 major blockchain protocols, so as to embrace the technology and increase awareness among investors and end users of blockchain.
Hyperledger
Hyperledger is the open source blockchain platform, began in 2015 by the Linux Foundation, in an effort to support the blockchain-based distributed ledgers. The protocol focuses ledgers developed to support international business transactions, catering leading financial, technological and supply chain businesses, with the objective of improving a lot of performance and reliability aspects. The project emphasizes on making collaborative efforts for making open standards and protocols, by offering a modular framework that backs various components for diverse uses, including a range of blockchains having their own storage and consensus models, and the services for access control, contracts and identity.
Bitcoin
The starting of the bitcoin dates back to November 2008, when a thesis had been posted by Nakamoto on a US mailing list where the cryptographers share or exchange information. The thesis titled “Bitcoin: A peer-to-peer electronic cash system”, presented the following characteristics of this protocol:
Enables transaction directly with no need of any trusted third party
Enables the non-reversible transactions
Decreases credit cost in minor casual transactions
Decreases transaction fees
Prevents double-spending
Bitcoins are virtual currency, also called cryptocurrency. These are distributed while exploring the value in the data managed by software. The start of 2016 witnessed the issuance of around 15.26 million BTC, equivalent to around 7 billion US Dollars. Major technologies that make Bitcoin include hash, digital signature, public-key cryptography, P2P and Proof of Work. This blend has developed a mechanism that prevents duplication of payments and data falsification, additioinally a mechanism that prevents malicious users, which are critical for the operating system like the one for the electronic money, having no central authority.
Ethereum
Ethereum is a public, open-source and block chain oriented distributed computing protocol that features smart contracts (scripting) functionality. The protocol has provided a decentralized virtual machine called the Ethereum Virtual Machine (EVM), which carried out Turning-complete scripts by using a global network of public nodes and the token called ether, also referred to as gas. Gas is used for preventing the spam on networks and allocating the resources in proportion to the incentive provided by the request. Bloomberg explains Ethereum as shared software that is used by all; however, is tamperproof. Ethereum is also used as a protocol for decentralized applications, smart contracts and decentralized autonomous organizations, with a number of functioning applications developed on it by March 2016, New York Times says.
Ripple Consensus Network
The Ripple Transaction Protocol (RTXP), issued in 2012, has been developed upon an open-source distributed consensus ledger, Internet protocol, and native currency termed as XRP (ripples). Ripple enables instant, safe and almost free global financial transactions of any scale without any chargeback. The protocol is embraced being able to support tokens presenting cryptocurrency, fiat currency, commodity and any other value unit like mobile minutes, frequent flier miles etc. By the end of 2017, Ripple is expected to be the third-biggest cryptocurrency in terms of market capitalization, after the bitcoin and ethereum.
R3’s Corda
Corda by the Company R3 is the distributed ledger protocol that has been developed from the ground up for recording, supervising and synchronizing the financial agreements among regulated financial institutions. It is, by great deal, stimulated by, and captures the advantages of blockchain systems, with no design choices that turn blockchains unsuitable for a lot of banking scenarios. Corda’s design came up as a result of heavy analysis and prototyping with team members. It is now an open sourced protocol since the code matured further.
Symbiont Distributed ledger
This protocol was announced in October 2016 as a software development kit for the Assembly, which is the permitted distributed ledger part of Symbiont’s smart contracts system. Assembly is considered as the first distributed ledger suitable for institutional finance. It is a greatly secure, high performing Byzantine fault-tolerant distributed ledger, which can process a sustained 80,000 transactions every second in a local multi-node network. As stated by Co-founder of Symbiont, decentralized systems should no longer be slow and with Assembly, it has been fulfilled.
You can learn more about Blockchain and implementing your own Blockchain # IBM Blockchain 101: A quick-start developer guide
This is the subject of a number of recent academic papers, as the field expands rapidly.
These for example are based on Consensus in the Age of Blockchains:
Committee Formation - How the members of the committee are chosen, for example via proof-of-work, proof-of- stake,
trusted hardware etc
Consistency - The likelihood that the system will reach consensus on a proposed value; it can be either strong or weak
Incentive Model
Safety ( Transaction, Censorship Resistance, DoS Resistance)
Adversary models considered
Performance (Throughput, Scalability, Latency)
Exp. Setup
Code availability
See also Blockchain Consensus Protocols in the Wild.
The main thing that differentiate each different blockchain is the consensus algorithm. Some algorithms are meant for public chain (eg: bitcoin blockchain) whereas some algorithms are meant for permissioned network (eg: Ripple, Hashgraph).
I will be bold and say that Confidence Coin is perhaps the fastest blockchain technology in terms of broadcasting events.
Better encoding. Every time a new address is used in a transaction it is saved to the blockchain database, so next time it is spotted it replaced with a numeric value. Bitcoin can encode about 2K transactions in one megabyte of a block while Coco can have up to 100K transactions in same space.
The principal problem in blockchain P2P networks is their size, with each new node added to the system it takes more time to broadcast new blocks to everyone. There are 11,000 nodes in Bitcoin as of 2018. The source of Coco speed is in its Royal Network. It's called royal as in order to join the network you must mine a block. It allows only the best Pools to be part of the Royal Network. It's funny as in Bitcoin over 95% of the blocks mined by less than 20 Pools, but instead of direct communication between them, their messages traverse the entire 11,000 nodes.
Disclaimer: I am the developer of Coco.
There will be several difference between those blockchain projects:
Application: The specific application or domain they are focusing on. Some blockchain projects are public basic blockchains, like Ethereum, you can develop your own applications on it with the support of smart contract. While others may focus on certain domain, such as entertainment, storage, finance etc.
Consensus Protocol: as mentioned by others as well, different blockchain projects may use different consensus protocols, such as: PoW, PoS, DPoS, BFT, DBFT etc. So many consensus protocols were proposed. Although, honestly speaking, for now, only PoW works well for a long time.
TPS: it's actually related with the 2nd point, consensus protocol can certainly affect the performance/TPS, however, block design, and technologies like sharding, lightning network can significantly affect the TPS as well. Specific technologies used to improve scalability can also differentiate those projects.
Smart Contract: programming languages used to develop smart contract, whether the contract is secure, whether the development environment is user friendly, those are also the factors that should be considered to differentiate the blockchain projects.
This is a very broad question. In short each protocol was built with rules to potentially address a particular objective or business use case challenge.
So the answer to your question can be narrowed by differentiating the purpose for each protocol is built.
Blockchain protocol solves decentralized ledger
Ethereum protocol solves decentralized ledger ,enable decentralized applications and smart contracts
Ripple protocol solves not only decentralized ledger, smart contracts but also addresses speed and cheaper transactions
Hyperledger Fabric solves providing restricted access to decentralized ledger.
R3's corda solves decentralized ledger for financial sector with no need for mining
Therefore each protocol has logic and rules built trying to solve the primary objective it chose. However the underlying concept is still the blockchain for each of the protocols.
Hope this answers your question at high level.