The first major applier of blockchain technology was Bitcoin, a world-renowned form of electronic cash created in 2009 by Satoshi Nakamoto.
Blockchain was first introduced to the market as the technology underpinning Bitcoin exchanges, but its practical uses in the business world extend far beyond cryptocurrency transactions. Blockchain establishes a peer-to-peer network where each participant in the network has access to a shared ledger. Transactions and history records cannot be removed or altered. The smart contract and consensus algorithms enable multiple participants to transact with one another and confirm the transactions and ledger records. Currently, Alibaba Cloud supports three types of blockchains: public blockchains, private blockchains, and consortium blockchains. Blockchain frameworks include Ethereum, EOS, Hyperledger Fabric, and Corda.
As one of the highlights of blockchain technology, the smart contract describes the contract terms, the conditions of a transaction, and the business logic of transactions using cryptography. Smart contracts support self-execution and automatic reconciliation in real time.
The first block in a blockchain.
Organization refers to entities involved in the blockchain business network, such as enterprises, government agencies, and groups. Within the Hyperledger Fabric framework, each organization has one or more blockchain nodes, such as orderer nodes, peer nodes, and CA nodes. Alibaba Cloud blockchain service supports two types of organizations:
- The consortium operator manages and operates the public infrastructure of the consortium. An organization from the consortium includes the following types of node:
- CA: The Certificate Authority (CA) is an entity that issues digital certificates. CA provides users of a blockchain with a number of certificate services, including services related to user enrollment and transactions invoked on the blockchain.
- Orderers: An orderer is a node running the communication service that provides delivery guarantees. The orderer provides ordering hints for block formation and consensus services.
- Business participants: The companies or enterprises in a consortium. Each enterprise can define one or more organizations, including the following types of node:
- CA: The Certificate Authority (CA) is an entity that issues digital certificates. CA provides users of a blockchain with a number of certificate services, including services related to user enrollment and transactions on the blockchain.
- Peer: A peer receives ordered state updates from the ordering service and maintains the state and the ledger. Peers can also facilitate smart contracts and act as an endorser.
A consortium is a collection of organizations involved in a blockchain-based business collaboration or a business transaction network. A consortium may consist of multiple organizations.
Channels are used to isolate the businesses in the consortium. Each channel represents a business and contains the participants of the business (some or all of the organizations within the consortium). There can be multiple channels in one consortium. One organization can join multiple channels. Each channel can be viewed as a sub-chain with its own ledger, and smart contracts can be deployed to the channel.
A chaincode is a piece of code written in one of the supported languages such as Node.js, Go or Java. In the Hyperledger Fabric framwork, chaincodes are the ‘smart contracts’ that run on the peers and create transactions.
An ordering service node that provides services to order and broadcast transactions. The orderer collects transactions from network members, orders the transactions and bundles them into blocks. The orderer delivers the block to all peers to ensure that ledgers are updated with the same transactions in the same order.
Peer node: A node that maintains a ledger under the Hyperledger Fabric framework. Nodes in peer-to-peer networks must come to a consensus on the ledger status. There are two types of peers: endorsing peers and committing peers. You must install the chaincode on each endorsing peer node to forward the endorsement request to that peer. With no need to install chaincodes, the committing peer validates the transaction, accepts blocks of valid transactions from an ordering service, and persists the block information to a modular data store.
The anchor peer serves as the entry point for the peer from another organization on the same channel to communicate with each of the peers in the anchor peer’s organization. The anchor peer in Hyperledger Fabric framework ensures high availability and keeps the entire network in a synchronized state.
There are two types of roles:
- Consortium administrator is responsible for issuing applications for creating a consortium, has administrative right of the consoritum, and can invite other participants to join.
- Consortium participant can independently access a consortium to read/write data.
Since data on blockchain is trustable and immutable, it is used as attestation for text or files, in form of a string or a hash of file contents.
CSR (Certificate Signing Request）is generated with tools like openssl. During the generation there will be two secrets, one is public key, i.e. this CSR, and the other is private key. Users should store private key and its password properly.
Private key is generated with tools like openssl. During the generation there will be two secrets, one is public key, and the other is private key. Users should store private key and its password properly.
Certificate is issued by Certificate Authority (CA) which has a partnership with Alipay. Users need to issue CSR for a certificate.
The blockchain created or managed by a user.
Information about a blockchain node. The total number of nodes for a blockchain is 3f+1, where f is a positive integer.
The type of business data schema of the transaction.
The number of transactions referenced by current transaction.
The time for transaction submission.
Ethereum Virtual Machine, the decentralized computing platform which forms the core of the Ethereum platform.
Gas is a unit to measure how much work is needed for executing a transaction, and depends on the number of steps or the complexity of the steps that a transaction has.
A number which identifies a particular version of the Ethereum network.
Ethereum client implemented in the Golang programming language
Transactions whose payload is only visible to the network participants whose public keys are specified in the privateFor parameter of the Transaction.
A fork of geth, with modifications like:
- Consensus algorithms like Istanbul BFT or RAFT
- P2P layer for permissioned nodes
- Block validation logic for private transactions
- Removal of Gas pricing (but preserving Gas)
Quorum’s Transaction Manager is responsible for Transaction privacy. It stores and allows access to encrypted transaction data, exchanges encrypted payloads with other participant’s Transaction Managers but does not have access to any sensitive private keys. It utilizes the Enclave for cryptographic functionality. The Transaction Manager is restful/stateless and can be load balanced easily.
The Enclave works hand in hand with the Transaction Manager to strengthen privacy by managing the encryption/decryption in an isolated way. It holds private keys and is essentially a “virtual HSM” isolated from other components.