Distributed Consensus


A distributed system is a group of computers working together to achieve a unified goal (with laymen terminology, it is a group of computers working together as to appear as a single computer to the end-user or end-client). Every distributed system has a specific set of characteristics. These include:

  • Concurrency: meaning multiple events occur simultaneously
  • Lack of a global clock: in a set of computers operating concurrently, it is sometimes impossible to say that one of two events occurred first, as computers are spatially separated.By determining which event happens before another, we can get a partial ordering of events in the system (…) time and order of events are fundamental obstacles in a system of distributed computers that are spatially separated.
  • Independent failure of components: acknowledging that components in a distributed system are faulty. These include crash fail, omission, byzantin
  • Message passing: synchronous or asynchronous

The Consensus Problem, Defined

An algorithm achieves consensus if it satisfies the following conditions:

  • Agreement: All non-faulty nodes decide on the same output value.
  • Termination: All non-faulty nodes eventually decide on some output value.

Broadly speaking, consensus algorithms typically assume three types of actors in a system:

  1. Proposers, often called leaders or coordinators.
  2. Acceptors, processes that listen to requests from proposers and respond with values.
  3. Learners, other processes in the system which learn the final values that are decided upon

Notes from: How Does Distributed Consensus Work? by Preethi Kasireddy in Medium Blockchain, full article available here

Image available here

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s