Documentation
¶
Index ¶
Constants ¶
const ( KB = 1024 MB = 1024 * KB GB = 1024 * MB TB = 1024 * GB )
Constants representing various SI multiples for bytes.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Announce ¶
type Announce struct {
MDNS bool `yaml:"mdns,omitempty"`
Registry bool `yaml:"registry,omitempty"`
}
Announce represents the configuration for announcing address to peers.
type Bootstrap ¶
type Bootstrap struct {
File string `yaml:",omitempty"`
MDNS bool `yaml:",omitempty"`
Registry bool `yaml:",omitempty"`
Static map[uint64]string `yaml:",omitempty"`
}
Bootstrap represents the configuration for bootstrapping peer addresses.
type Broadcast ¶
type Broadcast struct {
InitialBackoff time.Duration `yaml:"initial.backoff"`
MaxBackoff time.Duration `yaml:"max.backoff"`
}
Broadcast represents the configuration for maintaining the shard broadcast by a node.
type ByteSize ¶
type ByteSize uint64
ByteSize provides a YAML-serializable format for byte size definitions.
func (ByteSize) Int ¶
Int returns the ByteSize value as an int as long as it'd fit within the system's int limits.
func (ByteSize) MarshalYAML ¶
MarshalYAML implements the YAML encoding interface.
func (*ByteSize) UnmarshalYAML ¶
UnmarshalYAML implements the YAML decoding interface.
type Connections ¶
type Connections struct {
ReadTimeout time.Duration `yaml:"read.timeout"`
WriteTimeout time.Duration `yaml:"write.timeout"`
}
Connections represents the configuration for network connections. MaxPayload when used as part of the Network.NodeConnections configuration, also implicitly defines the maximum size of blocks.
type Keys ¶
type Keys struct {
SigningKey *Key `yaml:"signing.key"`
TransportCert *Key `yaml:"transport.cert"`
}
Keys represents the configuration that individual nodes use for their various cryptographic keys.
type Logging ¶
type Logging struct {
ConsoleLevel log.Level `yaml:"console.level,omitempty"`
FileLevel log.Level `yaml:"file.level,omitempty"`
FilePath string `yaml:"file.path,omitempty"`
ServerHost string `yaml:"server.host,omitempty"`
ServerLevel log.Level `yaml:"server.level,omitempty"`
ServerToken string `yaml:"server.token,omitempty"`
}
Logging represents the logging configuration for individual nodes.
type NetConsensus ¶
type NetConsensus struct {
BlockReferencesSizeLimit ByteSize `yaml:"block.references.size.limit"`
BlockTransactionsSizeLimit ByteSize `yaml:"block.transactions.size.limit"`
NonceExpiration time.Duration `yaml:"nonce.expiration"`
RoundInterval time.Duration `yaml:"round.interval"`
ViewTimeout int `yaml:"view.timeout"`
}
NetConsensus represents the network-wide configuration for the consensus protocol.
type Network ¶
type Network struct {
ID string `yaml:",omitempty"`
Consensus *NetConsensus `yaml:"consensus"`
MaxPayload ByteSize `yaml:"max.payload"`
SeedNodes map[uint64]*Peer `yaml:"seed.nodes"`
}
Network represents the configuration of a Chainspace network as a whole.
func LoadNetwork ¶
LoadNetwork will read the YAML file at the given path and return the corresponding Network config.
type Node ¶
type Node struct {
Announce *Announce `yaml:"announce,omitempty"`
Bootstrap *Bootstrap `yaml:"bootstrap"`
Broadcast *Broadcast `yaml:"broadcast"`
Connections *Connections `yaml:"connections"`
Consensus *NodeConsensus `yaml:"consensus"`
HTTP ServiceEnable `yaml:"http,omitempty"`
Logging *Logging `yaml:"logging"`
Pubsub ServiceEnable `yaml:"pubsub"`
Registries []Registry `yaml:"registries,omitempty"`
Storage *Storage `yaml:"storage"`
}
Node represents the configuration of an individual node in a Chainspace network.
type NodeConsensus ¶
type NodeConsensus struct {
DriftTolerance time.Duration `yaml:"drift.tolerance"`
InitialWorkDuration time.Duration `yaml:"initial.work.duration"`
RateLimit *RateLimit `yaml:"rate.limit"`
}
NodeConsensus represents the node-specific configuration for the consensus protocol.
type Peer ¶
type Peer struct {
SigningKey *PeerKey `yaml:"signing.key"`
TransportCert *PeerKey `yaml:"transport.cert"`
}
Peer represents the cryptographic public keys of a node in a Chainspace network.
type RateLimit ¶
type RateLimit struct {
InitialRate int `yaml:"initial.rate"`
RateDecrease float64 `yaml:"rate.decrease"`
RateIncrease int `yaml:"rate.increase"`
}
RateLimit represents the configuration for rate-limiting within the system.