Hyperledger-fabric blockchain - blockchain

I`m really new at hyperledger-fabric and I want to build my own application based on this technology and framework also, but have some spaces in my knowledge(
What information stored in block chain of hyperledger fabric?

Since you are new to blockchain and the way it works, I recommend to understand the basic concept of that technology first. The Hyperledger Fabric Documentation provides a first overview of how it works:
http://hyperledger-fabric.readthedocs.io/en/release/blockchain.html
When you got the basic understanding of blockchains, you can setup your own development environment:
http://hyperledger-fabric.readthedocs.io/en/release/getting_started.html
With that, you can build your first network...
http://hyperledger-fabric.readthedocs.io/en/release/build_network.html
... and your first application
http://hyperledger-fabric.readthedocs.io/en/release/write_first_app.html

Blockchain is a technology that works like a ledger. In fact, it works like a distributed ledger, where every participant in the Blockchain holds a copy.'
What is ledger in Hyperledger fabric?
It is like a book that holds the record of transactions. It consists of two parts:- world state and transactions logs.
In world state, it holds the current state/value of set of ledger states.
In transaction logs, it store the transactions that occurred to reach the current state.
These transactions in transaction logs are collected inside a block that are appended to the Blockchain.

Related

Blockchain Application Architecture

I need to develop an enterprise grade permissioned based blockchain application using Hyperledger fabric. To start with, I would like to understand how I should determine number of nodes required. Basically every organization will have one peer node that will process all the transactions. Apart from this reason, do we need nodes for anything else and how many of them? From architecture perspective, what aspects I need to consider?
Each node can have some of this functions (router is a must):
router
full blockchain
wallet
miner
Since you're speaking about "one node per organization", you probably mean one "full" node per organization, meaning each organization will have a miner node, containing full blockchain locally.
The problem here is this: how can you guarantee each organization in your architecture will have the same mining power?..

HyperLedger Composer data storage of assets and participants

I am pretty new to Hyper Ledger Composer. I understand the way it works.But my interest is to build a blockchain application for digital identity management.I have seen that Hyper Ledger is coming up with Indy project, but I wanna start things with the composer.
Where does per ledger composer stores assets and participants?
what if my assets and participants are outnumbered?
Differences between hyper ledger fabric and composer.
How to design a blockchain for storing students records in an institution which contains details such as his CGPA?
See https://github.com/mahoney1/composer-knowledge-wiki/blob/latest/knowledge.md#information_source--blockchain-recap
Not sure what the context of this question is - outnumbered by what ? In the context of your topic heading ; self-sovereign ID is a digital identification that can use 'consolidated bits of information' about the student and could be stored as a means of establishing the true identity captured in your model - in Composer, an identity that is transacting (creating, updating, querying) is known because it is registered on the business network, so as to access it in the first place (Certificate Authorities from 'whichever organisation' that's on that permissioned blockchain network, issues digital certificates for the transacting identities, in their own organisation/institution - they then connect to the network using that identity, obviously organisations will know who it is issued to).
See Difference between hyperledger composer and hyperledger fabric? and What are the functional differences between Fabric Javascript SDK and Hyperledger Composer? - also you see an introduction here -> https://hyperledger.github.io/composer/next/introduction/introduction.html
CGPA meaning : the average of grade points obtained in all the subjects ? Normally you wouldn't store sensitive information on a blockchain that's shared with other institutions, ie something like a StudentID / Surname might suffice? The records are the 'assets' and obviously the student is the participant in your model business network (simplistic). You can see more on sample business networks, with sample models and sample transaction code and ACLs here -> https://github.com/hyperledger/composer-sample-networks/tree/master/packages

Exploring and analyzing Hyperledger Fabric Blockchain

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/

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

BigChainDB - What exactly is that?

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.