Created Date: 03 Aug, 2019
Last Modified: --:--
Hyperledger Fabric
Glossary
► Anchor Peer (錨節點)
A peer (Peer) that can be discovered and communicated by all other nodes (Peers) in the Channel. Each member of the Channel has an Anchor Peer (or multiple Anchor Peers to prevent single points of failure) to allow nodes subordinate to different Members. (Peer) discovers all existing nodes (Peers) in the same channel.
► Block (區塊)
An ordered set of transactions (Transaction) that are encrypted to link to the previous block in the Channel.
► Chain (鏈)
Chain in the book (Ledger) refers to a set of transaction logs, which are structured as hash-linked blocks of transactions. The peer receives the blocks of transactions from the Ordering Service and marks whether the transaction in the block is in accordance with the Endorsement Policy and the concurrency violation. Valid, then append the block to the hash chain in the peer (Peer) file system.
► Chaincode (鏈碼)
Chaincode is a piece of code that runs in a ledger, modifying assets (Assets) by encoding assets (Assets) and trading instructions (business logic).
► Channel (頻道)
Channel is a private blockchain area that provides data isolation and confidentiality. The account corresponding to the channel (Ledger) is shared by all nodes (Peer) in the channel, and the transaction party must authenticate through the channel to interact with the ledger (Ledger). The channel is defined by the Configuration Block.
► Commitment (提交)
Each node (Peer) in the Channel validates the sorted blocks of transactions, and then commits (writes or appends) the block to the channel (Channel). ) each copy of the Ledger. The peer (Peer) also marks whether each transaction (Transaction) in each block is valid.
► Concurrency Control Version Check (並發控製版本檢查)
Concurrency Control Version Check is a method of maintaining state synchronization between nodes in a channel. The peer (Peer) executes the transaction in parallel, and before submitting it to the ledger, the peer checks whether the data read during execution has been modified. If the read data is changed during execution and commit, a Concurrency Control Version Check conflict will be triggered and the transaction will be marked as invalid in the Ledger and its value will not be updated. In the state database (State Database).
► Configuration Block (配置區塊)
Configuration data for the System Chain (Ordering Service) or Channel, including the configuration of members and policies. Any modification to the channel or the entire network (for example, the leaving or joining of a member) will result in a new configuration block being appended to the chain. This block will contain the contents of the Genesis Block and its increments.
► Consensus (共識)
Consensus is a broad term used throughout the transaction process to describe, generate agreement on the order, and confirm the correctness of all transactions that make up the block.
► Current State (當前狀態)
The current state of the Ledger is the latest value of all the keys in the transaction log on its chain. The peer (Peer) submits the corresponding modified value of each valid transaction in the processed block (Block) to the current state of the ledger (Current State). Since the Current State represents the latest value of all the keys in the Channel, the Current State is also called the World State. Chain code (Transaction Proposal) is the current state (Current State).
► Dynamic Membership (動態成員)
Hyperledger Fabric supports dynamic addition/removal of Membership, Peer, and Ordering Service nodes without affecting the operability of the entire network. The Dynamic Membership mechanism is critical when business relationships are adjusted or when entities need to be added/removed for various reasons.
► Endorsement (背書)
Endorsement refers to the process in which a particular node (Peer) performs a Chaincode transaction and returns a Proposal Response to the client program. The Proposal Response includes a response message executed by a chain code, a result (read set and write set) and an event, and a signature that executes evidence in a peer as a chain code (Peer). The Chaincode program has a corresponding Endorsement Policy, which specifies an Endorsing Peer.
► Endorsement Policy (背書策略)
The nodes (Peer) that execute the transaction in the Channel (which must be executed with the specified Chaincode program) and the necessary combination conditions of the response result (Endorsement) are defined. The Endorsement Policy can specify the endorsement of a transaction, with a minimum number of Endorsing Peers, or a minimum percentage of Endorsing Peers, or a specific chain code ( Chaincode) All Endorsing Peers of the program. The Endorsement Policy is organized by the Endorsing Peer based on the application and the level of expectations against bad behavior. Transactions must meet the Endorsement Policy before they can be marked as valid by the committing peers. Install and Instantiate transactions also require a clear endorsement policy.
► Hyperledger Fabric CA
The Hyperledger Fabric CA is the default CA (Certificate Authority) component that issues PKI-based certificates to network members and their users. The CA issues a root certificate (rootCert) for each member and a registration certificate (eCert) for each authorized user.
► Genesis Block (創世區塊)
The configuration block that initializes the blockchain network or channel is also the first block on the chain.
► Gossip (協議)
The Gossip Data Transfer Protocol has three functions:
Management node discovery (peer discovery) and channel (online) membership (channel membership);
Propagating ledger data between all nodes (Peers) in a channel;
Synchronize the account status between all nodes (Peer) in the channel;
See the Gossip topic for more details.
► Initialize (初始化)
The method of initializing the Chaincode program.
► Install (安裝)
The process of deploying a chain code (Chaincode) onto a node (Peer) file system.
► Instantiate (實例化)
The process of starting and initializing a specific channel (Chaincode) program. After instantiating, the node that installs the chain code (Peer) can accept the chain code call.
► Invoke (調用)
Used to call functions in the chain code (Chaincode). The client program calls the chain code by sending a transaction proposal (Peer) to the transaction proposal (Transaction Proposal). The peer (Peer) executes the Chaincode and returns the Endorsement Proposal Response to the client program. After the client program collects the Proposal Response required to satisfy the Endorsement Policy, the transaction result is submitted, and then, Ordering, Validation, and Commitment are submitted. The client program can choose not to submit the transaction results. For example, if you only query the ledger (Ledger), the client program will usually not submit a read-only transaction unless you want to write the log of the book (Ledger) to the log for auditing purposes. The call (Invoke) includes a channel ID (Channel ID), a chain code (Chaincode) function to be called, and an array of parameters.
► Leading Peer (領導節點)
Each member can have multiple nodes (Peer) on each channel it subscribes to. One of these nodes (Peer) acts as a Leading Peer in the Channel, communicating with the Member Ordering Service (Peer) on behalf of the Member (Peer). The Ordering Service first distributes the Block to the Leading Peer in the Channel, and then the Leading Peer distributes the Blocks to the same member (Member). Other nodes under (Peer).
► Ledger (賬本)
Ledger refers to the chain corresponding to a channel and its current state data, which is maintained by each node (Peer) on the channel.
► Member (會員)
A legally independent entity with a network-only root certificate. Network components like Peer and Application Client will be linked to Member.
► Membership Service Provider - MSP (會員服務提供商)
Membership Service Provider (MSP) is a system abstraction component that provides certificates to clients and peers (Peer) so that they participate in the Hyperledger Fabric network. The client uses the certificate to authenticate its transaction, and the peer uses the certificate to authenticate the transaction processing result (Endorsement). Although this interface is closely related to the transaction processing component of the system, it can smoothly replace the defined Membership Services components in a pluggable form without modifying the core of the system's transaction processing components.
► Membership Services (會員服務)
Membership Services certifies, authorizes, and manages identities on a licensed blockchain network. The Membership Services code running in both the Peer and the Orderer authenticates and authorizes the operation of the blockchain. It is an abstract implementation of a PKI-based Membership Service Provider (MSP).
► Ordering Service (排序服務)
A set of nodes that are responsible for packing transactions into a block. The Ordering Service exists independently of the peer (Peer) process and is on the network on a first come, first served basis.
► Peer (節點)
A network entity responsible for maintaining the ledger (Ledger) and running a chain code (Chaincode) container to perform read and write operations on the ledger (Ledger). The Peer is owned and maintained by the Member.
► Policy (策略)
There are endorsement strategies, validation strategies, chaincode management strategies, and network/channel management strategies.
► Proposal (提議)
A request for endorsement for a node in the channel (Peer). Each Proposal is either an Instantiate request or an Invoke (Read/Write) request.
► Query (查詢)
Query is a chaincode invocation that reads the current state of the ledger (Ledger) but not the ledger (Ledger). The Chaincode function can query certain keys in the Ledger or query a set of keys in the Ledger. Since Query does not change the state of the Ledger, client applications typically do not submit these read-only transactions for Ordering, Validation, and Commit. Although not common, client applications can also choose to submit read-only transactions for Ordering, Validation, and Commit, for example, if a client wants to get audit evidence in the Ledger chain, A specific ledger state was recorded at a specific point in time.
► State Database (狀態數據庫)
In order to efficiently read, write, and query from the chain code, the Current State data is stored in the State Database. The supported databases include levelDB and couchDB.
► System Chain (系統鏈)
The System Chain contains configuration blocks that define the network at the system level. The System Chain exists in the Ordering Service and, like the Channel, has an initial configuration with the following information: MSP information, policies, and configuration details. Any changes to the entire network (such as the addition of a new organization (Org) or the addition of a new sort node) will result in a new Configuration Block being added to the System Chain.
A system chain can be thought of as a common binding of a channel or a group of channels. For example, a series of financial institutions can form a consortium (represented by the System Chain) and then create corresponding channels based on their respective business agendas.
► Transaction (交易)
Invoke or Instantiate is used for the results of Ordering, Validation, and Commitment. The call (Invoke) is used to request to read and write data from the ledger (Ledger). Instantiate is used to request the start and initialization of a chain code (Chaincode) in a channel. The application client collects responses from Endorsing Peer calls (Invoke) or instantiated (Instantiate) and packages the results and endorsements into Ordering, Validation, and Commitment. ) in the transaction.