Documentation
¶
Overview ¶
related: katzenpost:authority/voting/server/config/config.go
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Server *Server
Logging *Logging
Parameters *Parameters
Debug *Debug
// Note: these are an iterative step; useful to register non-volunteer nodes within the appchain
Mixes []*Node
GatewayNodes []*Node
ServiceNodes []*Node
Topology *Topology
SphinxGeometry *geo.Geometry
}
Config is the top level authority configuration.
func Load ¶
Load parses and validates the provided buffer b as a config file body and returns the Config.
func (*Config) FixupAndValidate ¶
FixupAndValidate applies defaults to config entries and validates the supplied configuration. Most people should call one of the Load variants instead.
type Debug ¶
type Debug struct {
// Layers is the number of non-provider layers in the network topology.
Layers int
// MinNodesPerLayer is the minimum number of nodes per layer required to
// form a valid Document.
MinNodesPerLayer int
// GenerateOnly halts and cleans up the server right after long term
// key generation.
GenerateOnly bool
}
Debug is the authority debug configuration.
type Logging ¶
type Logging struct {
// Disable disables logging entirely.
Disable bool
// File specifies the log file, if omitted stdout will be used.
File string
// Level specifies the log level.
Level string
}
Logging is the authority logging configuration.
type Node ¶
type Node struct {
// Identifier is the human readable node identifier, to be set iff
// the node is a Provider.
Identifier string
// IdentityPublicKeyPem is the node's public signing key also known
// as the identity key.
IdentityPublicKeyPem string
}
Node is an authority mix node or provider entry.
type Parameters ¶
type Parameters struct {
// SendRatePerMinute is the rate per minute.
SendRatePerMinute uint64
// Mu is the inverse of the mean of the exponential distribution
// that is used to select the delay for each hop.
Mu float64
// MuMaxDelay sets the maximum delay for Mu.
MuMaxDelay uint64
// LambdaP is the inverse of the mean of the exponential distribution
// that is used to select the delay between clients sending from their egress
// FIFO queue or drop decoy message.
LambdaP float64
// LambdaPMaxDelay sets the maximum delay for LambdaP.
LambdaPMaxDelay uint64
// LambdaL is the inverse of the mean of the exponential distribution
// that is used to select the delay between clients sending loop decoys.
LambdaL float64
// LambdaLMaxDelay sets the maximum delay for LambdaP.
LambdaLMaxDelay uint64
// LambdaD is the inverse of the mean of the exponential distribution
// that is used to select the delay between clients sending deop decoys.
LambdaD float64
// LambdaDMaxDelay sets the maximum delay for LambdaP.
LambdaDMaxDelay uint64
// LambdaM is the inverse of the mean of the exponential distribution
// that is used to select the delay between sending mix node decoys.
LambdaM float64
// LambdaG is the inverse of the mean of the exponential distribution
// that is used to select the delay between sending gateway node decoys.
//
// WARNING: This is not used via the TOML config file; this field is only
// used internally by the dirauth server state machine.
LambdaG float64
// LambdaMMaxDelay sets the maximum delay for LambdaP.
LambdaMMaxDelay uint64
// LambdaGMaxDelay sets the maximum delay for LambdaG.
LambdaGMaxDelay uint64
}
Parameters is the network parameters.
type Server ¶
type Server struct {
// Identifier is the human readable identifier for the node (eg: FQDN).
Identifier string
// WireKEMScheme is the wire protocol KEM scheme to use.
WireKEMScheme string
// PKISignatureScheme specifies the cryptographic signature scheme
PKISignatureScheme string
// Addresses are the IP address/port combinations that the server will bind
// to for incoming connections.
Addresses []string
// DataDir is the absolute path to the server's state files.
DataDir string
}
Click to show internal directories.
Click to hide internal directories.