A Blockchain is a series of immutable records of data also called as blocks which are linked using cryptographic principles. Each block of data is secured because data is converted into hash using SHA 256 algorithm. The initial block of chain is called the genesis block.
Permissioned Vs. Permissionless Blockchain
- In Permission-less blockchain participants must have resources like software and more computing power to validate transactions whereas in permissioned blockchain the participants need authorization to validate transaction.
- In case of Permission-less blockchain anyone can join the network but in permissioned blockchain member should have unique certificate to join the network.
- An example for permissioned blockchain is HYPERLEDGER FABRIC and for permission-less blockchain is BITCOIN.
Hyperledger is an open source project developed by Linux Foundation. It is a private and permission blockchain, this Framework developed for the applications of different organization needs. Hyper ledger is not a crypto currency like ethereum.
The Hyperledger fabric is one of the blockchain framework and hosted by Linux Foundation.
Fabric is in the infrastructure of private and permissioned blockchain.
The main feature of Fabric is that its distributed ledger and smart contract to allows for private channels.
Fabric uses smart contracts, and participants manage their transactions. In network, if members want to share their data with certain parties, they can create private channel for them.
- Membership Service Provider
- Ordering Service
Organizations are the containers for the peers and unique certificate authorities (CA).
Each organization has a list of peers and CA used for verifying membership in the network.
Organizations are also called members of network. Multiple organizations can be created in the network.
Single Organization Vs. Multi Organization
- In network, single organization does not have any private connectivity whereas in multi organization, can have private collection for their client data.
- Single organization in network is like public blockchain, in that transactions are not in hidden mode anyone can view the transaction. But in multi organization, the transactions and communication can be hidden from other members.
- The network has an endorsement policy that defines which organizations must endorse transactions before it is committed to blockchain. In network, deployed endorsement policy by default for an organization whereas in multi-organization want ensure endorsement policy for transaction.
- In single organization, all client data will be stored in a single node but in multi-organization, each organization will have their client data in their own node.
- Data sharing is not possible for an organization whereas in multi organization data can be shared on the channels.
- Anchor peer will not be used by single organization but in multi organization anchor peer are used as communicator between different organizations.
Anchor peer is a peer node on a channel that all other peers can discover and communicate with it. Every organization in the channel has an anchor peer. To prevent a single point of failure, an organization can have multiple anchor peers.
Membership Service Provider (MSP)
MSP is a component which is used to generate valid certificates, keys and signature. These files are generated using crypotgen tool.MSP generates certificate for each peer, ordered to enable on channels.
Peer is a network entity which uses to maintain state of the ledger and executes chain code (smart contract) to perform read/write operations to the ledger. Each peer can hold copies of ledgers and smart contracts.
Ordering service is a shared communication channel to organization (peers), which contains transactions and also it contains the unique identity material tied to each Organization.
Ledger is list of immutable record of all transactions .In Fabric, a ledger consists of two parts,
World State –The database holds the values of current set of ledger states. Ledger states are expressed as key-value pairs and that can be modify by create, update and delete.
Blockchain – This feature records all the modifications that have resulted in the world state. All transactions are appended to the blockchain. It is immutable.
Architecture Of Multi Organization
Setting Up New Organization To The Network
Cryptogen tool is used to generate certificates for validation and authentication of organization. Configtxgen tool is used to generate channel configuration.
Channel configurations contain all of the information of channel and store it as block to the ledger and also called as genesis block. Orderers and peers use the current channel configuration for all channel operations like creating a new block and validating transactions.
To add new Organization’s signature to channel, it needs majority of the existing organization’s admin to sign it. Without the signatures, the ordering service will reject the transaction of new Organization.
Add new organization to channel by executing ‘peer channel signconfigtx’ command to update configuration.
Get the existing channel block and join the peer of new organization to the channel.
Chaincode is set of codes that run on blockchain that implements the business logic of how it interacts with the ledger.
Install and instantiate the chain code on peer. Instantiation adds the chaincode to the channel and creates new docker container to execute chaicode.
Invoke chaincode to changes values in the ledger state for the peer. New Organization is added to the blockchain network.