Consensus Algorithm
fosteric редактировал эту страницу 6 лет назад

Consensus Algorithms

A consensus algorithm is a process in computer science used to achieve agreement on a single data value among distributed processes or systems to achieve reliability in presence of faulty processes. This often requires processes to agree on some data value that is needed during computation.

Examples of consensus algorithm applications include:

  • Whether to commit a transaction to a database
  • Agreeing on the identity of a leader - leader election is the process of designating a single process as the organizer of some task distributed among several computers.
  • State machine replication - a general method for implementing a fault-tolerant service by replicating servers and coordinating client interactions with server replicas.
  • Atomic broadcasts - a broadcast where all correct processes in a system of multiple processes receive the same set of messages in the same order; that is, the same sequence of messages

Real world applications include:

  • blockchain
  • clock synchronization
  • search engine rank
  • smart power grids
  • control of UAVs (and multiple robots/agents in general)
  • load balancing

Examples of consesus algorithms in blockchain:

  • Proof of Work - the first blockchain consesus algorithm created for use in Bitcoin blockchain. Pros: We know it works, Cons: Slow throughput; killing the planet
  • Proof of Stake - Pros: Attacks more expensive; More decentralized; Energy efficient, Cons: Nothing at Stake
  • Delegated Proof of Stake - Pros: Cheap transactions; scalable; energy efficient, Cons: Partially centralized
  • Others: Proof of Authority, Proof of Weight, Byzantine Fault Tolerance, Directed Acyclic Graphs

Things to consider for our project:

  • Choose which type of consesnsus algorithm we will use
  • Consensus algorithms must be fault tolerant, and so a target must be set for what % of nodes must respond in order for the consesus algorithm to complete.

sources https://en.wikipedia.org/wiki/Consensus_(computer_science) https://whatis.techtarget.com/definition/consensus-algorithm https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3