Documentation
¶
Overview ¶
Package photon chooses a K-sized committee each round.
The metaphor: we "emit" K rays into the validator space and read back votes. In code, this is just a reproducible, unbiased selection over a population. No physics is implied or required.
Typical use: engines pass a seed/phase to produce a stable committee for a round; wave applies thresholds over the observed tallies.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Emitter ¶
type Emitter interface {
// Emit emits a message to selected nodes
Emit(msg interface{}) ([]types.NodeID, error)
// EmitTo emits a message to specific nodes
EmitTo(nodes []types.NodeID, msg interface{}) error
}
Emitter emits consensus messages
type EmitterOptions ¶
type EmitterOptions struct {
K int // Committee size
Fanout int // Number of nodes to emit to
Timeout int // Timeout in milliseconds
}
EmitterOptions defines emitter options
func DefaultEmitterOptions ¶
func DefaultEmitterOptions() EmitterOptions
DefaultEmitterOptions returns default emitter options
type Luminance ¶
type Luminance struct {
// contains filtered or unexported fields
}
Luminance tracks node brightness based on consensus participation. More successful votes = higher lux = brighter emission probability.
func (*Luminance) Brightness ¶
Brightness returns emission weight based on lux level (0.1 to 10.0)
type UniformEmitter ¶
type UniformEmitter struct {
// contains filtered or unexported fields
}
UniformEmitter implements uniform random emission
func NewUniformEmitter ¶
func NewUniformEmitter(nodes []types.NodeID, options EmitterOptions) *UniformEmitter
NewUniformEmitter creates a new uniform emitter