signalingupgradeorchestrator

package
v1.0.0-alpha.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithProtocolParameters

func WithProtocolParameters(protocolParameters ...iotago.ProtocolParameters) options.Option[Orchestrator]

Types

type Orchestrator

type Orchestrator struct {
	module.Module
	// contains filtered or unexported fields
}

Orchestrator is a component that is in charge of protocol upgrades by signaling the upgrade, gathering consensus about the upgrade and finally activating the upgrade if the activation thresholds are reached.

Why is it called Orchestrator? Read on...

User how would you name a software component that is in charge of protocol upgrades by signaling the upgrade, gathering consensus about the upgrade and then activating the upgrade.

ChatGPT One possible name for such a software component could be the "Upgrade Manager." This name conveys its responsibility of managing protocol upgrades within a system or network. The Upgrade Manager would handle tasks like signaling, consensus gathering, and activation of upgrades, ensuring smooth transitions and maintaining the integrity of the protocol.

User do you have a less boring name? everything else is also called manager

ChatGPT Certainly! If you're looking for a more creative and less generic name, you could consider calling it the "Protocol Phoenix." This name captures the essence of the component's role in orchestrating protocol upgrades, as the mythical phoenix symbolizes rebirth and renewal. It signifies the component's ability to facilitate the evolution and transformation of the protocol, rising from the ashes of the previous version.

User maybe a more technical and less mythical term

ChatGPT Certainly! In that case, you could consider naming the software component the "Upgrade Orchestrator." This name emphasizes its role in orchestrating protocol upgrades, managing the various stages of the process, and ensuring a smooth transition. The term "orchestrator" suggests a conductor-like function, coordinating the upgrade activities and ensuring consensus before activating the changes.

func NewOrchestrator

func NewOrchestrator(module module.Module, errorHandler func(error),
	decidedUpgradeSignals epochstore.Store[model.VersionAndHash],
	upgradeSignalsFunc func(slot iotago.SlotIndex) (*slotstore.Store[account.SeatIndex, *model.SignaledBlock], error),
	apiProvider iotago.APIProvider,
	setProtocolParametersEpochMappingFunc func(iotago.Version, iotago.Identifier, iotago.EpochIndex) error,
	protocolParametersAndVersionsHashFunc func() (iotago.Identifier, error),
	epochForVersionFunc func(iotago.Version) (iotago.EpochIndex, bool),
	seatManager seatmanager.SeatManager, opts ...options.Option[Orchestrator]) *Orchestrator

func (*Orchestrator) Commit

func (o *Orchestrator) Commit(slot iotago.SlotIndex) (iotago.Identifier, error)

func (*Orchestrator) Export

func (o *Orchestrator) Export(writer io.WriteSeeker, targetSlot iotago.SlotIndex) error

func (*Orchestrator) Import

func (o *Orchestrator) Import(reader io.ReadSeeker) error

func (*Orchestrator) Reset

func (o *Orchestrator) Reset()

Reset resets the component to a clean state as if it was created at the last commitment.

func (*Orchestrator) RestoreFromDisk

func (o *Orchestrator) RestoreFromDisk(slot iotago.SlotIndex) error

func (*Orchestrator) TrackValidationBlock

func (o *Orchestrator) TrackValidationBlock(block *blocks.Block)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL