Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NumFaulty ¶ added in v0.3.0
NumFaulty calculates 'f', which is the number of replicas that can be faulty for a configuration of size 'n'.
func QuorumSize ¶ added in v0.3.0
QuorumSize calculates '2f + 1', which is the quorum size for a configuration of size 'n'.
Types ¶
Directories ¶
Path | Synopsis |
---|---|
backend
|
|
gorums
Package gorums implements a networking backend for HotStuff using the gorums framework.
|
Package gorums implements a networking backend for HotStuff using the gorums framework. |
Package blockchain provides an implementation of the consensus.BlockChain interface.
|
Package blockchain provides an implementation of the consensus.BlockChain interface. |
Package client implements a simple client for testing HotStuff.
|
Package client implements a simple client for testing HotStuff. |
cmd
|
|
Package config contains structs that are useful for initializing consensus.
|
Package config contains structs that are useful for initializing consensus. |
Package consensus defines the types and interfaces that are used to implement consensus.
|
Package consensus defines the types and interfaces that are used to implement consensus. |
byzantine
Package byzantine contiains byzantine behaviors that can be applied to the consensus protocols.
|
Package byzantine contiains byzantine behaviors that can be applied to the consensus protocols. |
chainedhotstuff
Package chainedhotstuff implements the pipelined three-chain version of the HotStuff protocol.
|
Package chainedhotstuff implements the pipelined three-chain version of the HotStuff protocol. |
fasthotstuff
Package fasthotstuff implements the two-chain Fast-HotStuff protocol.
|
Package fasthotstuff implements the two-chain Fast-HotStuff protocol. |
simplehotstuff
Package simplehotstuff implements a simplified version of the three-chain HotStuff protocol.
|
Package simplehotstuff implements a simplified version of the three-chain HotStuff protocol. |
Package crypto provides implementations of the Crypto interface.
|
Package crypto provides implementations of the Crypto interface. |
bls12
Package bls12 implements the crypto primitives used by HotStuff using curve BLS12-381.
|
Package bls12 implements the crypto primitives used by HotStuff using curve BLS12-381. |
ecdsa
Package ecdsa provides a crypto implementation for HotStuff using Go's 'crypto/ecdsa' package.
|
Package ecdsa provides a crypto implementation for HotStuff using Go's 'crypto/ecdsa' package. |
keygen
Package keygen provides helper methods for generating, serializing, and deserializing public keys, private keys and certificates.
|
Package keygen provides helper methods for generating, serializing, and deserializing public keys, private keys and certificates. |
Package eventloop provides an event loop which is widely used by modules.
|
Package eventloop provides an event loop which is widely used by modules. |
internal
|
|
mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
orchestration
Package orchestration implements deployment and orchestration of hotstuff replicas and clients on remote hosts.
|
Package orchestration implements deployment and orchestration of hotstuff replicas and clients on remote hosts. |
profiling
Package profiling provides helpers for using various profilers.
|
Package profiling provides helpers for using various profilers. |
protostream
Package protostream implements reading and writing of protobuf messages to data streams.
|
Package protostream implements reading and writing of protobuf messages to data streams. |
testutil
Package testutil provides helper methods that are useful for implementing tests.
|
Package testutil provides helper methods that are useful for implementing tests. |
Package metrics contains modules that collect data or metrics from other modules.
|
Package metrics contains modules that collect data or metrics from other modules. |
plotting
Package plotting provides functions and structures for plotting measurement data collected from running an experiment.
|
Package plotting provides functions and structures for plotting measurement data collected from running an experiment. |
Package modules contains the base of the module system used in the hotstuff project.
|
Package modules contains the base of the module system used in the hotstuff project. |
Package replica provides the required code for starting and running a replica and handling client requests.
|
Package replica provides the required code for starting and running a replica and handling client requests. |
Click to show internal directories.
Click to hide internal directories.