2.2. What’s inside Iroha?¶
HL Iroha network consists of several essential components that provide the communication between the nodes. You can learn about them below.
2.2.2. MST Processor¶
Multisignature Transactions Processor
It is an internal gRPC service that sends and receives messages from other peers through Gossip protocol. Its mission is to send out multisignature transactions that have not received enough signatures to reach the quorum until it is reached.
2.2.3. Peer Communication Service¶
Internal component of Iroha - an intermediary that transmits transaction from Torii through MstProcessor to Ordering Gate. The main goal of PCS is to hide the complexity of interaction with consensus implementation.
2.2.4. Ordering Gate¶
It is an internal Iroha component (gRPC client) that relays transactions from Peer Communication Service to Ordering Service. Ordering Gate recieves proposals (potential blocks in the chain) from Ordering Service and sends them to Simulator for stateful validation. It also requests proposal from the Ordering Service based on the consensus round.
2.2.5. Ordering Service¶
Internal Iroha component (gRPC server) that receives messages from other peers and combines several transactions that have been passed stateless validation into a proposal. Each node has its own ordering service. Proposal creation could be triggered by one of the following events:
- Time limit dedicated to transactions collection has expired.
- Ordering service has received the maximum amount of transactions allowed for a single proposal.
Both parameters (timeout and maximum size of proposal) are configurable (check environment-specific parameters page).
A common precondition for both triggers is that at least one transaction should reach the ordering service. Otherwise, no proposal will be formed.
Ordering service also performs preliminary validation of the proposals (e.g. clearing out statelessly rejected transactions from the proposal).
2.2.6. Verified Proposal Creator¶
Internal Iroha component that performs stateful validation of transactions contained in received proposal from the Ordering Service. On the basis of transactions that have passed stateful validation verified proposal will be created and passed to Block Creator. All the transactions that have not passed stateful validation will be dropped and not included in a verified proposal.
2.2.7. Block Creator¶
2.2.8. Block Consensus (YAC)¶
Consensus, as a component
Consensus is the heart of the blockchain - it preserves a consistent state among the peers within a peer network. Iroha uses own consensus algorithm called Yet Another Consensus (aka YAC).
You can check out a video with a thorough explanation of the principles of consensus and YAC in particular here.
Distinctive features of YAC algorithm are its scalability, performance and Crash fault tolerance.
For general definition of the consensus, please check this link.