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
|
|
|
hotstuff
command
|
|
|
plot
command
|
|
|
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 logging defines the Logger interface which is used by the module system.
|
Package logging defines the Logger interface which is used by the module system. |
|
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.