I heard that Erasure coding is used for fault-tolerance of data in blockchain such as Hyperledger fabric.
However, I searched, but it is not easy to find related information.
I guess..
Is it because the file system where data is stored is a distributed file system such as HDFS, rather than using easure coding directly from Hyperledger fabric?
If not, does the Hyperledger fabric use its own easure coding to store transaction data, ledger, etc.? Then, where can I find the relevant information?
Regards.
Related
I used Hyperledger Fabric to build an application. For, chaincode and api I used JavaScript.
Now, I want to find out how much time it takes to store the data in the ledger. How can I do this?
I would like to realise some secure multi party algorithms with a blockchain. Simple stuff like: Bob is sending a value to alice, alice is adding 5 and at the end everyone will get the result...
I found alot of Blockchain frameworks but I think, that Hyperledger will be the best for my needs.
Could I use Hyperledger Composer or would Fabric be the besser choice? Composer is building up on Fabric? But Composer seems easyer to use? Can I visualise my blockchain anyhow?
see this thread -> Chaincode using GO or Composer and this one -> Does Composer needs an already built Fabric network? for more information.
Hyperledger Fabric (the blockchain, which manages the endorsement/consensus of smart contracts) is designed to cater for your scenario and what gets written to the blockchain ledger, who needs to validate it etc by policy. This intro -> https://hyperledger.github.io/composer/latest/introduction/introduction.html should help you and this tutorial will compare Fabric and Composer as the means to develop your blockchain applications / smart contracts, especially the integration aspects that are needed by organisations -> https://blog.selman.org/2017/07/08/getting-started-with-blockchain-development/
I am studying the Hyperledger Fabric Blockchain and I would like to understand if and how it is possible to explore and analyze the data inside a Hyperledger Fabric Blockchain network.
Is there a non-interactive way to analyze all the transactions of the blockchain locally? or even demanding the analysis to someone else? It would be great, as Ethereum allows us to do, to explore the ledger and its transactions to then focus on some specific of them.
Thanks in advance guys!
depends on your use case. In Hyperledger Composer, you have a Historian registry (all the transactions recorded for a business network). You can have multiple business networks to query (each BN being a view into the ledger because you've modeled the business networks and smart contract logic between those parties etc). You can use queries, REST APIs and filters to do your analysis. You could also have a 'regulator' type participant, who sees 'everything' that went on in the business network on the ledger. In Hyperledger Fabric, you can inquire of the Fabric blockchain direct, using a combination of routes: you have the Node js REST APIs https://github.com/hyperledger/fabric-sdk-rest (these are a work in progress as it states) or you can use the Fabric SDK for example -> https://fabric-sdk-node.github.io/
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.
I understand that the BigChainDB is a distributed DB at the basic level.
It claims that is solves the problem of Scalability in the BlockChain world. What i don't understand is that how it fits into the overall block chain architecture.
In the typical Block Chain world, each node has the full copy of the
data and validates any new transactions? How does this work in the
BigChain DB when the data is distributed? Each node validates only the
blocks that it holds? Even if thats the case, it needs the entire
chain? Not clear on the processing scalability here.
Can i build a block chain network just with the BigChainDB or do i
need something like Ethereum or Hyperledger to build the block chain
network itself?
If i can build the blockchain network with BigChainDB, then what is
the equivalent of smart contract in BigChainDB?
BigchainDB internally uses RethinkDB as a datastore. Technically, the blockchain is stored as JSON strings inside RethinkDB. And BigchainDB is a kind of wrapper on top of this storage which provides the needed cryptography, techniques for building the blocks, parsing the blocks and provides utility methods to access the database. RethinkDB provides clustered storage with possible shard based architecture. This makes BigchainDB scalable when RethinkDB is configured accordingly.
Yes. It is possible to build a blockchain network just with BigchainDB.
BigchainDB library provides APIs to be called from our code. So we can build any application(preferably in Python) and integrate BigchainDB into it. This means, the business logic stays inside our application code. This is totally different from Smart contracts used in Ethereum.
You can have a look at my github code for more insights. It is my college project and not much documentation is available :-D It is a voucher transfer application where company like Sodexo issue vouchers and users can redeem it in private companies like Starbucks.