simple_pbft-master

command module
v0.0.0-...-63b5866 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

README

Sample implementation of various consensus algorithms

PBFT

Architecture
Overall behavior (4 peers)

Definitions of each abbreviation in the diagram are;

  • m: Request message object
  • c: Client ID
  • t: Timestamp
  • v: View ID
  • n: Sequence ID
  • i: Peer(Node) ID
  • r: Result of the request's operation
Why count >= 2 ?

In the diagram, the peer change its state to prepared or committed when the count value, which is the number of verified messages from other peers, is larger than 2. Actually, the condition is count >= 2*f where f is the maximum number of faulty peers, which the network can tolerate. In this case, f is just 1, so the condition is count >= 2.

What is the reply message?

Every node replies the result of the request's operation to the client individually. The client will collect these reply messages and if f + 1 valid reply messages are arrived, the client will accept the result. In this sample implementation, there is no client. So, every node including the primary will return its reply message to the primary.

Code structure of the implementation

Working Screenshot

License

Apache 2.0

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pbft

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL