pbft

module
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2022 License: Apache-2.0

README

myl7/pbft

PBFT (practical Byzantine fault tolerance) implementation focused on reusability and composability

Get Started

A workable example as a test is located in test/handler_test.go

All you need to do is to create a Handler and use it to handle already routed messages

Features

  • Focused on PBFT and decoupled from the rest of the system
    • No network code: Feel free to use TCP/UDP/HTTP...
    • No serialization code: Feel free to use JSON/gob...
    • No crypto code: Feel free to use RSA/Ed25519...
    • No hash code: Feel free to use SHA256/SHA512/SHA3...
  • Fine-grained locks other than only one mutex for the whole node

Caveats

  • No view change
  • No checkpoint: h-H sequence number range limit and log garbage collection

References

License

Copyright (c) 2022 myl7

SPDX-License-Identifier: Apache-2.0

Directories

Path Synopsis
All msg types should be safe to copy by value.
All msg types should be safe to copy by value.

Jump to

Keyboard shortcuts

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