outcomes for Peer Permissioning - consensys/quorum

Peer permissioning is an essential aspect of managing a Quorum network, ensuring that the network remains secure, available, and consistent. This document outlines the possible options and examples for managing and configuring peer permissions in Quorum.

Quorum and Raft Consensus

Quorum is a consensus algorithm based on the Raft protocol. Raft ensures that a distributed system can agree on a common state even when some nodes fail. In Raft, a quorum is the minimum number of nodes that must be available and agree on a particular log entry for it to be considered committed. The formula for calculating quorum is (n+1)/2, where n is the number of nodes in the cluster. For example, in a 5-node cluster, quorum requires at least 3 nodes to form a quorum.

Peer Permissioning Options

1. Static Peer Sets

In a static peer set, the nodes in the cluster are predefined and do not change. This is the simplest form of peer permissioning and is suitable for small, stable networks.

Example:

Suppose you have a 5-node Quorum network. The static peer set would look like this:

[{"peer": "node1"}, {"peer": "node2"}, {"peer": "node3"}, {"peer": "node4"}, {"peer": "node5"}]

2. Dynamic Peer Sets

In a dynamic peer set, nodes can join and leave the cluster as needed. This is more complex than a static peer set but provides greater flexibility and scalability.

Example: