In the car lease demo, the national regulator owns and operates a chaincode that corresponds to a "car" object. It defines relevant attributes and its lifecycle. Everyone is always on the same page and life is beautiful.
But, to me, it appears inevitable that we will soon see an explosion of "Car" chaincodes by:
other countries with their regulators
insurers that come up with their own blockchain solution
individual car manufacturers that want to capture more attributes of their cars on a blockchain
etc
Unless there is a way to link these different "Car" chaincodes, a Car manufacturer will quickly find itself having to integrate into dozens of different blockchain networks which might not always be in sync with each other.
With my Object-Oriented background it seems obvious that it would be very valuable if the concepts of subclasses or interfaces could apply here. The insurer could define a "Car" interface and every manufacturer that implements that interface in their own "Car" chaincode could automatically be plugged into the insurers solution.
But I don't think such concepts exist in Hyperledger Fabric.
So, hence my question: what are the best practices to ensure chaincodes managed by different organizations can talk to each other in such a situation?
It is quite an old question. But the idea would be that the insurer would create a chaincode for a "Car" with certain methods which can then be invoked by the manufacturers without the manufacturer having to create any chaincode themselves.
Related
Consider supply chain usecase where manufacturer, wholesalers, distributors and retailers are involved.
Manufacturer wants to track batch of products manufactured and shipped all the way till retailer.
Wholesaler wants to track orders from either side: orders to Manufacturer and orders from distributors.
Similarly for distributors and retailers.
So we can see here, assets to be tracked are different depending on the role played is whether Manufacturer or wholesaler or distributor.But in a typical Hyperledger fabric blockchain network, we want all the orgs to see same data.
How do we approach such usecases ? Are there any references ?
So I am new to blockchain. In fact, I am actually doing a one-year diploma for it. I found out it's incredibly hard to find accurate information online regarding blockchain. It's either a chunky mess or completely irrelevant. Right now my team's project is to work on a real-life situation where blockchain could be implemented and we chose blockchain for student credentials. We went with a Hybrid blockchain where certain personal information will be private and other stuff like credentials will be public so that educational institutes can validate them. We are supposed to be working with Hyperledger Fabric for the assignment, but we are stuck deciding whether we should be using ERC-721 Tokens or smart contracts to assign every student a unique digital asset. I am posting this here to see if I can get some help.
p.s dont mind if my concepts are completely off because its only been like a week or 2 since my classes started.
In Russia, finance academy "Active" already uses Emercoin blockchain for this purpose for years. You can use Google Translate and read the interview article.
I think, if you contact them, they will share with you their solutions and source code.
You can implement your use cases with Hyperledger Indy blockchain framework. Hyperledger Indy will suit your use cases as this blockchain framework is used to manage identities.
You can visit Indy Walkthrough demo where you can find tutorial with code based on your use cases.
You can also check the following demo:
https://www.youtube.com/watch?v=9WZxlrGMA3s
I am trying to create a data marketplace where a party can transact with other parties, agree on the set of terms and sell data from one to another.
Here data security is of utmost concern. A party makes data available on the hyperledger, this data should be secured and no one should get hold of it. If an interested party wants this data, they have to transact with data owner party and agree on the set of terms. Only then the interested party will get the data. And now only two parties should have hold of this data. Everyone else should not get hold of it.
I would like to know what components of hyperledger can be used here. I have an idea of private data concept in hyperledger, but not sure how and where it would fit.
Would love to hear some comments from experts regarding this.
Edit:
I am thinking of using private data for data sharing securely whenever two parties agree for the transaction. And for that I am thinking of upgrading chaincode every time two parties agree on set of terms for data sharing. Only thing concerns me is that every endorsing peer needs to install and upgrade the new version of chaincode simultaneously and that could be undesirable, because data exchanges on this platform could be very frequent.
You can refer to this, and get some idea
When to use a collection within a channel vs. a separate channel
I've been given task to research blockchain implementation and its risk for my company , but I can't find this anywhere.
The answer to your question (as in a lot of questions) is: "depends on the context".
Hyperledger Fabric is very modularized, meaning a lot of things can be customized to fit your specific needs, one of the things that can be chosen is the consensus algorithm for your specific Fabric network, to learn more about this read the official documentation: https://hyperledger-fabric.readthedocs.io/en/release-1.3/blockchain.html
Currently the only consensus algorithm offered by Fabric to use on production is Kafka. Perhaps is more important in terms of security to understand that Kafka is not a Bizantine Fault Tolerance algorithm but there is work in progress to provide a BFT algorithm for Fabric in the future.
The majority attack (usually known as >50% or 51% attack) refer to the idea of one participant (individual or group) owning more than half the power of decision of what will be included in the blockchain next. This is very important to prevent on completely public decentralized networks where you don't have control at all over the participants of the network, and is more relevant to proof-of-work or proof-of-stake consensus algorithms.
Hyperledger Fabric is aimed more for private permissioned networks which means more control over the participants of the network (certain level of centralization). If your company implements an internal network were all the nodes will be part of the same organization then probably a DLT (distributed ledger technology) or blockchain technology is not the best fit. If your organization will be part of a consortium or group where they are part of the network but interact with other organizations or participants the scenario makes much more sense for a blockchain protocol depending on the use case.
Let's say your organization is part of a consortium with other 3, that makes a 4 organizations network, you can configure your Fabric network in a way that any transactions needs the approval of all the participants which makes a 51% attack impossible by design. As it is a private network the consortium controls who can become part of the network and that give more control over possible malicious participants.
Another important point is that a 51% attack is something relevant in decentralized networks with different participants that don't trust each other. In traditional networks where administrators have permissions to do things (read/write/admin) databases a 51% attack is by design is unlikely to be prevented if the participant with admin rights behave maliciously it could do it because it have rights to do it.
Finally to answer your question more directly, yes, Hyperledger Fabric could be prone to a 51% attack but it is very unlikely if the network is correctly setup and the use case makes sense for it to be used.
It ultimately depends on the consensus algorithm used. Recall that Hyperledger Fabric supports pluggable consensus.
So I will provide a more generic answer (rather than focusing on the current version of Hyperledger Fabric) since the supported consensus algorithms change and evolve over time.
If a Crash Fault Tolerant algorithm is used (like the current Kafka), then a 51% honest majority is sufficient (more precisely, n/2 + 1 nodes).
If a Byzantine Fault Tolerant algorithm is used (as PBFT in an the older version, or the future-planned BFT-smart), then a 66% honest majority is required (more precisely, 2n/3 + 1 nodes).
All of the above are the lower bounds. Some consensus algorithms require "stricter" honest majorities.
kinda new to block chain technologies and going to work on a project of a smart contract based on block-chain .
i was wondering what are the platforms available ?
what is the difference between them ? (points of comparison)
Help plz :) !!
I understand that the term “Contract” it has not communicated clearly. Assuming you have the fair understanding on “what is Blockchain”. Let me give a perspective – it is contact between parties stored on the Blockchain or any computation that takes place on a Blockchain. Referring to some of technical forums, the answer to contract platforms depends on the what type of “Contract”? Mainly any one of the two types of contract (generally refers to the capabilities you looking for).
Smart contract code: This is to identify a specific technology – code that is stored, verified, and executed on a Blockchain. Example, Ethereum or Eris platform, whose primary purpose is to be a platform for smart contract code. The platform provides code that could articulate a conditional financial transaction, While the code could articulate a conditional financial transaction (“send 1 Ether from Alice to Bob on Jan 1, 2017”), it could also be a governance application that controls account permissions (“if Alice has voted yes, remove Bob’s voting rights over Application X and notify the following accounts…”).
You can make smart contract code using Ethereum or Eris Blockchain-based application. Please refer to their respective website. You will find lots of materials. There are may others as well.
And the other type of smart contract,
Smart legal contracts (the real world): This is to a specific application of that technology – as a complement, or substitute, for legal contracts. This type of contract does not limit only to be executed using Blockchain platform. It is still a debatable… as many commercial, clauses may not be always suitably represented using code. But in future the integration of 1 & 2 would most likely replace some of traditional legal contract languages.
Bitcoin Blockchain itself can be used for developing Smart Contracts, though it is a little bit challenging for beginners.
Bitcoin Contracts
Ethereum is one of the most widely used Blockchain Platform for writing smart contracts.
Solidity Smart Contracts
You can also use Hyperledger for writing smart contracts / chain codes.
Smart Contracts on IBM Blockchain
NEO is emerging as another popular Blockchain platform for authoring smart contracts.
Developing Smart Contracts in NEO